1. 程式人生 > >prometheus如何實現Linux主機的監控

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

參考連結:https://www.ibm.com/developerworks/cn/cloud/library/cl-lo-prometheus-getting-started-and-practice/index.html

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/