Prometheus結合node_exporter實現自定義監控指標
1、創建指標采集腳本,該腳本結合crontab的* * * * *表示每15s運行一次
mkdir /opt/custom_metrics/
vim /opt/custom_metrics/disk_usage_monitor.sh
#!/bin/bash # /opt/custom_metrics/disk_usage_monitor.sh OUTPUT_FILE="/var/lib/node_exporter/textfile_collector/disk_usage.prom" for i in {1..4}; do # 60秒內運行4次(15秒間隔) # 獲取根分區使用率 ROOT_USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%') # 寫入Prometheus格式指標 cat > $OUTPUT_FILE <<EOF # HELP custom_filesystem_usage_percent Disk usage percentage # TYPE custom_filesystem_usage_percent gauge custom_filesystem_usage_percent{mountpoint="/"} $ROOT_USAGE # HELP custom_service_status Service status (1=up, 0=down) # TYPE custom_service_status gauge custom_service_status{service="nginx"} $(systemctl is-active nginx &>/dev/null && echo 1 || echo 0) EOF sleep 15 done
2、運行腳本生成 .prom 文件,生成/var/lib/node_exporter/textfile_collector/disk_usage.prom文件
mkdir /var/lib/node_exporter/textfile_collector -p
/opt/custom_metrics/disk_usage_monitor.sh

3、設置定時任務,注意* * * * *表示每分鐘運行,1 * * * * 是每小時的第1分鐘運行一次
crontab -e
* * * * * /opt/custom_metrics/disk_usage_monitor.sh
4、配置Node Exporter,在啟動命令加如下參數
--collector.textfile.directory=/var/lib/node_exporter/textfile_collector
我這里的Node Exporter是systemctl管理的,完整內容如下
vim /usr/lib/systemd/system/node_exporter.service [Unit] Description=node_exporter Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=root ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9101 --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target
5、在Prometheus頁面上驗證有沒有這2個自定義的指標,結果有。前提是Prometheus已經配置了job和Node_Exporter關聯



浙公網安備 33010602011771號