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/

prometheus中exporter使用示例_prometheus

测试是否可以正常运行

./node_exporter --version

prometheus中exporter使用示例_prometheus_02

配置node_exporter

参数

可以通过运行帮助来查看node_exporter有那些参数

./node_exporter --help

prometheus中exporter使用示例_prometheus_03

默认情况下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部分

添加一个新的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界面看到相应的数据


prometheus中exporter使用示例_prometheus_04

textfile收集器的数据

prometheus中exporter使用示例_exporter_05


以上是关于prometheus中exporter使用示例的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus SNMP Exporter

Prometheus监控运维实战十二:Exporter详解

JMX_exporter 在 Prometheus 和 Grafana 中显示错误

#yyds干货盘点# Prometheus Exporter cAdvisor

使用 Go 开发 Prometheus Exporter

prometheus-blackbox-exporter 正在触发误报警报