prometheus如何實現Linux主機的監控
Prometheus 主要用於監控 web 服務,如果需要監控Linux主機,則需要在本機上安裝 node exporter。 Node exporter 主要用於暴露 metrics 給 Prometheus 。
Node exporter 安裝
1、首先在prometheus官網下載 node_exporter-0.17.0-rc.0.linux-amd64.tar.gz 的壓縮包。官網地址為: https://prometheus.io/docs/introduction/overview/
執行解壓縮命令:
tar xvfz node_exporter-0.17.0-rc.0.linux-amd64.tar.gz
2、cd 到 node_exporter 目錄下,有一個 node_exporter 檔案,./node_exporter
注:有些主機上會出現 Permission denied 的情況,具體報錯程式碼為:
[email protected]:/etc/prometheus/node_exporter# ./node_exporter
-bash: ./node_exporter: Permission denied
解決方法:sudo chmod -R 777 node_exporter
其中
-R 是指級聯應用到目錄裡的所有子目錄和檔案
777 是所有使用者都擁有最高許可權
3、驗證9100埠(先驗證第一句,再驗證第二句)
netstat -anp | grep 9100
curl http://localhost:9100/metrics
Prometheus 安裝和配置
Prometheus 可以採用多種方式安裝,本文直接用官網的 docker image(prom/prometheus)啟動一個 Prometheus server, 並配置相應的靜態監控 targets。
1、啟動docker(前面的地址是我們本地的地址,後面的地址是我們期望的地址)
docker run -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
注1:如果使用二進位制檔案安裝的話,解壓後在檔案中找到所在目錄,執行
./prometheus --config.file=/etc/prometheus/prometheus.yml
注2:如何檢視 prometheus 的版本/ 幫助文件
cd 二進位制檔案目錄
#檢視版本:
./prometheus --version
#檢視幫助文件
./prometheus --help
#檢視幫助文件的同時對文件進行關鍵詞檢索
./prometheus --help | grep storage.local.retention
2、配置 prometheus.yml
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 15s
static_configs:
- targets: ['localhost:9090']
- job_name: 'nodelocal'
scrape_interval: 10s
static_configs:
- targets: ['ip1:9100']
- job_name: 'node'
scrape_interval: 10s
static_configs:
- targets: ['ip2:9100']
注:每次修改配置檔案之後,都需要刪除docker例項,然後重新執行docker run 指令。必須是刪除例項,如果只是停止再開啟是不還用的。
顯示所有容器,包括未執行的容器(得到容器的ID): docker ps -a
停止docker例項(竇澤無法執行remove):docker stop 容器ID
刪除docker例項:docker rm 容器ID`
3、訪問prometheus: http://Ip:9090/graph
注1:9100是node-exporter的埠號,9090是prometheus的埠號。
注2:如果顯示虛擬機器 no route to host ,則把虛擬機器中的防火牆給清了一下。
sudo iptables -F
參考連結:https://prometheus.io/docs/prometheus/latest/getting_started/