prometheus中exporter使用示例
Posted quietguoguo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件的目录在启动node_exporter使用--collector.texfile.directory参数来指定textfile的路径。
mkdir -p /var/lib/node_exporter/textfile_collector
echo metadatarole="docker_server",datacenter="HZ" 1 > /var/lib/node_exporter/textfile_collector/metadata.prom
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部分
添加一个新的job,并添加相应的配置
scrape_configs
job_namedocker_servers
static_configs
targets192.168.0.251:9100192.168.0.252:9001
node exporter会返回很多数据,但并不是所有数据都是需要的,一方面可以在node_exporter上进行配置,另一方面,也可以在pormetheus上进行过滤。
使用params块中的collect[]指定要收集的指标(仅展示job_name部分)
job_namedocker_servers
static_configs
targets192.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收集器的数据
以上是关于prometheus中exporter使用示例的主要内容,如果未能解决你的问题,请参考以下文章
JMX_exporter 在 Prometheus 和 Grafana 中显示错误