Node Exporter
Node Exporter 是一个监控硬件和操作系统的组件,使用 Golang 进行编写,支持 *NIX 内核的操作系统。不支持 Windows 操作系统。最早的时候关于操作系统只有这个,后来官方的社区维护了一个 Windows 的 Exporter ,再后来这个社区的 Exporter 也划归到官方来维护了。
Node Exporter 的官方地址是 https://github.com/prometheus/node_exporter 。当前最新版本是 v1.2.2 (2021.08.06 发布),建议大家在使用时选用最新版本,并且做好版本升级的准备。
Node Exporter 启动会通过 9100 端口来进行监控数据的暴露,这个端口也可以在启动的时候通过参数指定来修改。
安装
Node Exporter 支持多种安装运行方式,比如二进制运行、裸Docker运行 、 放在 Kubernetes 中运行。
这里我提供一下 二进制运行和 裸 Docker 运行的脚本
使用这个脚本可以以二进制的方式运行 Node Exporter ,并且提供日志和 pid 文件。
#!/bin/bash
# version 1.0
BASEPATH=/usr/local/prometheus/node_exporter
LOG=$BASEPATH/logs
nohup $BASEPATH/current/node_exporter --collector.textfile.directory=/tmp/metrics --web.listen-address=:9100 >> $LOG/node_exporter.log 2>&1 & echo $! > $BASEPATH/run/node_exporter.pid
另外也可以写成 SystemD 的守护进程。/usr/lib/systemd/system/node_exporter.service
文件内容如下:
Description=Node Exporter
After=network.target
[Service]
ExecStart=/usr/local/bin/node_exporter --collector.textfile.directory=/tmp/metrics --web.listen-address=:9100
User=root
[Install]
WantedBy=multi-user.target
编写好这个文件以后,就可以使用 systemctl start node_exporter
来启动服务,并且使用 systemctl enable node_exporter
来设置开机自起。
使用裸 Docker 启动 Node Exporter 可以使用如下脚本
#!/bin/bash
docker run -d --name Node-Exporter -m 1g -u root \
--pid="host" \
--network host quay.io/prometheus/node-exporter:latest \
--web.listen-address=:9100 \
--collector.textfile.directory=/tmp \
--path.rootfs=/host \
收集指标
Node Exporter 提供了一个 --collector.<name>
的启动参数来打开一些指标的收集,也可以通过 --no-collector.<name>
的启动参数来关闭一些指标的收集。由于有一些指标是默认开启的(当前大约 类),所以可以使用 --collector.disable-defaults
参数先关闭所有的 默认采集指标,然后再使用 --collector.<name>
参数来逐个打开要采集的指标。
Node Exporter 在每个操作系统发行版上对指标的收集类型的支持也不同。
这个列表是 Node Exporter 启动的时候缺省打开的选项 https://github.com/prometheus/node_exporter#enabled-by-default
这个列表是 Node Exporter 启动的时候缺省关闭的选项 https://github.com/prometheus/node_exporter#disabled-by-default
这两个合起来是 Node Exporter 可以采集的所有指标。经过这几年的发展, Node Exporter 在类 Unix 内核的操作系统上已经采集了很丰富的指标。
Node Exporter 添加认证 https://blog.csdn.net/qq_31977125/article/details/108528488