以systemd方式,安裝Prometheus與Node Exporter

下載binary執行檔,官方下載點,依作業系統與硬體平台下載對應檔案

picture 0

picture 1

服務 預設埠 說明
Prometheus 9090 自身 Web UI 與查詢埠
Node Exporter 9100 系統指標
nginx-prometheus-exporter 9113 轉換 Nginx status 成 metrics
Blackbox Exporter 9115 外部連線檢查(ping/http)
Alertmanager 9093 告警通知管理介面
  • Prometheus使用 Port 9090
  • Node Exporter使用 Port 9100

安裝Prometheus

下載Prometheus

1
curl -JLO https://github.com/prometheus/prometheus/releases/download/v3.11.3/prometheus-3.11.3.linux-amd64.tar.gz

解壓縮

1
tar  zxvf prometheus-3.11.3.linux-amd64.tar.gz

新增使用者prometheus,並新增group,用於執行prometheus使用

1
2
3
4
5
6
sudo groupadd -f prometheus
sudo useradd -g prometheus -M -r -s /bin/false prometheus
sudo mkdir /etc/prometheus
sudo chown prometheus:prometheus /etc/prometheus
sudo mkdir -p /var/lib/prometheus/
sudo chown prometheus:prometheus /var/lib/prometheus/
  • -M=--no-create-home 不建立家目錄
  • -r=--system 屬性為系統帳密(UID<1000)
  • s=--shell 指定shell,這裡指定一個無法登入的shell /bin/false

移動prometheus執行檔與設定檔,並更改擁有者

1
2
3
4
mv prometheus /usr/local/bin
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo mv prometheus.yml /etc/prometheus
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

prometheus.yml設定範例

1
2
3
4
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['192.168.1.19:9100']

新增一個service設定檔

service檔的位置可放在

  • /etc/systemd/system/prometheus.service
  • /usr/lib/systemd/system/prometheus.service
1
sudo vim /usr/lib/systemd/system/node_exporter.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \


[Install]
WantedBy=multi-user.target

重新載入systemd設定檔

1
2
sudo systemctl daemon-reload
sudo systemctl start prometheus.service

查看prometheus.service狀態

1
sudo systemctl start prometheus.service

安裝 node exporter

下載node exporter

1
curl -JLO https://github.com/prometheus/node_exporter/releases/download/v1.11.1/node_exporter-1.11.1.linux-amd64.tar.gz

解壓縮

1
tar  zxvf node_exporter-1.11.1.linux-amd64.tar.gz

新增使用者,並新增group,用於執行node exporter使用

1
2
3
4
sudo groupadd -f node_exporter
sudo useradd -g node_exporter -M -r -s /bin/false node_exporter
sudo mkdir /etc/node_exporter
sudo chown node_exporter:node_exporter /etc/node_exporter

將node exporter執行檔放到/usr/local/bin目錄下,並更改使用者為node_exporter

1
2
sudo mv node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

新增一個node_exporter.service設定檔

1
sudo vim /usr/lib/systemd/system/node_exporter.service

node_exporter.service內容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[Unit]
Description=Node Exporter
Documentation=https://prometheus.io/docs/guides/node-exporter/
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
Restart=on-failure
ExecStart=/usr/local/bin/node_exporter \
  --web.listen-address=:9100

[Install]
WantedBy=multi-user.target

修改 node_exporter.service 權限

1
sudo chmod 664 /usr/lib/systemd/system/node_exporter.service

重新載入systemd設定檔

1
2
3
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl status node_exporter

設定開啟自動啟動node_exporter.service(可選)

1
sudo systemctl enable node_exporter.service

確認node exporter是否正確執行

使用瀏覽器開啟下面網址

1
http://<node_exporter-ip>:9100/

出現下圖的樣子代表運作正常 picture 2

Built with Hugo
Theme Stack designed by Jimmy