春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述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
二进制安装
下载安装包并解压
$ wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
$ tar -xvf tar -xvf node_exporter-1.1.2.linux-amd64.tar.gz
$ cd node_exporter-1.1.2.linux-amd64
启动 Node Exporter
$ ./node_exporter &
查看服务器,可看到端口已启动(默认端口9100)
$ netstat -lnpt|grep ":9100"
tcp600 :::9100:::*LISTEN2345/./node_exporte
docker安装
官方不建议通过Docekr方式部署node-exporter,因为它需要访问主机系统。通过docker部署的方式,需要把任何非根安装点都绑定到容器中,并通过--path.rootfs参数指定。
拉取镜像
$ docker pull prom/node-exporter
启动容器
$ docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" prom/node-exporter --path.rootfs=/host
部署完成后,访问节点地址:http://ip:9100/metrics ,可看到node-exporter获取的指标。
文章图片
二. 配置node-exporternode-exporter提供不少配置参数,可使用 --help 进行查看。
$ ./node_exporter --help
示例:可以通过--web.listen-address 改变监听的端口
$ ./node_exporter--web.listen-address=":8080" &
【Prometheus监控运维实战六( Node_exporter监控主机)】如果需要收集主机上面运行服务的状态,可启用systemd收集器。由于systemd指标较多,可以用--collector.systemd.unit-include参数配置只收集指定的服务,减少无用数据,该参数支持正则表达式匹配。
如docker和ssh服务状态,
示例:
./node_exporter --collector.systemd--collector.systemd.unit-include="(docker|sshd).service" &
如果只想启用需要的收集器,其他的全部禁用,可用如下格式配置
--collector.disable-defaults --collector.<
name>
三. textfile收集器textfile是一个特定的收集器,它的功能非常有用,textfile允许我们暴露自定义的指标。这些指标或者是没有相关的exporter可以使用,或者是你自己开发的应用指标。
textfile通过扫描指定目录中的文件,提取所有符合Prometheus数据格式的字符串,然后暴露它们给到Prometheus进行抓取。
示例:
创建指标文件保存目录
$ mkdir /opt/prom
写入指标文件,此处我们用手动方式写入
$ cat <
<
EOF | tee /opt/prom/metadata.prom
# HELP alex_test this is a test
# TYPE alex_test gauge
alex_test{server="test",idc="bj"} 1
EOF
启用textfile
./node_exporter --collector.textfile.directory="/opt/prom"&
访问node-exporter的地址,可看到指标已生效
文章图片
四. Prometheus抓取指标在Prometheus配置关于node-exporter节点的target,即可抓取相关节点指标数据。
- job_name: \'node-exporter\'
static_configs:
- targets:
-\'locahost:9100\'
实例抓取正常
文章图片
在表达式浏览器中搜索 {job="node-exporter",instance="localhost:9100"},可看到相关指标已被收集到Prometheus。
文章图片
推荐阅读
- HarmonyOS轻设备图形框架概述
- 解读,数据分析的发展和演变都经过哪几个阶段()
- 这11个网络工程师必备实用软件,别说老杨藏私不告诉你
- WindowsServer2019AD域,禁止域用户使用本地账户登录
- Python零基础入门爬虫原理与数据抓取--HTTP的请求与响应
- 开源分布式文件系统大检阅
- 完完整整地看完这个故事,你敢说还不懂Docker()
- 接入华为应用内支付,验证购买Token接口,返回“rights invalid”
- 解决 API 开发中遇到的 CORS 问题