请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9|回复: 0

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

[复制链接]

2105

主题

0

回帖

2105

积分

金牌会员

积分
2105
威望
0
金币
4728
贡献
0
注册时间
2022-7-17
最后登录
2022-8-29
发表于 4 天前 | 显示全部楼层 |阅读模式

人人为我,我为人人。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
操作系统 :CentOS 7.6.1810_x64
Python 版本 : 2.7.5
一、背景描述
工作中会遇到需要监控程序运行过程数据的情况,比如定时执行监控的cmd并记录执行结果,本文提供一种实现方式,便于后续排查问题。
二、具体实现
使用python实现该功能很简单,大致分为以下几个步骤:
1、编写cmd命令,确保执行后有控制台输出且退出命令;
2、使用 popen 执行cmd命令,并获取cmd的执行结果;
3、将执行结果以日志形式写入文件,并设置日志文件总大小,避免占用过多磁盘;
自动监控脚本示例代码如下:

300959-20230318210521289-1259942180.png

300959-20230318210521289-1259942180.png

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

  • 监控某进程cpu、内存使用情况

    先使用ps获取程序pid,再使用top命令监控进行运行数据:
    top -b -n 1 -p 15653

    300959-20230318210906124-1419045887.png

    300959-20230318210906124-1419045887.png

  • 监控磁盘使用情况

    可使用iostat命令获取指定设备的使用数据:
    iostat -d sda

    300959-20230318210948137-1417915157.png

    300959-20230318210948137-1417915157.png


  • 监控某应用程序运行数据

    比如监控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"

    300959-20230318211054696-2046269965.png

    300959-20230318211054696-2046269965.png

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

    300959-20230318211124631-1058784501.png

    300959-20230318211124631-1058784501.png


    本文涉示例代码,可从如下途径获取:
    关注微信公众号(聊聊博文,文末可扫码)后回复2023031801获取。
  • 我爱编程论坛www.woaibiancheng.cn
    回复

    使用道具 举报

    侵权举报|手机版|我爱编程论坛 ( 蜀ICP备2022018035号-1 )

    GMT+8, 2023-3-22 23:17

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表