12 Remote-Überwachung von Zabbix-Statistiken

Überblick

Es ist möglich, einige interne Metriken des Zabbix Server und Proxy für eine andere Zabbix-Instanz oder ein Drittanbieter-Tool per Fernzugriff verfügbar zu machen. Dies kann nützlich sein, damit Supporter/Dienstleister die Zabbix Server/Proxys ihrer Kunden per Fernzugriff überwachen können oder damit in Organisationen, in denen Zabbix nicht das Haupt-Monitoring-Tool ist, interne Zabbix-Metriken von einem Drittanbieter-System in einer übergreifenden Monitoring-Umgebung überwacht werden können.

Interne Zabbix-Statistiken werden für einen konfigurierbaren Satz von Adressen bereitgestellt, die im neuen Parameter 'StatsAllowedIP' des server/proxy aufgelistet 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