Detaillierte Beispiele für die Ausführung von Zabbix-Remotebefehlen

Detaillierte Beispiele für die Ausführung von Zabbix-Remotebefehlen

Wenn ein Zabbix-Trigger einen Schwellenwert erreicht, wird eine Aktion ausgeführt: das Senden einer Warnmeldung oder das Ausführen eines Remote-Befehls.

Dieser Artikel konfiguriert und überprüft hauptsächlich, ob Zabbix Remote-Befehle ausführt.

eins. Umfeld

Server: Basierend auf CentOS-7-x86_64-1511;

Zabbix: zabbix-3.0.1server/agent.

zwei. Vorsichtsmaßnahmen

Einige wichtige Dinge, die zu beachten sind: 1. Die Remote-Befehlsausführung erfolgt vom Server zum Agenten und unterstützt nicht den aktiven Agentenmodus. 2. Der Proxy-Modus wird nicht unterstützt. 3. Der Zabbix-Benutzer muss über Ausführungsberechtigungen für den Befehl verfügen und kann sudo verwenden, um Root-Berechtigungen zu erteilen (sudo ohne Kennwort konfigurieren).

4. Der Remote-Befehl wird nur ausgeführt, und der Erfolg oder Misserfolg der Ausführung wird nicht erkannt und bestätigt. Sie können die Ausführung der Aktion unter „Überwachung -> Ereignisse“ überprüfen oder unter „Berichte -> Aktionsprotokoll“ prüfen, ob der Remote-Befehl erfolgreich ausgeführt wurde (erfolgreiche Ausführung wird als „Ausgeführt“ angezeigt).

drei. Beispiel

Überprüfen Sie es anhand eines einfachen Beispiels:

Die Anzahl der Echtzeit-Onlinebenutzer auf dem Überwachungsserver überschreitet 2 nicht. Wenn der Schwellenwert überschritten wird, wird ein Alarm ausgelöst und ein Befehl ausgeführt, um den dritten angemeldeten Benutzer zum Abmelden zu zwingen, damit das Überwachungselement unter dem Schwellenwert liegt.

1. Den Auslöser einstellen

Konfiguration-->Vorlagen-->Vorlage „Vorlage OS Linux“ auswählen „Trigger“-->Trigger erstellen

#Trigger-Namensanpassung, Sie können Makros verwenden

Name: Benutzeranmeldenummer gt 2 auf {HOST.NAME}

Ausdruck: {Template OS Linux:system.users.num.last()}>2

#Sie können nach dem Element „Ausdruck“ auf „Hinzufügen“ klicken und das von Zabbix bereitgestellte Element + Funktion verwenden, um den Schwellenwertausdruck wie folgt festzulegen:

#Benutzerdefiniertes Level

Schweregrad: Warnung

Die restlichen Einstellungen sind akzeptabel. Klicken Sie nach Abschluss der Einstellungen auf "Hinzufügen".

2. Fernsteuerschalter

#Agent unterstützt standardmäßig nicht die Ausführung von Remote-Befehlen. Sie müssen diesen Parameter in der Agent-Konfigurationsdatei aktivieren.
#Der Dateipfad agent.conf sollte entsprechend der tatsächlichen Situation geändert werden. Hier ist der angepasste Pfad nach der Kompilierung und Installation. Siehe http://www.cnblogs.com/netonline/p/7406598.html
#Nachdem die Datei agent.conf geändert wurde, muss der Prozess neu gestartet werden.
[root@localhost ~]# sed -i 's|# EnableRemoteCommands=0|EnableRemoteCommands=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@localhost ~]# service zabbix_agentd neu starten

3. Aktion festlegen

Konfiguration-->Aktionen-->Aktion erstellen

Aktion

Definieren Sie in der Option Aktion den Namen: Begrenzen Sie die Anzahl der Online-Benutzer auf maximal 2

#Sie können den Aktionsnamen anpassen und für die restlichen Aktionsoptionen können die Standardwerte wie folgt verwendet werden:

Bedingungen

Fügen Sie in der Option „Bedingungen“ neue bedingte Urteile hinzu, um das Urteil gezielter zu gestalten, beispielsweise:

Neue Bedingung: Schweregrad des Auslösers = Warnung

Neue Bedingung: Triggername wie Benutzeranmeldenummer gt 2

#trigger name entspricht dem in Schritt 1 definierten Triggernamen wie folgt:

Operationen

Fügen Sie in der Option „Operationen“ eine neue „Aktionsoperation“ hinzu und klicken Sie auf „Neu“.

Operationstyp: Wählen Sie „Remote-Befehl“

Zielliste: Ziel als „Aktueller Host“ #Agent auf diesem Rechner hinzufügen

Typ: Wählen Sie „Benutzerdefiniertes Skript“

Ausführen auf: Wählen Sie „Zabbix-Agent“ und der Befehl lautet „ sudo /root/test.sh

#Das Konto, das den Befehl ausführt, ist das Zabbix-Konto, nicht das Root-Konto. Wenn Sie den Befehl sudo nicht verwenden, ist der Befehl nach der Ausführung wirkungslos.

