12 Remote-Überwachung von Zabbix-Statistiken

Übersicht

Es ist möglich, einige interne Metriken des Zabbix-Servers und des Proxy für eine andere Zabbix-Instanz oder ein Drittanbieter-Tool aus der Ferne zugänglich zu machen. Dies kann nützlich sein, damit Supporter/Dienstleister die Zabbix-Server/Proxys ihrer Kunden aus der Ferne überwachen können oder damit in Organisationen, in denen Zabbix nicht das primäre Überwachungstool ist, die internen Zabbix-Metriken von einem Drittanbietersystem in einem übergeordneten Monitoring-Setup überwacht werden können.

Die internen Zabbix-Statistiken werden für einen konfigurierbaren Satz von Adressen bereitgestellt, die im neuen Parameter 'StatsAllowedIP' server/proxy aufgeführt sind. Anfragen werden nur von diesen Adressen akzeptiert.

Datenpunkte

Um die Abfrage interner Statistiken auf einer anderen Zabbix-Instanz zu konfigurieren, können Sie zwei Datenpunkte verwenden:

  • interner Datenpunkt zabbix[stats,<ip>,<port>] - für direkte Remote-Abfragen von Zabbix Server/Proxy. <ip> und <port> werden verwendet, um die Zielinstanz zu identifizieren.
  • Agent-Datenpunkt zabbix.stats[<ip>,<port>] - für Agent-basierte Remote-Abfragen von Zabbix Server/Proxy. <ip> und <port> werden verwendet, um die Zielinstanz zu identifizieren.

Siehe auch: Interne Datenpunkte, Zabbix-Agent-Datenpunkte

Das folgende Diagramm veranschaulicht die Verwendung des jeweiligen Datenpunkts je nach Kontext.

  • - Server → externe Zabbix-Instanz (zabbix[stats,<ip>,<port>])
  • - Server → Proxy → externe Zabbix-Instanz (zabbix[stats,<ip>,<port>])
  • - Server → Agent → externe Zabbix-Instanz (zabbix.stats[<ip>,<port>])
  • - Server → Proxy → Agent → externe Zabbix-Instanz (zabbix.stats[<ip>,<port>])

Um sicherzustellen, dass die Zielinstanz Abfragen durch die externe Instanz zulässt, tragen Sie die Adresse der externen Instanz im Parameter 'StatsAllowedIP' auf der Zielinstanz ein.

Verfügbare Metriken

Die Statistik-Datenpunkte erfassen die Statistiken gesammelt und geben ein JSON zurück, das die Grundlage für abhängige Datenpunkte bildet, aus dem diese ihre Daten beziehen. Die folgenden internen Metriken werden von einem der beiden Datenpunkte zurückgegeben:

  • zabbix[boottime]
  • zabbix[hosts]
  • zabbix[items]
  • zabbix[items_unsupported]
  • zabbix[preprocessing] (nur Server)
  • zabbix[preprocessing_queue] (nur Server)
  • zabbix[process,<type>,<mode>,<state>] (nur prozesstypbasierte Statistiken)
  • zabbix[rcache,<cache>,<mode>]
  • zabbix[requiredperformance]
  • zabbix[triggers] (nur Server)
  • zabbix[uptime]
  • zabbix[vcache,buffer,<mode>] (nur Server)
  • zabbix[vcache,cache,<parameter>]
  • zabbix[version]
  • zabbix[vmware,buffer,<mode>]
  • zabbix[wcache,<cache>,<mode>] (Cache-Typ „trends“ nur Server)

Vorlagen

Vorlagen sind für die entfernte Überwachung interner Metriken von Zabbix Server oder Proxy aus einer externen Instanz verfügbar:

  • Zustand des entfernten Zabbix Server
  • Zustand des entfernten Zabbix Proxy

Beachten Sie, dass zur Verwendung einer Vorlage für die entfernte Überwachung mehrerer externer Instanzen für jede Überwachung einer externen Instanz ein separater Host erforderlich ist.

Trapper-Prozess

Der Empfang interner Metrikanfragen von einer externen Zabbix-Instanz wird vom Trapper-Prozess verarbeitet, der die Anfrage validiert, die Metriken sammelt, den JSON-Datenpuffer erstellt und das vorbereitete JSON zurücksendet, zum Beispiel vom Server:

{
  "response": "success",
  "data": {
    "boottime": N,
    "uptime": N,
    "hosts": N,
    "items": N,
    "items_unsupported": N,
    "preprocessing": {
        "queued": {
          "count": N,
          "size": N
        },
        "direct": {
          "count": N,
          "size": N
        },
        "queue": N
    },
    "preprocessing_queue": N,
    "process": {
      "alert manager": {
        "busy": {
          "avg": N,
          "max": N,
          "min": N
        },
        "idle": {
          "avg": N,
          "max": N,
          "min": N
        },
        "count": N
      },
...
    },
    "queue": N,
    "rcache": {
      "total": N,
      "free": N,
      "pfree": N,
      "used": N,
      "pused": N
    },
    "requiredperformance": N,
    "triggers": N,
    "uptime": N,
    "vcache": {
      "buffer": {
        "total": N,
        "free": N,
        "pfree": N,
        "used": N,
        "pused": N
      },
      "cache": {
        "requests": N,
        "hits": N,
        "misses": N,
        "mode": N
      }
    },
    "vmware": {
      "total": N,
      "free": N,
      "pfree": N,
      "used": N,
      "pused": N
    },
    "version": "N",
    "wcache": {
      "values": {
        "all": N,
        "float": N,
        "uint": N,
        "str": N,
        "log": N,
        "text": N,
        "not supported": N
      },
      "history": {
        "pfree": N,
        "free": N,
        "total": N,
        "used": N,
        "pused": N
      },
      "index": {
        "pfree": N,
        "free": N,
        "total": N,
        "used": N,
        "pused": N
      },
      "trend": {
        "pfree": N,
        "free": N,
        "total": N,
        "used": N,
        "pused": N
      }
    }
  }
}

Interne Warteschlangen-Datenpunkte

Es gibt außerdem zwei weitere Datenpunkte, die speziell dafür vorgesehen sind, interne Warteschlangenstatistiken einer anderen Zabbix-Instanz per Fernabfrage abzurufen:

  • zabbix[stats,<ip>,<port>,queue,<from>,<to>] interner Datenpunkt – für direkte interne Warteschlangenabfragen an einen entfernten Zabbix-Server/Proxy
  • zabbix.stats[<ip>,<port>,queue,<from>,<to>] Agent-Datenpunkt – für Agent-basierte interne Warteschlangenabfragen an einen entfernten Zabbix-Server/Proxy

Siehe auch: Interne Datenpunkte, Zabbix-Agent-Datenpunkte