历览千载书,时时见遗烈。这篇文章主要讲述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收集器的数据
推荐阅读
- Linux之top命令
- 如何建立一体化云管体系,实现自治式多云管理
- MySQL数据库 管理
- 手把手教你轻松获取局域网络设备
- 《银行业保险业数字化转型的指导意见》的研运一体化该如何实现()
- 综合型集团该如何利用数字化转型支撑磅礴多元的服务()
- 高级数据结构(B+树实现介绍)
- C/C++如何连接数据库(代码实现示例)
- 数据库管理系统|依存关系分解