Prometheus 监控体系中的 Exporter 机制
Exporter 的核心作用
在 Prometheus 监控架构中,数据采集任务由 Exporter 承担。Prometheus 服务器仅需周期性地从各 Exporter 提供的 HTTP 接口拉取监控指标,无需直接访问目标系统。
Exporter 的职责是将底层系统的运行状态转换为标准的文本格式,并通过 HTTP 端点暴露,供 Prometheus 定期抓取。最终,这些数据可在 Prometheus Web UI 中以图形化方式展示。
常见官方 Exporter 列表
- 官方 Exporter 汇总页
- 所有由 Prometheus 官方维护的组件均带有
official标识,源码位于 GitHub 仓库 - 典型实例包括:
node_exporter、wmi_exporter、mysqld_exporter、redis_exporter、blackbox_exporter等
监控数据的文本格式规范
Prometheus 使用纯文本作为监控样本的传输格式,具备良好的可读性和跨平台兼容性。该格式基于行结构:
- 每行以换行符结尾,末尾必须包含换行符
- 空行会被忽略
- 以
#开头的行视为注释,通常用于元信息说明
# HELP node_cpu_seconds_total CPU usage time in seconds
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{mode="idle"} 12345.67
node_cpu_seconds_total{mode="user"} 890.12
格式解析:
# HELP:定义指标的描述信息,包含名称与用途说明# TYPE:声明指标类型,包括counter(计数器)、gauge(仪表盘)、histogram(直方图)、summary(摘要)和untyped(未指定类型)- 非注释行:实际监控数据,包含指标名、标签及数值
- 其他注释行不影响采集,仅用于提升可读性
node_exporter 部署实践
由 Prometheus 官方开发的 node_exporter 是用于采集 Linux 主机核心指标的工具,涵盖 CPU、内存、磁盘空间、I/O、负载、网络等关键维度。
安装步骤
[root@node100 ~]# tar -xzvf node_exporter-1.8.2.linux-amd64.tar.gz -C /opt
[root@node100 ~]# cd /opt
[root@node100 opt]# ln -sv node_exporter-1.8.2.linux-amd64 node_exporter
[root@node100 opt]# useradd prometheus && echo "prometheus:prometheus" | chpasswd && chage -M 99999 prometheus
[root@node100 opt]# chown -R prometheus:prometheus /opt/node_exporter-1.8.2.linux-amd64/
系统服务配置
[root@node100 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter Service
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/opt/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动与验证
[root@node100 ~]# systemctl daemon-reload
[root@node100 ~]# systemctl enable node_exporter.service
[root@node100 ~]# systemctl start node_exporter.service
[root@node100 ~]# systemctl status node_exporter.service
与 Prometheus 服务集成
在 Prometheus 服务端配置文件中添加节点采集任务:
---
job_name: 'node_exporter'
static_configs:
- targets: ['192.168.16.100:9100']
完成修改后执行热加载:
curl -X POST http://192.168.16.200:9090/-/reload
访问 http://192.168.16.200:9090/targets 查看目标状态,正常应显示为 UP。
官方维护的 Exporter 列表
- Consul exporter (official)
- Memcached exporter (official)
- MySQL server exporter (official)
- Node/system metrics exporter (official)
- HAProxy exporter (official)
- AWS CloudWatch exporter (official)
- Collectd exporter (official)
- Graphite exporter (official)
- InfluxDB exporter (official)
- JMX exporter (official)
- SNMP exporter (official)
- StatsD exporter (official)
- Blackbox exporter (official)