13 Wykrywanie przy użyciu danych Prometheus

Przegląd

Dane dostarczone w formacie linii Prometheus mogą być używane do odkrywania niskiego poziomu.

Szczegółowe informacje o tym, jak zaimplementowano odpytywanie danych Prometheus w Zabbix, można znaleźć w sekcji Prometheus checks.

Konfiguracja

Reguła wykrywania niskiego poziomu powinna zostać utworzona jako pozycja zależna względem nadrzędnej pozycji HTTP, która zbiera dane Prometheus.

Prometheus do JSON

W regule wykrywania przejdź do zakładki Preprocessing i wybierz opcję przetwarzania wstępnego Prometheus do JSON. Dane w formacie JSON są potrzebne do wykrywania, a opcja przetwarzania wstępnego Prometheus do JSON zwróci dokładnie takie dane z następującymi atrybutami:

  • nazwa metryki
  • wartość metryki
  • help (jeśli występuje)
  • type (jeśli występuje)
  • labels (jeśli występują)
  • surowy wiersz

Na przykład zapytanie wmi_logical_disk_free_bytes:

z tych wierszy 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

zwróci:

[
    {
        "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"
    }
]
Mapowanie makr LLD

Następnie należy przejść do zakładki makr LLD i utworzyć następujące mapowania:

{#VOLUME}=$.labels['volume']
{#METRIC}=$['name']
{#HELP}=$['help']
Prototyp pozycji

Możesz chcieć utworzyć prototyp pozycji w taki sposób:

z opcjami przetwarzania wstępnego: