操作系统 :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的呼叫数据,可以使用如下命令:

/usr/local/freeswitch/bin/fs_cli -x "show calls count"

如果是在docker容器中,可使用如下命令:

docker exec -t fs /usr/local/freeswitch/bin/fs_cli -x "show calls count"

三、运行效果

这里以监控进程为例演示下使用效果,命令如下:

top -b -n 1 -p 15653

效果如下:

本文涉示例代码,可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复2023031801获取。

微信公众号:

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!