翼度科技»论坛 编程开发 python 查看内容

使用python自动监控程序运行过程数据

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
操作系统 :CentOS 7.6.1810_x64
Python 版本 : 2.7.5
一、背景描述

工作中会遇到需要监控程序运行过程数据的情况,比如定时执行监控的cmd并记录执行结果,本文提供一种实现方式,便于后续排查问题。
二、具体实现

使用python实现该功能很简单,大致分为以下几个步骤:
1、编写cmd命令,确保执行后有控制台输出且退出命令;
2、使用 popen 执行cmd命令,并获取cmd的执行结果;
3、将执行结果以日志形式写入文件,并设置日志文件总大小,避免占用过多磁盘;
自动监控脚本示例代码如下:

完整代码可从该地址获取:聊聊博文-使用python自动监控程序运行过程数据
或关注微信公众号(聊聊博文,文末可扫码)后回复 2023031801 获取。
其中,cmd 可以根据实际情况进行调整,这里列举下我常用的几个场景。

  • 监控某进程cpu、内存使用情况
先使用ps获取程序pid,再使用top命令监控进行运行数据:
top -b -n 1 -p 15653


  • 监控磁盘使用情况
可使用iostat命令获取指定设备的使用数据:
iostat -d sda


  • 监控某应用程序运行数据
 比如监控freeswitch的呼叫数据,可以使用如下命令:
  1. /usr/local/freeswitch/bin/fs_cli -x "show calls count"
复制代码
如果是在docker容器中,可使用如下命令:
  1. docker exec -t fs /usr/local/freeswitch/bin/fs_cli -x "show calls count"
复制代码

三、运行效果

这里以监控进程为例演示下使用效果,命令如下:
top -b -n 1 -p 15653
效果如下:

 
 本文涉示例代码,可从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023031801 获取。

来源:https://www.cnblogs.com/MikeZhang/p/20230318-pythonProcessMonitor.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具