Prometheus/grafana:从“node_uname_info”指标中提取主机名并创建 CPU、内存使用情况 grafana 面板

Prometheus/grafana:从“node_uname_info”指标中提取主机名并创建 CPU、内存使用情况 grafana 面板

我使用多个 IP 地址填充了 prometheus.yml -> scrape_configs -> static_configs -> target 部分。prometheus 服务器上没有 DNS 功能,也无法填充主机名(而不是 IP)。

  1. 我想使用基于节点名/主机名值的正则表达式创建内存、CPU 使用率特定的 Grafana 面板。它还应该有主机名legands
  2. 由于hostname默认的 node_exporter 指标中没有信息,我正在探索利用node_uname_info具有主机名信息的指标的可能性。
  3. 我尝试使用relabel_configsmetric_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

这会将提供的标签与相应目标的每个指标相关联。

如果您想查看/使用多个指标的主机名,这可能会有所帮助。

相关内容