open-falcon監控windows機器

最近公司上線了一款新的遊戲,用的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目錄下,進入命令行界面,進行安裝

    wKioL1cd8h3jG-vRAAAaR1bHAng803.png

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、新建計劃任務

  控制面板--管理工具--任務計劃程序

  點擊創建基本任務:

  填上名稱 

  wKioL1c9fwqyiIFBAAB4a463W_U510.png

  wKioL1c9fwrA-Dp4AAB8wqg9AjY273.png

  wKioL1c9fwrB6RAeAACUuy7Hf1c857.png

  wKioL1c9fwuhu-0MAAB0nzR86HU191.png

  指定程序位置,也就是我們剛建立的bat文件,還要把起始於也填上,也就是bat的路徑

  wKiom1c9fiDw3vXQAAD7AEvp2v8382.png

3、修改計劃任務屬性
  

  wKiom1c9gE7BXtKvAABRkgA68NA932.png

  wKiom1c9gE7DK-UUAAFQxcJtNZQ798.png

  修改完畢之後,將計劃任務打開就行了。


以上,windows機器的open-falcon監控就完成了,可以去web端配置報警規則以及screen了。



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