node_exporter自定義監控
背景
我們在使用Zabbix的時候,可以自己寫自定義腳本。在使用Promethues的時候,有很多的exporter,但是有一些特殊的情況沒有,比如,我需要監控進程一啟動就告警,但是進程沒啟動,是使用process_exporter監控不了的,在process_exporter官網找了一圈,也問了一圈,發現還是只有自己動手才行。但是自定義的腳本有一個缺點就是,你不知道他有什麼缺點,你光是想要完成這個任務的話,有很多辦法,但是想要他至少沒有啥副作用,是有挑戰的。
步驟
1)自定義腳本並把內容以key:value的形式寫入以.prom結尾的文件
2)定時任務執行自定義腳本
3)添加啟動參數,node_exporter採集數據(採集頻率為定時任務的頻率)
1、配置啟動
通過textfile採集用戶自己生成的指標,參數--collector.textfile.directory
,如下:
./node_exporter --collector.textfile.directory='/path/'
2、輸出格式
#HELP example_metric read from /path/example.prom #TYPE example_metric untyped example_metric 1
3、任務執行
一般腳本任務(輸出指標到.prom文件)會被放入crontab中,按照需求設置指標採集時間,同時node_exporter採集的時候文件執行寫入操作,可能導致文件出現問題。我們可以將任務先轉移到一個臨時文件,然後通過臨時文件的重命名進行操作。
*/2 * * * * sh test.sh && mv /path/example.promm /path/example.prom
4、指標採集
指標採集的時間是根據你的crontab的定時任務的時間來的,可以根據通過這個指標來判斷數據是否上報node_textfile_mtime_seconds;也可以對這個指標監控, node_textfile_mtime_seconds這個key值表示的是textfile最後一次採集文件的時間,如
node_textfile_mtime_seconds{file="process_counts.prom"}
寫在最後
李先生(Lemon),高級運維工程師(自稱),SRE專家(目標),夢想在35歲買一輛保時捷。喜歡鑽研底層技術,認為底層基礎才是王道。一切新技術都離不開操作系統(CPU、內存、磁盤)、網絡等。堅持輸入輸出,記錄自己學習的點滴,在平凡中堅持前行,總有一天會遇見不一樣的自己。公眾號:運維汪(ID:Leeeee_Li)。