最近公司上線了一款新的遊戲,用的windows機器,需要用open-falcon對機器進行監控。
open-falcon對windows的監控還不是特別完善,linux下的監控是通過agent來完成的,但是windows下的agent還沒有開發,參考open-falcon的文檔,裏面暫時有2中實現方法。
一種是用python腳本來獲取數據,然後把數據push到一臺agent上,再推送到server,實現機器監控。
腳本如下:windows_collect.py
另外是通過golong版本的windows agent。地址如下:https://github.com/LeonZYang/agent
我是通過第一種方法python腳本來實現的。
下面就跟大家分享一下我的部署過程以及遇到的問題。
第一步:環境部署
使用python腳本來監控的話,需要安裝python以及2個模塊psutil 和requets模塊
1、安裝python
版本:2.7.11
直接網上下載,然後點擊安裝就行了,非常簡單
然後設置環境變量,自行百度即可。
2、安裝requests模塊
版本:2.9.1
下載的是tar包,然後解壓到C:\Python27目錄下,進入命令行界面,進行安裝
3、安裝psutil模塊
版本:4.1.0
直接網上下載,雙擊安裝,非常簡單
第二步:腳本部署及修改
腳本名稱:windows_collect.py
腳本位置:C:\open-falcon\workspace\agent\ (此目錄自己指定)
此腳本的主要監控項在github裏面都有說明,這裏就說一下需要修改的地方。
cpu_interval = 60 push_interval = 300 push_interval_agent = 60 zh_decode = "gbk" endpoint = "******" ignore_interface = ["Loopback","Teredo Tunneling","isatap","6TO4 Adapter"] push_url = "
push_interval = 300
這是推送間隔,默認的是300秒
push_interval_agent = 60
這個是我自己設置的推送agent.alive的間隔,用於主機存活監測,會推送一個值爲1,不需要可忽略。
endpoint = “***”
這是給該機器的配的名稱,自己指定
push_url = "http://192.168.221.22:1988/v1/push"
這是推送接口,因爲本身是腳本獲取系統信息,需要借用其他的agent的接口來將信息推送到服務器端,這個第一次很難理解,我也是想了好久。
增加agent.alive 主機存活的監控:
windows_collect.py腳本里並無agent.alive的監控項,但是我們如果需要監控機器的存活的話,
那麼可以用一下的方法:
1、定時推送agent.alive的值到ope-falcon的服務器端
2、如果沒有數據推送,在Nodata裏面將agent.alive的數據設置爲-1
3、配置報警規則,如果agent.alive 的值小於0,那麼發送報警。
需要在腳本里增加一個推送agent.alive的函數,單獨來推送
def agent_alive(): ts = int(time.time()) payload = [] data = {"endpoint":endpoint,"metric":"","timestamp":ts,"step":push_interval_agent,"value":"","counterType":"","tags":""} data["metric"] = "agent.alive" data["value"] = "1" 推送一個值爲1 data["counterType"] = "GAUGE" payload.append(copy.copy(data))
爲什麼要單獨來推送呢?
因爲在測試中發現,如果將agent.alive和其他的系統數據一起推送的話,推送間隔很難協調。如果設置爲300秒,那麼間隔太長,會觸發主機存活報警,如果將設置調小的話,那麼獲取的其他系統數據都不完整了,所以將他們都分開來推送,agent_alive 單獨設置爲60秒,其他數據保持300秒。也就是最上面配置的那個
push_interval = 300 push_interval_agent = 60
最後,在main()函數執行之後,再執行agent_alive函數。
if __name__ == "__main__": main() agent_alive()
修改完成之後,在windows終端裏面執行以下,如果沒有報錯,那麼就沒有問題,可以配置計劃任務了。
第三步:配置計劃任務
將腳本修改完畢之後,需要放到計劃任務中執行,設置爲1分鐘執行一次,
1、首先建立一個批處理文件,裏面就一句話
C:\Python27\python.exe C:\open-falcon\workspace\agent\windows_collect.py
2、新建計劃任務
控制面板--管理工具--任務計劃程序
點擊創建基本任務:
填上名稱
指定程序位置,也就是我們剛建立的bat文件,還要把起始於也填上,也就是bat的路徑
3、修改計劃任務屬性
修改完畢之後,將計劃任務打開就行了。
以上,windows機器的open-falcon監控就完成了,可以去web端配置報警規則以及screen了。