原理
1、利用netdata
的命令參數--collector.textfile.directory
配置從指定文件讀取監控指標信息。
2、利用linux cron
定時任務腳本收集指定目錄存儲空間大小信息寫入--collector.textfile.directory
指定目錄下的文件,供netdata
讀取。
linux cron 定時任務腳本
編寫文件directory_size
,內容如下(示例中每5分鐘收集一次文件目錄/var/log /usr/local/npg /home
,可以自己定義目錄名稱和數量,時間間隔)
*/5 * * * * root du -sb /var/log /usr/local/npg /home | sed -ne 's/^\([0-9]\+\)\t\(.*\)$/node_directory_size_bytes{directory="\2"} \1/p' > /usr/local/npg/textfile_collector/directory_size.prom.$$ && mv /usr/local/npg/textfile_collector/directory_size.prom.$$ /usr/local/npg/textfile_collector/directory_size.prom
把文件directory_size
放入linux定時任務目錄/etc/cron.d
。
cp directory_size /etc/cron.d/
配置npg
監控告警系統npg
使用docker-compose
管理運行,對docker-compose.yml
文件中的nodeexporter
服務進行配置。
首先配置node-exporter
啓動命令參數加入--collector.textfile.directory=/textfile_collector
。
其次配置node-exporter
掛載主機文件目錄/usr/local/npg/textfile_collector
到容器內部目錄/textfile_collector
。
配置完成後,最後進行npg
重啓(npg master重啓npg,worker節點只重啓node-exporter服務)
附錄
在npg master
和worker
上都運行node-exporter
,因此都需要進行linux cron 定時任務腳本和node-exporter配置。