Skripte in Zabbix können verwendet werden, um benutzerdefinierte Überwachungsprüfungen durchzuführen, Daten aus externen Quellen zu sammeln und zu verarbeiten und Aufgaben basierend auf Überwachungsereignissen zu automatisieren. Zabbix unterstützt eine Vielzahl von Skriptsprachen, darunter Bash, Python, Perl und Ruby.
In diesem Artikel untersuchen wir Zabbix-Warnungsskripte, wie man sie erstellt und wie man den Zabbix-Agenten für die Zusammenarbeit mit ihnen konfiguriert.
Konfigurieren des Zabbix-Agenten für die Arbeit mit Remote-Befehlen.
Zuerst müssen wir Konfigurieren Sie den Zabbix-Agenten So arbeiten Sie mit Skripten:
- Melden Sie sich beim Host an, auf dem der Agent ausgeführt wird.
- Bearbeiten Sie die zabbix_agentd.conf:
- Legen Sie den Parameter „EnableRemoteCommands“ festrameter auf 1, damit der Agent Remote-Befehle ausführen kann.
- Und stellen Sie „UnsafeUserParameter" parameter auf 1, damit der Zabbix-Agent Benutzerskripte ausführen kann.
- Optional können Sie „LogRemoteCommands“ einschalten, wenn Sie die Protokolle behalten möchten.
Starten Sie den Zabbix-Agentendienst neu, um die Änderungen zu übernehmen.
Erstellen von Zabbix-Warnungsskripten
Um ein Warnskript in Zabbix zu erstellen, gehen Sie folgendermaßen vor:
Gehen Sie im Menü auf der linken Seite auf „Administration“ → „Skripte“. CliKlicken Sie oben rechts auf dem Bildschirm auf „Skript erstellen“. Geben Sie Ihrem Skript einen Namen, wählen Sie die Bereichsoption aus, die Sie verwenden möchten, und geben Sie die erforderlichen Informationen ein, zu denen auch Dinge wie Skriptpa gehören könnenramParameter, Befehlsargumente oder Medientypeinstellungen und cliKlicken Sie auf „Hinzufügen“.
Schauen wir uns nun einige der Optionen genauer an. Sie können den Umfang und den Typ des Skripts auswählen.
Umfang des Skripts
Aktionsoperationsskripte:
Dabei handelt es sich um Skripte, die im Rahmen einer aktiven Operation ausgeführt werden. Aktionsoperationsskripte werden automatisch ausgeführt und können zum Ausführen von Aufgaben wie dem Senden von Benachrichtigungen, dem Ausführen von Skripten auf Remote-Hosts oder dem Aktualisieren von Daten in externen Systemen verwendet werden. Diese Skripte sind mit einer bestimmten Aktion verknüpft und werden immer dann ausgeführt, wenn diese Aktion ausgelöst wird.
Manuelle Host-Aktionsskripte:
Dabei handelt es sich um Skripte, die manuell auf einem bestimmten Host ausgeführt werden können. Sie sind einem bestimmten Host zugeordnet und können zum Ausführen von Aufgaben wie dem Neustart eines Dienstes, dem Ausführen eines Diagnosebefehls oder dem Durchführen einer Sicherung verwendet werden. Manuelle Host-Aktionsskripte werden von einem Benutzer manuell über die Zabbix-Weboberfläche oder ausgeführt APIund können nur auf dem Host ausgeführt werden, dem sie zugeordnet sind.
Manuelle Ereignisaktionsskripte:
Dabei handelt es sich um Skripte, die bei einem bestimmten Ereignis manuell ausgeführt werden können. Sie sind mit einem bestimmten Ereignis verknüpft und können zum Ausführen von Aufgaben wie dem Senden einer benutzerdefinierten Benachrichtigung, dem Aktualisieren eines Ticketsystems oder dem Auslösen eines Workflows verwendet werden. Manuelle Ereignisaktionsskripte werden von einem Benutzer manuell über die Zabbix-Weboberfläche oder ausgeführt APIund können nur bei dem Ereignis ausgeführt werden, mit dem sie verknüpft sind.
Skripttypen
Webhook-Skripte: Ein Webhook ist eine Möglichkeit für eine Anwendung, Daten in Echtzeit an eine andere Anwendung bereitzustellen. Webhook-Skripte in Zabbix können verwendet werden, um Daten an ein externes System zu senden, beispielsweise eine Chat-Anwendung oder eine Incident-Management-Plattform. Um ein Webhook-Skript in Zabbix zu konfigurieren, müssen Sie einen neuen Medientyp mit den entsprechenden Einstellungen erstellen (z. B. die Webhook-URL und alle erforderlichen Header oder Authentifizierung) und diesen Medientyp dann einer Aktion zuordnen.
Skripttyp: Zabbix unterstützt auch benutzerdefinierte Skripte, die in verschiedenen Skriptsprachen (wie Bash, Perl, Python, oder PowerShell) und in unterschiedlichen Bereichen ausgeführt, je nachdem, wo das Skript ausgeführt werden soll. Es gibt drei verschiedene Ausführungsbereiche für benutzerdefinierte Skripte, die definieren, wo sie verwendet werden können:
- Zabbix-Agent
- Zabbix-Server-Proxy
- Zabbix-Server
Um ein benutzerdefiniertes Skript in Zabbix zu konfigurieren, müssen Sie ein neues Skript mit den entsprechenden Code- und Spracheinstellungen erstellen. Anschließend können Sie dieses Skript in verschiedenen Kontexten verwenden, beispielsweise in einer Aktion oder in einem benutzerdefinierten Elementschlüssel.
SSH Skripte: SSH Skripte in Zabbix können verwendet werden, um Befehle oder Skripte auf einem Remote-Host auszuführen SSH. Um eine zu konfigurieren SSH Um ein Skript in Zabbix zu erstellen, müssen Sie ein neues erstellen SSH Schlüsselpaar und fügen Sie den öffentlichen Schlüssel zur Datei „authorized_keys“ des Remote-Hosts hinzu. Anschließend müssen Sie in Zabbix ein neues Skript erstellen, das den auf dem Remote-Host auszuführenden Befehl sowie die erforderlichen Informationen angibt SSH Verbindungsdetails.
Telnet-Skripte: Telnet ist ein Netzwerkprotokoll, das eine virtuelle Terminalverbindung zu einem Remote-Host bereitstellt. Um ein Telnet-Skript in Zabbix zu konfigurieren, müssen Sie ein neues Telnet-Element in der Zabbix-Konfiguration erstellen (auf jedem Host Ihrer Wahl handelt es sich um eine agentenlose Prüfung, die auf jede IP verweisen kann, was für die Überwachung von Hosts nützlich sein kann, die dazu nicht in der Lage sind). Führen Sie den Agenten aus) und geben Sie dabei den Hostnamen oder die IP-Adresse des Remote-Hosts sowie die Portnummer und alle erforderlichen Anmeldeinformationen an. Anschließend müssen Sie in Zabbix ein neues Skript erstellen, das den Befehl angibt, der auf dem Remote-Host ausgeführt werden soll.
IPMI-Skripte: IPMI (IntelIntelligent Platform Management Interface) ist ein Standard für die Remote-Serververwaltung, der es Administratoren ermöglicht, Hardwarekomponenten wie Netzteile, Lüfter und Temperatursensoren zu überwachen und zu verwalten. IPMI-Skripte in Zabbix können verwendet werden, um IPMI-Befehle auf einem Remote-Server auszuführen. Um ein IPMI-Skript in Zabbix zu konfigurieren, müssen Sie IPMI auf dem Remote-Server aktivieren und die erforderlichen Netzwerkeinstellungen konfigurieren. Anschließend müssen Sie in Zabbix ein neues Skript erstellen, das den auszuführenden IPMI-Befehl zusammen mit den erforderlichen Verbindungsdetails angibt.
Beispiele für Zabbix-Warnungsskripte
Nachdem Sie Ihr Alarmskript erstellt haben, können Sie es so konfigurieren, dass bei der Generierung einer Warnung bestimmte Aktionen ausgeführt werden. Sie können beispielsweise ein Skript konfigurieren, um einen Dienst neu zu starten, eine E-Mail-Benachrichtigung zu senden oder einen Befehl auf einem Remote-Server auszuführen.
Hier sind einige Beispiele für Warnskripte aus der grundlegenden Zabbix-Konfiguration:
Betriebssystem erkennen: Mit diesem Skript kann die Version des Betriebssystems auf dem Host ermittelt werden
sudo /usr/bin/nmap -O/usr/bin/traceroute {HOST.CONN} {HOST.CONN}
Ping: spricht für sich
ping -c 3 {HOST.CONN}; case $? in [01]) true;; *) false;; esac
Dienstneustart: Startet einen Dienst auf einem neu Windows Host, der von der Autodiscovery-Funktion erkannt wurde
net start {TRIGGER.DESCRIPTION}
Zusammenfassung
Wir haben uns mit der Konfiguration von Zabbix-Skripten befasst. Insgesamt erfordert die Konfiguration dieser Skripte einige technische Kenntnisse der beteiligten Protokolle und Technologien sowie ein Verständnis der Skript- und Automatisierungsfunktionen von Zabbix. Mit der richtigen Konfiguration können diese Skripte jedoch leistungsstarke Automatisierungs- und Integrationsfunktionen für Ihr Zabbix-Überwachungssystem bereitstellen.