Prometheus学习记录【二】
1 写在前面
1.1 书接上回
上次的记录主要是对一些入门的知识做了个整理,以及在物理机上如何安装Prometheus,按照最后的方法安装以后,便可以进行一些基础指标查询了。
1.2 本节内容
这一节内容就开始去操作PromQL进行查询,操作之前我先安装了node_exporter做一些服务器主机指标的采集,作为练手的基础数据。
2 正文
2.1 node_exporter
2.1.1 安装组件
通过官网下载node_exporter,直接在prometheus的官网就可以找到对应的下载链接:Prometheus组件下载页
将压缩包上传至需要安装的节点上,直接解压,按照自己的需求把程序包存放到指定位置,我这里为了后面配置告警,在测试环境把alertmanger一起安装了:
运行node_exporter的二进制文件即可,随后要在prometheus的配置文件中加入对应的node_exporter信息才可以抓取到数据:
注意,这里建议prometheus的启动加入–web.enable-lifecycle --web.enable-admin-api参数,这样在更改配置以后不需要重启prometheus,直接调用接口就可以刷新配置
在添加配置项之前,只能在测试prometheus控制台上看到其本身的服务:
添加配置项后,使用接口刷新配置,后台日志会打印刷新配置的信息,前端刷新页面,即可看到变化:
curl -X POST http://localhost:9090/-/reload
PS:在我搭建测试环境的时候,使用的是prometheus的2.26版本,这个版本的控制台有些许变化,并且增加了TSDB的状态监控,相信对prometheus的自状态监控有帮助:
2.1.2 配置指标筛选
node_exporter本身会暴露出很多指标,但是有些不关心的指标是可以不去暴露出来的,这一部分也是可以控制的,已知的有两种方法:
- 通过node_exporter启动参数控制
node_exporter的启动参数有很多,其中collector开头的参数就是控制采集的指标类型的,默认许多的指标采集是开启的,可以通过node_exporter -h查看说明:
如果想要选择需要的指标进行采集,可以这样启动node_exporter:
./node_exporter --web.listen-address=":9300" --collector.disable-defaults --collector.diskstats
上面的启动命令通过web.listen-address参数指定监听端口,collector.disable-defaults参数禁用了所有默认的指标,然后再通过collector.diskstats参数开启磁盘状态相关的指标,这个时候再查看收集的指标就只能看到磁盘相关的指标和node_exporter本身相关的指标了:
如果想把node_exporter本身的指标一起关闭只需要加上web.disable-exporter-metrics参数
- 通过Prometheus的配置文件进行node_exporter指标的筛选
在配置文件中加入params块的内容,就可以进行指标的采集过滤了,这种方式下,node_exporter会正常暴露所有指标,但是prometheus不会采集:
- job_name: 'Kafka'
file_sd_configs:
- refresh_interval: 1m
files:
- ./conf.d/kafka.json
params:
collect[]:
- meminfo
- filesystem
- cpu