监控主机: 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