You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Prometheus node_exporter获取CentOS精确版本号?

获取CentOS精确OS版本号(带小数点)的解决方法

针对node_exporter默认指标仅返回主版本号的问题,有两种可行的解决思路:

方法一:自定义textfile指标(推荐)

通过node_exporter的textfile collector功能,自定义脚本提取精确版本号并生成指标文件:

  1. 编写获取版本的shell脚本(比如/usr/local/bin/get_centos_exact_version.sh):
#!/bin/bash
# 从/etc/redhat-release提取带小数点的版本号
CENTOS_VERSION=$(grep -oP '(?<=release )\d+\.\d+' /etc/redhat-release)
# 生成符合Prometheus格式的指标文件
echo "node_centos_exact_version{version=\"${CENTOS_VERSION}\"} 1" > /var/lib/node_exporter/centos_version.prom
  1. 给脚本添加执行权限:
chmod +x /usr/local/bin/get_centos_exact_version.sh
  1. 设置定时任务定期更新指标,避免版本更新后指标失效:
crontab -e
# 添加一行:每小时执行一次
0 * * * * /usr/local/bin/get_centos_exact_version.sh
  1. 修改node_exporter启动参数,指定textfile目录:
# 假设node_exporter的启动脚本在/etc/systemd/system/node_exporter.service
# 在ExecStart行末尾添加 --collector.textfile.directory=/var/lib/node_exporter
# 示例:ExecStart=/usr/local/bin/node_exporter --collector.textfile.directory=/var/lib/node_exporter
  1. 重启node_exporter服务:
systemctl daemon-reload
systemctl restart node_exporter

完成后,就能通过node_centos_exact_version指标直接获取带小数点的版本号,Grafana中可直接调用该指标。

方法二:用PromQL直接提取现有指标

利用node_exporter的node_file_contents指标读取/etc/redhat-release文件内容,再通过正则提取版本号,无需额外配置:

regex_replace(node_file_contents{path="/etc/redhat-release"}, "^.*release ([0-9]+\\.[0-9]+).*$", "$1")

此方法适合临时查询或快速验证,但PromQL相对复杂,若系统版本文件格式变更可能失效。

内容的提问来源于stack exchange,提问作者bobs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:45:39