#Außerdem habe ich versucht, bestimmte Befehle anstelle von Skripten zu verwenden. Das Ergebnis ist, dass der Befehl zwar ausgeführt wird, aber nicht wirksam ist. Da kein spezifisches Fehlerprotokoll vorhanden ist, kann der Grund nicht analysiert werden.

#Verwenden Sie für den restlichen Inhalt die Standardwerte und klicken Sie auf „Hinzufügen“, wie unten gezeigt:

4. Remote-Befehlsskript

#Bearbeiten Sie das Befehlsskript entsprechend dem Pfad des in Schritt 3 definierten Befehlsskripts; [root@localhost ~]# vim test.sh

#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH

#Hier nehmen wir einfach an, dass das dritte Login-TTY pts/2 ist pkill -kill -t pts/2

[root@localhost ~]# chmod 764 test.sh

5. Konfigurieren Sie sudo

#Erteilen Sie dem Zabbix-Konto die Sudo-Berechtigung, Befehle ohne Kennwort auszuführen. Aus Sicherheitsgründen kann das letzte „ALL“ als bestimmter Befehl definiert werden. #Oder ändern Sie in Schritt 4 den Skriptbesitzer in Zabbix und erteilen Sie ihm die Ausführungsberechtigung. Beachten Sie jedoch, dass das Verzeichnis, in dem das Skript abgelegt ist, über ausführbare und sogar beschreibbare Berechtigungen für das Zabbix-Konto verfügt, sodass das Skript in Schritt 3 kein Sudo benötigt, um Berechtigungen zu erteilen [root@localhost ~]# visudo

zabbix ALLE = NOPASSWD: ALLE

6. Überprüfung

Melden Sie sich remote beim dritten TTY des Hosts an, führen Sie keine anderen Vorgänge in der CLI aus, lösen Sie den Auslöseschwellenwert aus und lösen Sie die Befehlsaktion aus, um den dritten angemeldeten Benutzer zu zwingen, offline zu gehen.

Wie aus dem Screenshot ersichtlich ist, befindet sich der Trigger, wenn die Anzahl der Online-Benutzer den Schwellenwert überschreitet, nur etwa 1 Minute lang im Zustand „PROBLEM“ und kehrt dann in den Zustand „OK“ zurück, was darauf hinweist, dass der Skriptbefehl, der den dritten Benutzer zum Offline-Schalten zwingt, ausgeführt und erfolgreich ausgeführt wurde.

Aus den historischen Daten des Elements „Anzahl angemeldeter Benutzer“ können wir außerdem erkennen, dass beim Auslösen des Triggers der dritte angemeldete Benutzer offline ist.

Unter dem dritten TTY ist zu erkennen, dass die Verbindung vom Host selbst getrennt wird (angegeben wird die lokale Zeit, welche in der obigen Abbildung von der Hostzeit abweicht).

Zusammenfassen

Dies ist das Ende dieses Artikels über Zabbix-Fernausführungsbefehle. Weitere verwandte Zabbix-Fernausführungsbefehle finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Installations- und Konfigurationsmethode von Zabbix Agent auf der Linux-Plattform
  • Zabbix überwacht den Prozess der Linux-Systemdienste
  • Verwendung der Zabbix-API in einer Linux-Shell-Umgebung
  • So installieren Sie die Zabbix-Überwachung unter Linux
  • So richten Sie Zabbix zur Überwachung von Linux-Hosts ein
  • Zabbix-Konfiguration DingTalk-Alarmfunktions-Implementierungscode
  • Detaillierte Erklärung zur Ausführung von Skripten oder Anweisungen durch Zabbix auf Remote-Hosts
  • Detaillierte Erläuterung der Installations- und Bereitstellungspraktiken von Zabbix
  • Zabbix überwacht Linux-Hosts basierend auf SNMP

<<:  Beispiele für die Verwendung von pessimistischem und optimistischem Sperren in MySQL

>>:  Vue+Swiper realisiert Timeline-Effekt

Artikel empfehlen

Der Aufruf der Suchmaschine auf der Seite erfolgt am Beispiel von Baidu

Heute ist mir plötzlich eingefallen, dass es cool ...

Backup zwischen MySQL-Datenbank und Oracle-Datenbank importieren

Importieren Sie die aus der Oracle-Datenbank expo...

Erweiterte Verwendungsbeispiele für den Befehl mv in Linux

Vorwort Der Befehl mv ist die Abkürzung für move ...

Tutorial zum Migrieren von Projekten von MYSQL zu MARIADB

Bereiten Sie die Datenbank (MySQL) vor. Wenn Sie ...

So erstellen Sie einen vollständigen Samba-Server unter Linux (CentOS-Version)

Vorwort smb ist der Name eines Protokolls, das fü...

Tiefes Verständnis der JavaScript-Syntax und Codestruktur

Inhaltsverzeichnis Überblick Funktionalität und L...

Vue2.x - Beispiel für die Verwendung von Anti-Shake und Throttling

Inhaltsverzeichnis Dienstprogramme: Verwendung in...

JavaScript zur Implementierung der Login-Schiebereglerüberprüfung

In diesem Artikelbeispiel wird der spezifische Ja...