使用 Prometheus 指标在 Grafana 中使用主机名代替 IP 来显示面板图例

使用 Prometheus 指标在 Grafana 中使用主机名代替 IP 来显示面板图例

我想使用 Prometheus 监控由 node-exporter 或 postgres-exporter 等导出器提供的不同服务器。指标应在 Grafana 中显示为仪表板和警报。

出口商将通过 prometheus.yml 中的以下目标导入:

global:
  scrape_interval:     15s

  external_labels:
    monitor: 'codelab-monitor'

scrape_configs:
  - job_name: 'node-exporter'

    scrape_interval: 5s

    static_configs:
      - targets: ['123.123.123.1:9100', '123.123.123.2:9100', '123.123.123.3:9100']

  - job_name: 'postgres-exporter'
    static_configs:
      - targets : ['123.123.123.3:9187']

无法通过用户友好的 URL/主机名绑定服务器。

我想在 Grafana 中为这些目标建立仪表板和警报,但目标是仪表板和警报中不显示主机的 IP 而是显示其主机名。

仪表板有两个不同的部分:

1. 通过变量过滤器选择的特定服务器指标图表例如

在此处输入图片描述

在此处输入图片描述

2. 所有服务器指标图表,带实例标签例如

在此处输入图片描述

为了情况1我找到了一种解决方案,可以在下拉过滤器中显示主机名而不是 IP。为此,我创建了两个变量:

姓名 询问 标签 隐藏
主机名 标签值(节点名称) 主持人:
实例 标签值(node_uname_info{nodename="$hostname"},实例) 多变的

面板的指标通过变量进行过滤$instance

100 - rate(node_cpu_seconds_total{mode="idle", instance="$instance"}[1m]) * 100

在里面案例 2,我没有成功。我想在面板图表下方设置主机名。但在 -field 中,Legend我只能访问指标的实例(IP/端口组合),而不能访问主机名:

在此处输入图片描述

我无法访问字段$hostname中的变量Legend

那么,我该如何将主机名放在面板图下方?是否有 Grafana 内部方法,还是我必须操作 prometheus.yml?

相关内容