一、使用node-exporter用來監控linux指標
node-exporter它是使用go語言編寫的收集器
使用文檔:https://prometheus.io/docs/guides/node-exporter/
wget https://github.com/prometheus/node_exporter/releases/download/v1.0.0-rc.0/node_exporter-1.0.0-rc.0.linux-amd64.tar.gz tar xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz -C /usr/local/ ln -s /usr/local/node_exporter-1.0.0-rc.0.linux-amd64/ /usr/local/node_exporter # 可以直接執行node_exporter程序啟動服務 /usr/local/node_exporter/node_exporter
二、使用systemd來管理node_exporter服務
# vim /usr/lib/systemd/system/node_exporter.service [Unit] Description=https://prometheus.io [Service] Restart=on-failure ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target # systemctl daemon-reload # systemctl start node_exporter.service # 啟動服務后監聽端口9100 # netstat -lntp | grep node_export tcp6 0 0 :::9100 :::* LISTEN 2986150/node_export
三、在prometheus服務端添加主機
前面已經配置了基於file_sd_configs的文件自動發現,所以添加完服務之后並不需要重啟prometheus服務
[root@192-168-5-237 ~]# cd /usr/local/prometheus [root@192-168-5-237 prometheus]# vim sd_config/node.yml - targets: - 192.168.5.71:9100 labels: app: nginx [root@192-168-5-237 prometheus]# ./promtool check config prometheus.yml Checking prometheus.yml SUCCESS: 0 rule files found
在status中查看targets中能看到新添加的主機
四、promSQL獲取CPU、內存、磁盤使用率(臨時調試使用)
# 磁盤使用率 100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{mountpoint="/",fstype=~"ext4|xfs"} * 100) # cpu使用率 100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100) # 內存使用率 100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100
五、promSQL獲取系統服務運行狀態
5.1 查看node_exporter幫忙獲取需要的參數選項
# ./node_exporter --help --collector.systemd # Enable the systemd collector (default: disabled). --collector.systemd.unit-whitelist=".+" # Regexp of systemd units to whitelist. Units must both match whitelist and not match blacklist to be included.
5.2 修改node_exporter服務啟動參數(監控sshd和nginx服務)
# cat /usr/lib/systemd/system/node_exporter.service [Unit] Description=https://prometheus.io [Service] Restart=on-failure ExecStart=/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(sshd|nginx).service [Install] WantedBy=multi-user.target # systemctl daemon-reload # systemctl restart node_exporter.service
# ps aux | grep node
root 2993957 0.2 0.5 115760 10216 ? Ssl 20:46 0:00 /usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(sshd|nginx).service
5.3 查看prometheus端是否成功