12 Descoberta usando dados do Prometheus

Visão geral

Os dados fornecidos no formato de linha do Prometheus podem ser usados para descoberta.

Consulte verificações do Prometheus para detalha como a consulta de dados do Prometheus é implementada no Zabbix.

Configuração

A regra de descoberta de baixo nível deve ser criada como um dependente item para o mestre HTTP item que coleta dados do Prometheus.

Prometheus para JSON

Na regra de descoberta, vá para a guia Pré-processamento e selecione o Opção de pré-processamento Prometheus to JSON. Os dados no formato JSON são necessário para descoberta e a opção de pré-processamento Prometheus to JSON retornará exatamente isso, com os seguintes atributos:

  • nome da métrica
  • valor métrico
  • ajuda (se presente)
  • tipo (se houver)
  • etiquetas (se houver)
  • linha crua

Por exemplo, consultando wmi_logical_disk_free_bytes:

dessas linhas do Prometheus:

# HELP wmi_logical_disk_free_bytes Espaço livre em bytes (LogicalDisk.PercentFreeSpace)
       # TYPE medidor wmi_logical_disk_free_bytes
       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

retornará:

[
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Espaço livre em bytes (LogicalDisk.PercentFreeSpace)",
               "tipo": "medidor",
               "etiquetas": {
                   "volume": "C:"
                },
               "valor": "3.5180249088e+11",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Espaço livre em bytes (LogicalDisk.PercentFreeSpace)",
               "tipo": "medidor",
               "etiquetas": {
                   "volume": "D:"
                },
               "valor": "2.627731456e+09",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Espaço livre em bytes (LogicalDisk.PercentFreeSpace)",
               "tipo": "medidor",
               "etiquetas": {
                   "volume": "HarddiskVolume4"
                },
               "valor": "4.59276288e+08",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
           }
       ]
Mapeamento de macros LLD

Em seguida, você deve ir para a guia de macros LLD e fazer o seguinte mapeamentos:

{#VOLUME}=$.labels['volume']
       {#METRIC}=$['name']
       {#HELP}=$['help']
Protótipo de item

Você pode querer criar um protótipo de item como este:

com opções de pré-processamento: