Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多exporter可供利用。对于收集各种主机指标数据(包括CPU、内存和磁盘),我们使用Node Exporter即可。如果需要监控Docker的话,建议使用cadvisor(容器)进行监控
Node exporter的下载与安装:
Prometheus官方exporter下载地址
https://prometheus.io/docs/instrumenting/exporters/
安装部署步骤我就省略了。直接下载解压运行即可
Node Exporter配置:
建议在使用前使用 --help命令查看帮助文档,这个很有用
textfile收集器:
node_exporter有一个textfile收集器,利用该手机器,我们可以配置一些静态指标。
例如我们在某个路径创建某个目录,并在该目录内新建以prom结尾的文件,文件内书写相应的文本格式,例如:
metadata{role="docker_server",datacenter="SZ"} 1 #role和datacenter好像是可以自己随便命名的,后面为对应的值,最后的1是因为该值是用来提供上下文的,不是计数型、测量型和计时型的指标
该收集器默认会被自动加载,只需要在运行时使用--collector.textfile.directory参数即可。
systemd收集器
node_exporter默认收集的systemd的指标太多了,我们可以使用该收集器指定只接收的systemd服务监控内容,例如我们只想监控docker、ssh、rsyslog服务的监控内容指标,只需要在运行node_exporter指定--collector.systemd.unit-whitelist="(docker|ssh|rsyslog).service"即可
具体示例
配置多个Node Exporter示例
监控多台node
修改prometheus.yml文件对应部分内容
配置只监听部分指标,例如cpu,内存信息等,其他未指定指标将被忽略
可以通过以下命令进行测试
运行cAdvisor
使用浏览器访问
数据收集上来之后,会被存储起来。但是cAdvisor收集了大量的数据,为了节省空间,我们可以将部分收集上来的数据直接drop掉,如下:
提取收集上来的数据中的某项的部分信息
直接定义监控项(计算CPU在五分钟内的使用率,需要减去idle空闲的)