我使用多个 IP 地址填充了 prometheus.yml -> scrape_configs -> static_configs -> target 部分。prometheus 服务器上没有 DNS 功能,也无法填充主机名(而不是 IP)。
- 我想使用基于节点名/主机名值的正则表达式创建内存、CPU 使用率特定的 Grafana 面板。它还应该有主机名
legands
。 - 由于
hostname
默认的 node_exporter 指标中没有信息,我正在探索利用node_uname_info
具有主机名信息的指标的可能性。 - 我尝试使用
relabel_configs
,metric_relabel_configs
但它没有达到目的。
有人能帮忙了解可能的解决方案吗?提前谢谢。
可能使用的指标:
node_uname_info{domainname="(none)",machine="x86_64",nodename="xy1dcxyz111",release="3.10.0-1160.81.1.el7.x86_64",sysname="Linux",version="#1 SMP Thu Nov 24 12:21:22 UTC 2022"} 1
答案1
总结
(avg by(instance) (irate(node_cpu_seconds_total{mode="user"}[1m])) * 100) * on(instance) group_left(hostname) role{role="Apache"}
嗨,我偶然发现了 Brian Brazil 本人的一篇旧文章(链接如下),它帮助我找到了解决方案。此外,我还填充了自定义指标“角色”,并利用该角色进行后续过滤。
https://www.robustperception.io/exposing-the-software-version-to-prometheus/
答案2
如果您提前知道目标的主机名,则可以将它们指定为目标旁边的静态标签:
static_configs:
- targets: ["192.168.0.2:9100"]
labels:
instance_host: xy1dcxyz111
- targets: ["192.168.0.3:9100", "192.168.0.3:8080"]
labels:
instance_host: webserver
这会将提供的标签与相应目标的每个指标相关联。
如果您想查看/使用多个指标的主机名,这可能会有所帮助。