使用 GPT 工具部署的 GitLab HA 集群会有些组件不安装 Omnibus 版本安装包,因此系统内无 Prometheus node_exporter 组件,无法正确获取节点监控数据。
手动部署
为了补全系统监控,手动部署 Node Exporter,为了最大化集群监控的兼容性,强烈建议组件版本和集群其他节点的 Node Exporter 版本保持一致,访问任意角色节点,检查其内置 Node Exporter 版本。
## 内置组件位于下述路径
/opt/gitlab/embedded/bin/node_exporter --version
## 如果无法定位,可以使用命令查找
sudo ps -ef | grep 'prometheus' | grep -Ev 'grep|svlogd' | grep '/prometheus'然后到官网或者官方仓库下载同版本的安装包,以 v1.8.1 为例:
## 仓库下载
## https://github.com/prometheus/node_exporter/releases/tag/v1.8.1
wget --content-disposition https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz部署到系统目录:
tar xf node_exporter-1.8.1.linux-amd64.tar.gz
cd node_exporter-1.8.1.linux-amd64/
sudo install -m 755 -o root -g root node_exporter /usr/local/sbin/守护进程配置可参考其官方模板配置。
创建 /etc/systemd/system/node_exporter.service 服务单元:
[Unit]
Description=Node Exporter
Documentation=https://github.com/prometheus/node_exporter
Requires=node_exporter.socket
After=network.target
[Service]
DynamicUser=yes
StateDirectory=node_exporter
ProtectSystem=strict
ProtectHome=yes
NoNewPrivileges=yes
PrivateTmp=yes
ReadOnlyPaths=/ /proc /sys
ReadWritePaths=/var/lib/node_exporter/textfile_collector
# Fallback when environment file does not exist
Environment=OPTIONS=
EnvironmentFile=-/etc/sysconfig/node_exporter
ExecStart=/usr/local/sbin/node_exporter --web.systemd-socket $OPTIONS
[Install]
WantedBy=multi-user.target创建 /etc/systemd/system/node_exporter.socket 套接字:
[Unit]
Description=Node Exporter
[Socket]
ListenStream=9100
[Install]
WantedBy=sockets.target创建 /etc/sysconfig/node_exporter 配置文件(启用、禁用的收集器按需配置):
OPTIONS="
--collector.filesystem.ignored-mount-points='^/(sys|proc|dev|host|etc)($|/)'
--collector.interrupts
--collector.processes
--collector.tcpstat
--collector.systemd
--no-collector.bonding
--no-collector.fibrechannel
--no-collector.infiniband
--no-collector.mdadm
--no-collector.nfs
--no-collector.nfsd
--no-collector.nvme
--no-collector.tapestats
--no-collector.watchdog
--no-collector.zfs
"重载并启动服务:
sudo systemctl daemon-reload
sudo systemctl restart node_exporter.service
sudo systemctl status node_exporter.service
sudo ps -ef | grep 'node_exporter'然后到 Prometheus 节点查看监控组信息是否正确,关键字 non_omnibus_node。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2026-03-26 01:57 AM