使用python自動監控程序運行過程數據

操作系統 :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 獲取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章