天天看点

Prometheus监控运维实战六: Node_exporter监控主机

前面我们学习了prometheus的基础概念,包括数据格式 、promql语法等,本节我们将学习如何通过prometheus监控主机 。

prometheus使用各种exporter来监控资源,exporter可以看成是监控的agent端,它负责收集对应资源的指标,并提供接口给到prometheus读取。不同的资源对应不同的exporter,如node-exporeter、mysql-exporter、kafka-exporter等,而在这其中最常用的当属node_exporter,它主要用来监控主机的性能参数。node-exporter使用go语言编写,可用于收集各种主机指标的库,还提供了textfile功能,可用于自定义指标。

下载安装包并解压

启动 node exporter

查看服务器,可看到端口已启动(默认端口9100)

官方不建议通过docekr方式部署node-exporter,因为它需要访问主机系统。通过docker部署的方式,需要把任何非根安装点都绑定到容器中,并通过--path.rootfs参数指定。 

拉取镜像

启动容器

部署完成后,访问节点地址:http://ip:9100/metrics ,可看到node-exporter获取的指标。

Prometheus监控运维实战六: Node_exporter监控主机

node-exporter提供不少配置参数,可使用 --help 进行查看。

示例:可以通过--web.listen-address 改变监听的端口

如果需要收集主机上面运行服务的状态,可启用systemd收集器。由于systemd指标较多,可以用--collector.systemd.unit-include参数配置只收集指定的服务,减少无用数据,该参数支持正则表达式匹配。

如docker和ssh服务状态,

示例:

如果只想启用需要的收集器,其他的全部禁用,可用如下格式配置

textfile是一个特定的收集器,它的功能非常有用,textfile允许我们暴露自定义的指标。这些指标或者是没有相关的exporter可以使用,或者是你自己开发的应用指标。

textfile通过扫描指定目录中的文件,提取所有符合prometheus数据格式的字符串,然后暴露它们给到prometheus进行抓取。

创建指标文件保存目录 

写入指标文件,此处我们用手动方式写入

启用textfile

访问node-exporter的地址,可看到指标已生效

Prometheus监控运维实战六: Node_exporter监控主机

在prometheus配置关于node-exporter节点的target,即可抓取相关节点指标数据。

实例抓取正常

Prometheus监控运维实战六: Node_exporter监控主机

在表达式浏览器中搜索 {job="node-exporter",instance="localhost:9100"},可看到相关指标已被收集到prometheus。

Prometheus监控运维实战六: Node_exporter监控主机

继续阅读