標籤:zabbix windows psutil 進程的記憶體使用量
zabbix監控windows伺服器上進程的記憶體使用量情況
由於在windows伺服器上不能像linux上一樣使用top,或者類似於/pro目錄下的資料資訊,所以在在windows伺服器上獲得一個進程的記憶體或者CPU的使用方式不是很容易.
這裡通過在windows伺服器上使用python指令碼獲得進程的記憶體使用量值,通過key傳遞給zabbix用戶端,也就是本機上安裝的zabbix用戶端.
windows上安裝zabbix用戶端網上的文章很多,這裡不再記錄.
1,首先安裝python環境:
點擊這裡下載python的windows版本,這裡選擇的是2.7.6版本,雙擊安裝,並修改path環境變數,我的電腦->屬性->環境變數->系統變數中的PATH後添加 ;c:\python27 (貌似安裝之後已經自動添加)
同時修改PATHEXT,添加 ;.PY;.PYM (貌似也已經有了)
可以在dos中測試python安裝是否成功,直接輸入python命令即可完成測試.
2,安裝psutil模組:
點擊這裡下載psutil-2.1.1.win32-py2.7.exe,直接雙擊安裝即可.
psutil模組 可以跨平台使用,用來獲得伺服器CPU,Memory,Disks,Network,system info,Process management的資訊.需要在機器上提前安裝模組.這篇文章比較詳細的介紹了psutil模組:https://pypi.python.org/pypi/psutil
3,監控指令碼:
import psutilimport reimport sysdef processinfo(processName): pids = psutil.get_process_list() for pid in pids: strPid = str(pid) f = re.compile(processName,re.I) if f.search(strPid): zabbixPid = strPid.split(‘pid=‘)[1].split(‘,‘)[0] return zabbixPid zabbixPID = int(processinfo(sys.argv[1])) p = psutil.Process(zabbixPID)a, b = p.memory_info() #a為進程使用的實際記憶體rss,b為使用的虛擬記憶體vmsprint a
將指令碼放進一個目錄,如C:\script\下,指令碼名為processZabbix.py,執行指令碼時要傳入一個參數,既要監控的進程名,如notepad++.exe
4,在zabbix的設定檔中加入:
UserParameter=manager_memory_usage, python C:\script\processZabbix.py notepad++.exe
5,重啟zabbix用戶端
即可在zabbix伺服器上通過zabbix_get命令擷取值了.
通過psutil可以監控進程的CPU使用方式,方法同上.
本文出自 “阿三哥” 部落格,謝絕轉載!