open-falcon-agent插件使用


說明

Plugin可以看做是對agent功能的擴充。使用插件可以對采集腳本進行統一管理,方便定制修改,也可以免去在crontab中添加計划任務。

開啟plugin功能

# 修改agent配置文件
    "plugin": {
        "enabled": true,                                         # 打開設置為true 
        "dir": "/opt/programs/open-falcon-agent_0.2.1/plugin",   # git插件目錄
        "git": "http://user:password@ip/open-falcon/plugin.git", # git相關地址、用戶名及密碼
        "logs": "/opt/programs/open-falcon-agent_0.2.1/logs"     # git插件執行目錄
    },

編寫采集腳本

用什么語言寫沒關系,只要目標機器上有運行環境就行,腳本本身要有可執行權限。采集到數據之后直接打印到stdout即可,agent會截獲並push給server。數據格式是json,舉個例子:

#./600_ntp.py
[{"endpoint": "host01", "tags": "", "timestamp": 1431349763, "metric": "sys.ntp.offset", "value": 0.73699999999999999, "counterType": "GAUGE", "step": 600}]

注意,這個json數據是個list

上傳腳本到git

插件腳本也是code,所以最好也用git、svn管理,這里我們使用git管理,公司內部如果沒有搭建gitlab,可以使用gitcafe、coding.net之類的,將寫好的腳本push到git倉庫,比如上例中的600_ntp.py,姑且放到git倉庫的sys/ntp目錄下。
注意,這個腳本在push到git倉庫之前要加上可執行權限。

拉取plugin腳本

agent開了一個http端口1988,執行命令curl一下http://ip:1988/plugin/update 這個地址,這會讓agent主動git pull這個插件倉庫。

讓plugin run起來

上一步我們拉取了plugin腳本到所有機器上,不過plugin並沒有執行。哪些機器執行哪些plugin腳本,是在portal上面配置的。在portal上找到要執行插件的HostGroup,點擊對應的plugins超鏈接,對於上例sys/ntp目錄下的600_ntp.py,直接把sys/ntp綁定上去即可。sys/ntp下的所有插件就都執行了。

備注

portal上配置完成之后並不會立馬生效,有個同步的過程,最終是agent通過調用hbs的接口獲取的,需要一兩分鍾。上例我們綁定了sys/ntp,這實際是個目錄,這個目錄下的所有插件都會被執行,那什么樣的文件會被看做插件呢?文件名是數字下划線打頭的。這個數字代表的是step,即多長時間跑一次,單位是秒,比如60_a.py,就是在通過命名告訴agent,這個插件每60秒跑一次。sys/ntp目錄下的子目錄、其他命名方式的文件都會被忽略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM