監控主機: node_exporter

  • 2020 年 2 月 17 日
  • 筆記

監控主機: node_exporter

在Prometheus的架構設計中,Prometheus Server並不直接服務監控特定的目標,其主要任務負責數據的收集,存儲並且對外提供數據查詢支持。因此為了能夠能夠監控到某些東西,如主機的CPU使用率,我們需要使用到Exporter。Prometheus周期性的從Exporter暴露的HTTP服務地址(通常是/metrics)拉取監控樣本數據。 從上面的描述中可以看出Exporter可以是一個相對開放的概念,其可以是一個獨立運行的程序獨立於監控目標以外,也可以是直接內置在監控目標中。只要能夠向Prometheus提供標準格式的監控樣本數據即可。 這裡為了能夠採集到主機的運行指標如CPU, 內存,磁盤等信息。我們可以使用Node Exporter。 Node Exporter同樣採用Golang編寫,並且不存在任何的第三方依賴,只需要下載,解壓即可運行。

運行 node exporter

下載軟件包:

mkdir -p /usr/local/prometheus/exporter/node  cd /usr/local/prometheus/exporter/node  curl -s -OL https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-$Version.linux-amd64.tar.gz  tar xf node_exporter-0.18.0.linux-amd64.tar.gz  cp -a node_exporter-0.18.0.linux-amd64/node_exporter /usr/local/bin/  cat > /usr/lib/systemd/system/node-exporter.service <<-'EOF'  [Unit]  Description=This is prometheus node exporter  After=docker.service    [Service]  Type=simple  ExecStart=/usr/local/bin/node_exporter  ExecReload=/bin/kill -HUP $MAINPID  KillMode=process  Restart=on-failure    [Install]  WantedBy=multi-user.target  EOF  systemctl daemon-reload && systemctl enable node-exporter.service && systemctl start node-exporter.service

node_exporter 他的本質就是監控主機系統,所以我們不建議將其部署為 docker 容器,因為他需要訪問主機系統.

與 prometheus 集成

  - job_name: node      metrics_path: /metrics      static_configs:      - targets: ['192.168.111.65:9100']

重啟 prometheus,查看狀態

在 grafana 中添加圖表

圖表編號為8919 https://grafana.com/grafana/dashboards/8919 然後可以看到如下圖表

參考文檔:

https://github.com/prometheus/node_exporter https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/quickstart/prometheus-quick-start/use-node-exporter https://grafana.com/grafana/dashboards/8919