我想使用 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?