Low-Level-Erkennung in ZABBIX: LLD-Regeln


http://www.zabbix.com/

ZABBIX bietet die Möglichkeit, benutzerdefinierte Erkennungsregeln auf niedriger Ebene von Grund auf neu zu erstellen. Dies ist eine äußerst nützliche Funktion für diese Administratoren.wer will alle und alles überwachen. Mit dieser Funktion können Sie Sätze beliebiger Daten zurückgeben – sei es eine Liste der Festplatten auf dem Server, eine Liste der Datenbanken oder etwas anderes.

Ich werde den Prozess der Erstellung von Überwachungsvorlagen basierend auf LLD in zwei Artikel aufteilen. Im ersten (dh in diesem) werde ich Ihnen speziell über die Erkennung und im zweiten über alles andere erzählen.


Wenn Sie sich für das Thema ZABBIX interessieren, empfehlen wir Ihnen, den Hauptartikel – ZABBIX-Überwachungssystem – zu lesen. Dort finden Sie zusätzliche Informationen.


Low-Level-Erkennung in ZABBIX: LLD-Regeln

In der offiziellen Dokumentation dieser Thread Im Detail betrachtet, aber meiner Meinung nach sind die Beispiele zu eng (Standarderkennung von Dateisystemen, SNMP-OIDs und Netzwerkschnittstellen) und die Diskussion des Problems beginnt am falschen Ende. In Bezug auf benutzerdefinierte Erkennungsregeln gibt es ganz am Ende nur ein kleines “Postscript” mit einem Beispiel für ein Perl-Skript (!).

Ich möchte das Thema viel umfassender betrachten, aber gleichzeitig anhand konkreter Beispiele. Ich werde über LLD sprechen, basierend auf der Aufgabe, die Leistungsdaten des Festplattensubsystems von Linux-Servern zu analysieren. Ich erhalte Leistungsmetriken mit dem Dienstprogramm iostat (Paket sysstat). Beispiel für die Datenausgabe:

Low-Level-Erkennung von LLD 01-Regeln in ZABBIXSie können die Ausgabe jedes anderen Programms analysieren.

Was ist das?

Für diejenigen, die noch nicht wissen, wovon wir sprechen, eine kleine Erklärung anhand eines einfachen Beispiels:

Wenn Sie einen Server haben, hat der Server eine Festplatte. Sie müssen eine Reihe von Metriken für dieses Laufwerk verfolgen. Sie können ganz einfach eine Vorlage erstellen, sie mit Datenschlüsseln, Triggern und anderen Elementen füllen und für die Überwachung einrichten. Als nächstes müssen Sie den zweiten Server überwachen, der zwei Festplatten hat (natürlich mit unterschiedlichen Namen). Sie stehen vor der Aufgabe, eine neue Vorlage zu schreiben oder die vorhandene Vorlage durch eine andere Festplatte mit genau denselben Metriken zu ergänzen. Was ist, wenn Sie später einen Server mit 10 oder mehr Festplatten haben?

Erkennungsregeln lösen solche Probleme elegant und definieren unabhängig voneinander eine Liste von verfolgten Objekten mit denselben vordefinierten Metriken für jedes Objekt.

Erkennungsregeln

Um eine Erkennungsregel zu erstellen, müssen Sie zur Überwachungsvorlage wechseln (oder eine neue erstellen, falls diese noch nicht vorhanden ist). Erkennungsregeln – Erstellen Sie eine Erkennungsregel::

Low-Level-Erkennung von LLD 02-Regeln in ZABBIXDie überwiegende Mehrheit der Parameter ist willkürlich und Sie können beliebige Werte für sie auswählen, aber ich werde dennoch einige Punkte klarstellen:

  • Name – nach Ihrem Geschmack;
  • Eine Art – nur Zabbix-Agent;
  • Schlüssel – Wählen Sie eine aus, aber dann müssen Sie in der Konfiguration des Zabbix-Agenten denselben Schlüsselnamen verwenden.
  • Updateintervall – Stellen Sie das Intervall nicht zu klein ein, da sich die Serverhardwarekonfiguration normalerweise selten ändert. Zum Debuggen können Sie einen Wert von 60 Sekunden verwenden, um nicht zu lange zu warten.
  • Filter – Der Name des Makros, das zum Extrahieren der Namen von Blockgeräten verwendet wird (relevant für mein Beispiel. Möglicherweise haben Sie etwas anderes, z. B. die Namen von Netzwerkschnittstellen). Das Makro muss in {#} eingeschlossen sein, im Namen sind die Zeichen AZ, 0-9, _ zulässig;

drücken sparen und zu diesem Zeitpunkt sind die Arbeiten auf der Zabbix-Serverseite abgeschlossen. In den nächsten Artikeln werden wir hier wieder zurückkehren.

Datensatz

Der Agent sollte zum Server zurückkehren eine Reihe von verfolgten Elementen im JSON-Format (Liste der Blockgeräte, basierend auf meinem Beispiel). Dies ist die Haupt- und einzige Voraussetzung. Wie Sie das machen, ist nicht mehr so ​​wichtig. Vom Menschen lesbare Daten könnten folgendermaßen aussehen:

Sie können sie mithilfe eines separaten Skripts zurückgeben (ein Beispiel-Bash-Skript, das eine Liste der Festplatten von einem Linux-Server an json zurückgibt, indem Sie die Ausgabe des Dienstprogramms analysieren iostat):

Das Ergebnis ist ungefähr so ​​(ohne Formatierung):

Oder Sie können die Daten mit nur einer Zeile abrufen (z. B. mit awk):

In beiden Fällen ist die Ausgabe gleich.

Agentenkonfiguration

Der nächste Schritt besteht darin, den ZABBIX-Agenten so zu konfigurieren, dass die erforderlichen Daten an den Server zurückgegeben werden. Dies muss über die Agentenkonfigurationsdatei erfolgen (für Debian – /etc/zabbix/zabbix_agentd.conf). Fügen Sie ganz am Ende eine Zeile mit einem benutzerdefinierten Parameter hinzu:

Hinweis: Um die Hauptkonfiguration nicht zu überladen, können Sie einen Konfigurationsparameter mit der Erweiterung .conf zu einer separaten Datei hinzufügen und im zusätzlichen Ordner ablegen. configs (standardmäßig für Debian /etc/zabbix/zabbix_agentd.conf.d/, aber nur für den Fall, sehen Sie sich den Wert des Include = -Parameters in der Hauptkonfiguration an).

Dies ist der Fall, wenn Sie ein Skript zum Abrufen von Daten verwenden. Wenn Sie eine Codezeile ausführen müssen, kann dies sofort innerhalb des Parameters erfolgen:

Wir speichern die Änderungen, beenden sie und starten den Agenten mit dem folgenden Befehl neu:

Die Arbeiten auf der Seite des Agenten wurden bisher abgeschlossen.

Prüfen

Es ist Zeit, alles zu überprüfen und es am besten vom Zabbix-Server aus mit dem folgenden Befehl zu tun:

Dabei ist 192.168.0.4 die Adresse des Servers mit dem Zabbix-Agenten, dessen Status überwacht werden sollte. Der Befehl sollte eine Liste der Festplatten im JSON-Format wie im Beispiel im vorherigen Kapitel zurückgeben. Wenn dies geschah, lief alles gut. Wenn nicht, dann finde heraus, was du wo falsch gemacht hast.

Kommentare bereitgestellt von HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *