跳到主內容

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-04.png

  • 再連到 Prometheus 服務設定檔 vim /etc/prometheus/prometheus.yml
- job_name: 'node_exporter_metrics'
   scrape_interval: 5s
   static_configs:
     - targets: ['192.168.1.37:9100']

prometheus-05.png

  • 確認設定檔是否正確
promtool check config /etc/prometheus/prometheus.yml

prometheus-06.png

  • 重啟服務
systemctl restart prometheus
  • 再去看後台頁面是否有增加到這一台,要點選 Status -> 選擇 Targets

prometheus-07.png

  • 進入之後就可以看到您剛剛監控的站台

prometheus-08.png

補充說明


  因 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

備註





參考相關網頁