17.4.1 Exporter类型与生态概览
Exporter类型与生态概览#
Prometheus通过Exporter将各类系统、应用与中间件的指标统一暴露为/metrics端点,实现多样化指标采集。本节从类型、生态与接入流程出发,给出安装示例、验证命令、排错思路与练习。
原理草图:Prometheus与Exporter协作#
Exporter主要类型与典型场景#
- 官方与核心Exporter:Node、Blackbox、SNMP等,通用性强,稳定性高。
- 应用与中间件Exporter:Nginx、Redis、Kafka、ZooKeeper、HAProxy、ProxySQL等。
- 云与平台Exporter:Kubernetes组件、云资源指标。
- 自定义Exporter:自研业务指标,SDK或自写HTTP服务暴露。
快速安装示例(以Node Exporter为例)#
环境:Linux x86_64
目的:提供系统级指标
# 1) 下载与解压
cd /opt
curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar -xf node_exporter-1.7.0.linux-amd64.tar.gz
ln -s /opt/node_exporter-1.7.0.linux-amd64 /opt/node_exporter
# 2) 运行
/opt/node_exporter/node_exporter --web.listen-address=":9100"
# 3) 验证
curl -s http://127.0.0.1:9100/metrics | head -n 5
预期效果:返回# HELP node_cpu_seconds_total ...等指标说明。
Prometheus抓取配置示例#
# /etc/prometheus/prometheus.yml
scrape_configs:
- job_name: "node"
static_configs:
- targets: ["127.0.0.1:9100"]
命令解释:
- job_name:抓取任务名称,用于PromQL标签。
- targets:目标Exporter地址列表。
- 修改后重载:
curl -X POST http://127.0.0.1:9090/-/reload
生态选择与评估维度(配套示例)#
- 维护活跃度:优先选择GitHub issues活跃、版本更新频繁的Exporter。
- 指标覆盖度:通过
/metrics检查关键指标:
curl -s http://127.0.0.1:9100/metrics | grep -E "cpu|mem|disk" | head
- 资源占用:观察Exporter进程资源:
ps -eo pid,cmd,%cpu,%mem --sort=-%cpu | head
- 兼容性:确认系统与依赖版本要求。
常见故障排错清单(快速定位)#
- 抓取失败
# Prometheus目标状态检查
curl -s http://127.0.0.1:9090/api/v1/targets | grep -A2 node
- 若
state: down,检查端口与防火墙:
ss -lntp | grep 9100
iptables -L -n | grep 9100
- 指标为空或缺失
curl -s http://127.0.0.1:9100/metrics | wc -l
- 行数异常少:检查Exporter参数或权限。
- 高基数标签导致内存上涨
- 通过Prometheus自监控指标定位:
topk(5, prometheus_tsdb_head_series)
练习#
- 安装Node Exporter并在Prometheus中添加抓取任务,验证
node_cpu_seconds_total存在。 - 替换目标为另一台服务器,观察Prometheus Targets状态变化。
- 手工关闭Exporter进程,确认Prometheus目标变为
DOWN并记录恢复时间。 - 从
/metrics中找出3个磁盘相关指标并写出其含义。
小结#
选择Exporter时应综合维护活跃度、指标覆盖、性能影响与兼容性;接入流程遵循“安装—暴露—抓取—验证—排错”。后续子节将展开具体Exporter实践与自定义扩展方式。