为非 Omnibus 节点部署 Prometheus node_exporter 监控
后知后觉 暂无评论

使用 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


附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。