使用Prometheus数据的13发现

概述

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

有关 Zabbix 中 Prometheus 数据查询的实现方式的详细信息,请参阅 Prometheus checks

配置

低级别自动发现规则应创建为指向用于收集 Prometheus 数据的 HTTP 主控 dependent item 的监控项。

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['卷']
       {#METRIC}=$['名称']
       {#HELP}=$['help']
监控项原型

您可能希望像这样创建一个create的监控项原型:

并设置预处理选项: