prometheus中exporter使用示例

历览千载书,时时见遗烈。这篇文章主要讲述prometheus中exporter使用示例相关的知识,希望能为你提供帮助。
前言如果一定要做个类比的话,可以吧prometheus中的exporter理解为zabbix中的agent。exporter用于暴露被监控主机、应用程序的各种指标。有各种exporter,比如收集主机数据的node exporter;nginx、memcache、haproxy...等应用的exporter这里我用node exporter作为示例,来研究exporter的使用。
node exporter可以收集主机的各项指标(CPU 内存 磁盘等),还支持texfile收集器,可以自定并导出静态指标。





下载直接在官网下载

cd /opt
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar zxvf node_exporter-1.3.1.linux-amd64.tar.gz
cd /opt/node_exporter-1.3.1.linux-amd64/


测试是否可以正常运行
./node_exporter --version


配置node_exporter参数
可以通过运行帮助来查看node_exporter有那些参数
./node_exporter --help


默认情况下node_exporter对外暴露9100端口,并在路径/metrics上暴露各种指标。这辆先够可以通过--web.listen-address和--web.telemetry-path来设置
./node_exporter --web.lister-address=":9090" --web.telemetry-path="host_metrics"

通过--help列出的参数中可以通过添加no-前缀来表示禁用。例如--collector.arp,可通过no--collector.arp来禁用
textfile收集器
textfile收集器用于暴露自定义指标。在本演示中用于展示主机的静态信息。
收集器通过扫描指定目录中的扩展名为prom的文件,提取所有格式为prometheus指标的字符串,并暴露。
比如设定本机的信息可以使用以下操作
# 创建一个用于存放prom文件的目录
mkdir -p /var/lib/node_exporter/textfile_collector
echo metadatarole="docker_server",datacenter="HZ" 1 > /var/lib/node_exporter/textfile_collector/metadata.prom

在启动node_exporter使用--collector.texfile.directory参数来指定textfile的路径。

systemd收集器
这个收集器用于记录系统中systemd的服务和系统状态,要收集指定的服务,可以使用--collector.systemd.unit-include
运行node exporter以下命令运行node_export
./node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd --collector.systemd.unit-whitelist="(docker|sshd).service"

数据抓取要抓取exporter暴露的数据,就需要在prometheus的server上进行相应的而配置。
打开prometheus.yml的scrape_configs部分
【prometheus中exporter使用示例】添加一个新的job,并添加相应的配置


scrape_configs:
- job_name: docker_servers
static_configs:
- targets: [192.168.0.251:9100,192.168.0.252:9001]

node exporter会返回很多数据,但并不是所有数据都是需要的,一方面可以在node_exporter上进行配置,另一方面,也可以在pormetheus上进行过滤。使用params块中的collect[]指定要收集的指标(仅展示job_name部分)



- job_name: docker_servers
static_configs:
- targets: [192.168.0.251:9100]
params:
collect[]:
- cpu
- meminfo
- systemd
- textfile

可通过curl进行模拟上述配置
curl "192.168.0.251:9100/metrics?collect[]=cpu& collect[]=meminfo& collect[]=systemd"


修改配置后对prometheus进程发送SIGHUP信号,重新加载配置文件
这是就能在prometheus的WEB界面看到相应的数据




textfile收集器的数据




    推荐阅读