在 Prometheus 中负责数据汇报的程序统一叫做 Exporter, 而不同的 Exporter 负责不同的业务。 它们具有统一命名格式,即 xx_exporter, 例如负责主机信息收集的 node_exporter。
Prometheus 数据采集方式也非常灵活。要采集目标的监控数据,首先需要在目标处安装数据采集组件( Exporter),它会在目标处收集监控数据,并暴露出一个 HTTP 接口供 Prometheus 查询,Prometheus 通过 Pull 的方式来采集数据,这和传统的 Push 模式不同。不过 Prometheus 也提供了一种方式来支持 Push 模式,可以将你的数据推送到 Push Gateway,Prometheus 通过 Pull 的方式从 Push Gateway 获取数据。目前的 Exporter 已经可以采集绝大多数的第三方数据,比如 Docker、HAProxy、Nginx、MySQL 等,官网有一份 Exporter 的列表。
node_exporter安装
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz
cd node_exporter-0.18.1.linux-amd64
./node_exporter
node_exporter 启动之后,可以访问下 /metrics 接口看看是否能正常获取服务器指标:
curl http://localhost:9100/metrics
修改 Prometheus 的配置文件,将服务器加到 scrape_configs
vim prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['127.0.0.1:9090']
- job_name: 'node'
static_configs:
- targets: ['192.168.8.107:9100']
修改配置后,需要重启 Prometheus 服务,或者发送 HUP 信号重新加载配置
killall -HUP prometheus
打开 Prometheus Web UI 的 Status -> Targets 中,我们可以看到新加的服务器,至此 node_exporter 部署完成,关于更多node_exporter 信息,可以查看 node_exporter 文档