首先我們要知道什么是Node_export?因為Prometheus本身不具備監控功能,我們要通過Prometheus收集數據,需要安裝對應的export。如Node_export用於監控服務器狀態,如cpu、內存、網絡、磁盤等信息。
注意事項: node_exporter服務需要在兩台機器都安裝,這里我們以客戶端(192.168.229.138)為例
客戶端
1.創建運行用戶
[root@localhost opt]# groupadd -r prometheus
[root@localhost opt]# useradd -r -g prometheus -d / -s /sbin/nologin -c "prometheus user" prometheus
2.下載安裝
[root@localhost opt]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
[root@localhost opt]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@localhost opt]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/
3.配置啟動腳本
[root@localhost opt]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
4.啟動
[root@localhost opt]# systemctl daemon-reload
[root@localhost opt]# systemctl enable node_exporter
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@localhost opt]# systemctl start node_exporter
5.監聽9100端口
[root@localhost opt]# netstat -anlptu|grep 9100
tcp 0 0 192.168.229.139:56874 192.168.229.138:9100 ESTABLISHED 8528/prometheus
tcp 0 0 192.168.229.139:40074 192.168.229.139:9100 ESTABLISHED 8528/prometheus
tcp6 0 0 :::9100 :::* LISTEN 6064/node_exporter
tcp6 0 0 192.168.229.139:9100 192.168.229.139:40074 ESTABLISHED 6064/node_exporter
服務端
1.安裝node_exporter,參考客戶端安裝
2. 修改prometheus.yml
[root@localhost opt]# vim /etc/prometheus/prometheus.yml
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'node' ### 新增加job
static_configs:
- targets: ['192.168.229.139:9100','192.168.229.138:9100'] ### 主機列表
3.訪問Prometheus Status > targets
4.收集系統CPU監控信息
4.1 CPU使用率
公式:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
4.2 CPU負載
公式:
1分鍾負載:node_load1
5分鍾負載:node_load5
15分鍾負載:node_load15
5.收集系統內存監控信息
5.1 內存使用率
公式:(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes ))* 100
5.2 可用內存(單位:M)
公式:node_memory_MemAvailable_bytes / 1024 / 1024
6.收集系統磁盤監控信息
6.1 磁盤總大小(單位: G)
公式:node_filesystem_size_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024
6.2 磁盤剩余大小(單位: G)
公式:node_filesystem_avail_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024
6.3 磁盤使用率
公式:(1-(node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) * 100
7.收集系統網絡監控信息(ip add 查看網卡信息)
7.1 網卡入網流量 (指定某一個網卡)
公式:irate(node_network_receive_bytes_total{device='ens33'}[5m])
7.2 網卡出網流量(指定某一個網卡)
公式:irate(node_network_transmit_bytes_total{device='ens33'}[5m])
說明:以上收集系統各信息,都是通過node_exporter服務進行數據的收集,然后通過prometheus內置的PromQL語句進行組合查詢,對於每一個公式,都可以在prometheus WEB界面測試查詢。關於具體的PromQL語句以及公式中函數的使用參考:PromQL語句
歡迎關注微信公眾號:軟件測試汪。軟件測試交流群:809111560
轉載請注意出處,謝謝合作