使用 Prometheus 数据进行发现

概述

以 Prometheus 行格式提供的数据可用于低级别发现。

有关 Zabbix 中如何实现 Prometheus 数据查询的详细信息,请参见 Prometheus checks

配置

利用低级别自动发现规则创建一个 依赖型监控项 ,附属于采集Prometheus数据的HTTP主监控项。

Prometheus 转 JSON

在发现规则中,转到“预处理”选项卡,然后选择 Prometheus 转 JSON 预处理选项。发现需要 JSON 格式的数据,而 Prometheus 转 JSON 预处理选项将准确返回此类数据,其中包含以下属性:

  • 指标名称
  • 指标值
  • 帮助信息(如果存在)
  • 类型(如果存在)
  • 标签(如果存在)
  • 原始行

例如,查询 wmi_logical_disk_free_bytes

来自以下 Prometheus 行:

# HELP wmi_logical_disk_free_bytes Free space in bytes (LogicalDisk.PercentFreeSpace)
# TYPE wmi_logical_disk_free_bytes gauge
wmi_logical_disk_free_bytes{volume="C:"} 3.5180249088e+11
wmi_logical_disk_free_bytes{volume="D:"} 2.627731456e+09
wmi_logical_disk_free_bytes{volume="HarddiskVolume4"} 4.59276288e+08

将返回:

[
    {
        "name": "wmi_logical_disk_free_bytes",
        "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
        "type": "gauge",
        "labels": {
            "volume": "C:"
         },
        "value": "3.5180249088e+11",
        "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
    },
    {
        "name": "wmi_logical_disk_free_bytes",
        "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
        "type": "gauge",
        "labels": {
            "volume": "D:"
         },
        "value": "2.627731456e+09",
        "line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
    },
    {
        "name": "wmi_logical_disk_free_bytes",
        "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
        "type": "gauge",
        "labels": {
            "volume": "HarddiskVolume4"
         },
        "value": "4.59276288e+08",
        "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
    }
]
映射LLD宏

接下来需要找到LLD宏的选项并做下面的映射:

{#VOLUME}=$.labels['volume']
{#METRIC}=$['name']
{#HELP}=$['help']
监控项原型

您可能希望创建如下所示的监控项原型:

并配置以下预处理选项: