Prometheus入門到放棄(2)之Node_export安裝部署


1、下載安裝

node_exporter服務需要在三台機器都安裝,這里我們以一台機器為例:

地址:https://prometheus.io/download/

### 另外兩個節點部署時,需要先創建腳本中運行用戶prometheus
[root@prometheus-server ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
[root@prometheus-server ~]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@prometheus-server ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/
## 編輯啟動腳本
[root@prometheus-server ~]# 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

## 啟動
[root@prometheus-server ~]# 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@prometheus-server ~]# systemctl start node_exporter
## 監題9100端口
[root@prometheus-server ~]# netstat -anlptu|grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      5216/node_exporter 

Node_exporter安裝非常簡單,下載解壓啟動就可以,node_exporter只是收集操作系統的一些指標,如果想要進行其它服務的監控收集,需要額外安裝對應的exporter服務。這里之所以沒有采用docker方式部署,原因如下:

官方說明:https://github.com/prometheus/node_exporter

2、配置prometheus監控目標

Node_export 相當於一個客戶端一樣,運行在各個節點進行機器數據的收集。

[root@prometheus-server ~]# 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: ['10.10.0.11:9100','10.10.0.12:9100','10.10.0.13:9100']  ### 主機列表
## 重載配置
### 只有在prometheus啟動時添加--web.enable-lifecycle參數,才可以進行熱加載重置配置文件
[root@prometheus-server ~]# curl -X POST http://localhost:9090/-/reload

3、訪問prometheus 

Status >> targets,可以看到新增加的節點已經成功連接prometheus服務

 

4、收集系統CPU監控信息

  4.1 CPU使用率

  公式:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

  4.2 CPU負載

  公式:

    node_load1     ## 1分鍾負載

    node_load5     ##5分鍾負載

    node_load15   ##15分鍾負載

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、收集系統網絡監控信息

  7.1 網卡入網流量 (指定某一個網卡)

  公式:irate(node_network_receive_bytes_total{device='ens32'}[5m])

  7.2 網卡出網流量(指定某一個網卡)

  公式:irate(node_network_transmit_bytes_total{device='ens32'}[5m])

說明:以上收集系統各信息,都是通過node_exporter服務進行數據的收集,然后通過prometheus內置的PromQL語句進行組合查詢,對於每一個公式,都可以在prometheus WEB界面測試查詢。

比如,查看系統可用內存,第一張圖是通過prometheus界面promsql語句查詢,第二幅圖是在機器上通過free -lm命令查出:

注意:新版本node_exporter中一些PromQL查詢指標值與舊版本不一致,使用時注意區分。

關於具體的PromQL語句以及公式中函數的使用參考:https://prometheus.io/docs/prometheus/latest/querying/functions/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM