天天看點

(七)Prometheus 自動發現主機

通過上一篇[(六)Prometheus 監控 apache 服務 的學習,我們已經對 prometheus 做了一個傳統服務的監控,本篇詳細講解 Prometheus 自動發現主機并添加。

準備環境

# 這裡使用的是(四)Prometheus + Grafana 可視化 完成時的環境
centos 7
prometheus 運作正常
grafana 運作正常

[[email protected]-21 ~]# getenforce
Permissive

[[email protected]-21 ~]# ss -lntp |grep prometheus
LISTEN     0      128         :::9090                    :::*                   users:(("prometheus",pid=10531,fd=6))

[[email protected]-21 ~]# ss -lntp |grep grafana
LISTEN     0      128    10.0.0.21:3000                     *:*                   users:(("grafana-server",pid=10690,fd=7))
           

新開一台伺服器,做用戶端

# 關閉防火牆
[[email protected]-22 ~]# systemctl stop firewalld.service 

# 修改 selinux 為警告模式
[[email protected]-22 ~]# setenforce 0

# 時間同步
[[email protected]-22 ~]# ntpdate ntp.aliyun.com
31 Mar 22:16:56 ntpdate[1872]: step time server 203.107.6.88 offset -43199.490573 sec
           

安裝 node_exporter 收集資料,點選下載下傳

# 本地上傳或下載下傳
[[email protected]-22 ~]# cd /opt/ ; mkdir node_exporter ; cd node_exporter
[[email protected]-22 node_exporter]# ls
node_exporter-0.18.1.linux-amd64.tar.gz
           

解壓

[[email protected]-22 node_exporter]# tar xf node_exporter-0.18.1.linux-amd64.tar.gz 
[[email protected]-22 node_exporter]# ls
node_exporter-0.18.1.linux-amd64  node_exporter-0.18.1.linux-amd64.tar.gz
[[email protected]-22 node_exporter]# mv node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter
[[email protected]-22 node_exporter]# cd !$
cd /usr/local/node_exporter
[[email protected]-22 node_exporter]# cp node_exporter /usr/local/bin
[[email protected]-22 node_exporter]# node_exporter 
           

添加至開機自啟

# 添加為系統服務
[[email protected]-22 node_exporter]# vim /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

# 重新加載
[[email protected]-22 node_exporter]# systemctl daemon-reload

# 添加至開機自啟
[[email protected]-22 node_exporter]# systemctl enable node_exporter.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.

# 啟動服務
[[email protected]-22 node_exporter]# systemctl start node_exporter.service 

# 檢視程序
[[email protected]-22 node_exporter]# ps -ef |grep node_exporter
root      13952      1  1 21:29 ?        00:00:00 /usr/local/node_exporter/node_exporter
root      13956   1799  0 21:29 pts/0    00:00:00 grep --color=auto node_exporter

# 檢視端口
[[email protected]-22 node_exporter]# ss -lntp |grep node_exporter
LISTEN     0      128       [::]:9100                  [::]:*                   users:(("node_exporter",pid=13952,fd=3))
           

服務端添加配置檔案

[[email protected]-21 ~]# mkdir -p /usr/local/prometheus/target/{node,docker}
[[email protected]-21 ~]# vim /usr/local/prometheus/target/node/host_status.json

[
        {
                "targets": [ "10.0.0.22:9100" ],
                "labels": {
                  "job": "node2-status",
                  "service": "node2"
                }
        }
]
           

修改 Prometheus 配置檔案

[[email protected]-21 ~]# vim /usr/local/prometheus/conf/prometheus.yml
 39   - job_name: 'host-status'
 40     file_sd_configs:
 41     - files:
 42       - "/usr/local/prometheus/target/node/host_status.json"
 43       refresh_interval: 6s
           

重新開機 Prometheus

第一次引用,是以定義完成之後,需要重新開機一下,如果後續再添加節點,則直接寫入json檔案即可,無需重新開機Prometheus服務

[[email protected]-21 ~]# systemctl restart prometheus.service
           

檢視 Prometheus 監控

(七)Prometheus 自動發現主機

檢視 Grafana 的資料

(七)Prometheus 自動發現主機

隻有注入思想的部落格才是好的部落格

繼續閱讀