Prometheus - node_exporter
您可以找一台您想要監控的站台進行安裝,Prometheus 有許多的套件服務可以到 官方文檔 作參考,這次 BUBU 是安裝監控系統服務資訊套件
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: CentOS、Debian、Ubuntu
安裝過程
- 下載
Node_Exporter
套件
curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d '"' -f 4|wget -qi -
- 解壓套件
tar -xvf node_exporter-*.linux-amd64.tar.gz
- 將解壓出來的
node_exporter
執行檔移到/usr/local/bin/
目錄下
sudo mv node_exporter-*.linux-amd64/node_exporter /usr/local/bin/
- 建立權限
# 方式一
sudo groupadd --system node_exporter
sudo useradd -s /sbin/nologin --system -g node_exporter node_exporter
# 方式二
sudo useradd -rs /bin/false node_exporter
- 設定服務
vim /etc/systemd/system/node_exporter.service
cat >/etc/systemd/system/node_exporter.service <<___EOF___
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
___EOF___
- 啟動服務
sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter
- 確認服務狀態
systemctl status node_exporter
- 再連到
Prometheus
服務設定檔vim /etc/prometheus/prometheus.yml
- job_name: 'node_exporter_metrics'
scrape_interval: 5s
static_configs:
- targets: ['192.168.1.37:9100']
- 確認設定檔是否正確
promtool check config /etc/prometheus/prometheus.yml
- 重啟服務
systemctl restart prometheus
- 再去看後台頁面是否有增加到這一台,要點選
Status
-> 選擇Targets
- 進入之後就可以看到您剛剛監控的站台
補充說明
因 BUBU 公司還有 CentOS 6 版本,順便記錄一下怎麼設定。
-
如果無法用 wgat 方式下載的話,可以用 winscp 方式將壓縮檔上傳到該站台的目錄下。
-
新增服務設定檔
vim /etc/init.d/node_exporter
cat >/etc/init.d/node_exporter <<__EOF__
#!/bin/bash
# chkconfig: 345 20 80
# description: my service
345 - 3,4,5 runlevels
20 - start priority
80- stop prioroty
OPTIONS=`cat /etc/sysconfig/node_exporter`
RETVAL=0
PROG="node_exporter"
EXEC="/usr/local/bin/node_exporter"
LOCKFILE="/var/lock/subsys/$PROG"
LOGFILE=/var/log/node_exporter.log
ErrLOGFILE=/var/log/node_exporter_error.log
# Source function library.
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo "/etc/rc.d/init.d/functions is not exists"
exit 0
fi
start() {
if [ -f $LOCKFILE ]
then
echo "$PROG is already running!"
else
echo -n "Starting $PROG: "
nohup $EXEC $OPTIONS > $LOGFILE 2> $ErrLOGFILE &
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $LOCKFILE && success || failure
echo
return $RETVAL
fi
}
stop() {
echo -n "Stopping $PROG: "
killproc $EXEC
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -r $LOCKFILE && success || failure
echo
}
restart ()
{
stop
sleep 1
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $PROG
;;
restart)
restart
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
__EOF__
- 讓服務有執行權限
chmod +x /etc/init.d/node_exporter
- 啟動服務
/etc/init.d/node_exporter start
/etc/init.d/node_exporter stop
- 開機自動啟動服務
chkconfig --add node_exporter