13 Scoperta utilizzando i dati di Prometheus

Panoramica

I dati forniti nel formato di riga Prometheus possono essere utilizzati per il rilevamento di basso livello.

Per i dettagli su come l'interrogazione dei dati Prometheus è implementata in Zabbix, vedere Prometheus checks.

Configurazione

La regola di low-level discovery deve essere creata come item dipendente dell'item master HTTP che raccoglie i dati di Prometheus.

Da Prometheus a JSON

Nella regola di discovery, vai alla scheda Preprocessing e seleziona l'opzione di preprocessing Prometheus to JSON. I dati in formato JSON sono necessari per la discovery e l'opzione di preprocessing Prometheus to JSON restituirà esattamente questo, con i seguenti attributi:

  • nome della metrica
  • valore della metrica
  • help (se presente)
  • tipo (se presente)
  • etichette (se presenti)
  • riga grezza

Ad esempio, interrogando wmi_logical_disk_free_bytes:

da queste righe 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

restituirà:

[
    {
        "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"
    }
]
Mappatura delle macro LLD

Successivamente è necessario andare alla scheda delle macro LLD ed effettuare le seguenti mappature:

{#VOLUME}=$.labels['volume']
{#METRIC}=$['name']
{#HELP}=$['help']
Prototipo di item

Potresti voler creare un prototipo di item come questo:

con opzioni di preprocessing: