Erstellen Sie Zabbix5.0 mit offiziellem Docker-Compose, überwachen Sie SNMPTRAP und legen Sie Slack-Benachrichtigungen fest

Einführung

Bei der Überwachung von Heimservern mit Zabbix habe ich sie mit einem Container unter Verwendung des offiziellen Docker-Compose erstellt Da es Netzwerkgeräte gibt, können beim Empfang von SNMPTRAP Warnmeldungen gesendet werden. Da es sich bei Alert um eine Slack-Benachrichtigung handelt, werde ich zu diesem Zeitpunkt auch das Konstruktionsprotokoll hinzufügen

Das folgende grobe Bild zabbix-comopse-slack.png

Implementierungsinhalt

  1. Erstellen Sie Zabbix mit Docker-Compose
  2. Zabbix-Einstellungen
  3. Überwachungseinstellungen
  4. Zabbix Slack Integration
  5. Alarmprüfung

Implementierungsumgebung

--docker server - OS: CentOS 7.8.2003 - Docker: docker-ce 19.03.13 - Docker-compose: 1.18.0

1. Installieren Sie mit Docker-Compose

Zabbix veröffentlicht Zabbix-Docker unten auf GitHub https://github.com/zabbix/zabbix-docker

Beginnen Sie mit diesem Docker-Compose

Überprüfen Sie das neueste 5.0-Tag auf der zabbix-dokcer-Site und klonen Sie es, indem Sie das Tag angeben (wenn Sie das Tag nicht angeben, handelt es sich um die neueste Version wie 5.2). https://github.com/zabbix/zabbix-docker/tags

git_clone


git clone https://github.com/zabbix/zabbix-docker.git -b 5.0.5

Dieses Mal verwende ich eine Version des Centos-Images, die MySQL als Datenbank verwendet Machen Sie das folgende yaml docker-compose.yaml und machen Sie es zum Standard

cp_use_version


cd zabbix-docker/
cp -p docker-compose_v3_centos_mysql_latest.yaml docker-compose.yaml

Starten Sie den Daemon unten

docker-compose_up


docker-compose up -d

Überprüfen Sie den Startstatus unten. Es gibt kein Problem mit "Exit 0" oben

check_ps


# docker-compose ps
WARNING: Some services (zabbix-agent, zabbix-java-gateway, zabbix-proxy-mysql, zabbix-proxy-sqlite3, zabbix-server, zabbix-snmptraps, zabbix-web-apache-mysql, zabbix-web-nginx-mysql) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
                 Name                               Command               State                    Ports                
------------------------------------------------------------------------------------------------------------------------
zabbixdocker_db_data_mysql_1             sh                               Exit 0                                        
zabbixdocker_mysql-server_1              docker-entrypoint.sh mysql ...   Up                                            
zabbixdocker_zabbix-agent_1              /sbin/tini -- /usr/bin/doc ...   Up                                            
zabbixdocker_zabbix-java-gateway_1       docker-entrypoint.sh /usr/ ...   Up                                            
zabbixdocker_zabbix-proxy-mysql_1        /sbin/tini -- /usr/bin/doc ...   Up       0.0.0.0:10071->10051/tcp             
zabbixdocker_zabbix-proxy-sqlite3_1      /sbin/tini -- /usr/bin/doc ...   Up       0.0.0.0:10061->10051/tcp             
zabbixdocker_zabbix-server_1             /sbin/tini -- /usr/bin/doc ...   Up       0.0.0.0:10051->10051/tcp             
zabbixdocker_zabbix-snmptraps_1          /usr/bin/supervisord -c /e ...   Up       0.0.0.0:162->1162/udp                
zabbixdocker_zabbix-web-apache-mysql_1   docker-entrypoint.sh             Up       0.0.0.0:80->8080/tcp,                
                                                                                   0.0.0.0:443->8443/tcp                
zabbixdocker_zabbix-web-nginx-mysql_1    docker-entrypoint.sh             Up       0.0.0.0:8081->8080/tcp,              
                                                                                   0.0.0.0:8443->8443/tcp 

Wenn Sie mit http: // [Docker-Server-IP] auf den Browser zugreifen, wird der folgende Bildschirm angezeigt. Melden Sie sich mit dem Benutzernamen an: Admin, Passwort: zabbix.

スクリーンショット 2020-11-01 12.29.28.png

Wenn Sie sich anmelden, wird der folgende Bildschirm angezeigt

スクリーンショット 2020-11-01 12.32.40.png

2. Zabbix-Einstellungen

Aktivieren Sie als Grundeinstellung die Benutzereinstellungen und die Überwachung des zabbix-Servers.

2.1 Benutzereinstellungen

スクリーンショット 2020-11-01 12.35.09.png

2.2. zabbix-server Der zabbix-Server ist ein Fehler スクリーンショット 2020-11-01 12.48.01.png

Einstellungen> Host >> Zabbix Server スクリーンショット 2020-11-01 12.40.37.png

Ändern Sie, wie im folgenden Bildschirm gezeigt, den DNS-Namen in "zabbix-agent" und die Verbindungsmethode in "DNS" und klicken Sie auf "Update". スクリーンショット 2020-11-01 12.46.18.png

Nach einer Weile können Sie bestätigen, dass eine Agentenkommunikation möglich ist. スクリーンショット 2020-11-01 12.50.30.png

3. Überwachungseinstellungen

3.1 Erstellen eines SNMP-Trap-Triggers

In Docker-Compose wird auch der Container mit Zabbix-Snmptraps gestartet und 162 zugewiesen, und SNMP-Trap kann auch als Element erworben werden. Ich konnte keine Vorlage finden, die SNMP TRAP auslöst, daher werde ich eine erstellen.

Es gibt ein Element namens "SNMP-Traps (Fallback)" im Standard-SNMP "Template Net Network Generic Device". Wenn es empfangen wird, wird eine Warnung als Auslöser ausgegeben. SNMP Trap kann möglicherweise mit der Wiederherstellung verknüpft werden, ist jedoch schwierig. Daher werden wir uns hier vorerst in 60 Sekunden erholen.

Gehen Sie zu "Einstellungen"> "Vorlage"> "Vorlage erstellen" スクリーンショット 2020-11-01 13.01.51.png

Geben Sie im folgenden Beispiel den Vorlagennamen "Template Net Network Generic Device SNMP plus SNMPTRAP Trigger" und die Gruppe "Templates / Network Devices" ein.

スクリーンショット 2020-11-01 17.38.13.png

Gehen Sie zur Registerkarte "Mit Vorlage verknüpfen", wählen Sie in der neuen Vorlage "Vorlage" die Option "SNMP" für generisches Netznetzwerk aus und klicken Sie auf "Hinzufügen", um eine Vorlage zu erstellen スクリーンショット 2020-11-01 17.39.28.png

Geben Sie die erstellte Vorlage ein, geben Sie die Registerkarte "Trigger" an und klicken Sie oben rechts auf "Trigger erstellen", um einen zusätzlichen Trigger zu erstellen. スクリーンショット 2020-11-01 13.18.14.png

Erstellen Sie einen Trigger mit den folgenden Inhalten (Schweregrad ist hoch)

スクリーンショット 2020-11-01 17.41.36.png

3.2. Hostregistrierung

Registrieren Sie hier den Host in den SNMP-Überwachungseinstellungen des Netzwerkgeräts (auch für den Alarmtest verwendet).

Erstellen mit "Einstellungen"> "Host"> "Host erstellen"

スクリーンショット 2020-11-01 14.07.22.png

Öffnen Sie die Registerkarte "Vorlage", wählen Sie die erstellte Vorlage aus und "Hinzufügen"

スクリーンショット 2020-11-01 17.43.35.png

Wenn die SNMP-Abfrage erfolgreich ist, wird der SNMP-Teil grün. スクリーンショット 2020-11-01 17.44.38.png

4. Zabbix Slack Integration

Slack wird mit Bot verbunden

Erstellen Sie Slack Bots

Erstellen Sie im Voraus einen Benachrichtigungskanal スクリーンショット 2020-11-01 0.58.20.png

Öffnen Sie die Slack-API und öffnen Sie "Ihre Apps" https://api.slack.com/ スクリーンショット 2020-11-01 14.22.59.png

Öffnen Sie "Neue App erstellen" スクリーンショット 2020-11-01 14.25.34.png

App-Name: Wählen Sie "zabbix_alerter" Development Slack Workspace "Home Lab" und klicken Sie auf "App erstellen" スクリーンショット 2020-11-01 0.46.30.png

Wählen Sie "Bots" スクリーンショット 2020-11-01 0.46.46のコピー.png

Öffnen Sie Features> OAuth & Permissions und öffnen Sie Erstellen Sie ein Token in "Bereichen" mit "Aufrufen: Schreiben" スクリーンショット 2020-11-01 0.49.44のコピー.png

Klicken Sie unter "OAuth-Tokens & Redirect-URLs" auf "App in Arbeitsbereich installieren" スクリーンショット 2020-11-01 0.51.21のコピー.png

Zusammenarbeit zulassen スクリーンショット 2020-11-01 0.51.35のコピー.png

Kopieren Sie das generierte Zugriffstoken und speichern Sie es (wird auf der Zabbix-Seite verwendet). スクリーンショット 2020-11-01 0.51.59のコピー.png

Öffnen Sie die Details des erstellten Slack-Kanals ・ ・ ・ Andere Fügen Sie` Apps`` hinzu スクリーンショット 2020-11-01 15.10.06.png

Füge den erstellten zabbix_alerter hinzu スクリーンショット 2020-11-01 15.09.34.png

Nach dem Hinzufügen wird es wie unten gezeigt auf dem Kanal angezeigt スクリーンショット 2020-11-01 15.09.10.png

Zabbix-Einstellungen

Öffnen Sie "Management"> "Medientyp" und öffnen Sie "Slack" スクリーンショット 2020-11-01 0.53.03のコピー.png Geben Sie das von der Slack-API erstellte Zugriffstoken in "bot_token" ein, gehen Sie nach unten und klicken Sie auf "Aktualisieren" スクリーンショット 2020-11-01 14.54.20.png

Öffnen Sie "Admin"> "Benutzer" und öffnen Sie "Admin" スクリーンショット 2020-11-01 14.56.10.png

Öffnen Sie die Registerkarte "Medien" und klicken Sie auf "Hinzufügen" スクリーンショット 2020-11-01 14.58.03.png

Geben Sie "Slack" ein, geben Sie das Ziel "# homelab-zabbix" (Name des Benachrichtigungskanals) und "add" ein スクリーンショット 2020-11-01 14.59.33.png

Update スクリーンショット 2020-11-01 15.00.04.png

So legen Sie das globale Makro fest Öffnen Sie "Administration"> "Allgemeine Einstellungen"> "Anzeigeeinstellungen"> "Makro" スクリーンショット 2020-11-01 15.02.04.png

Geben Sie das Makro "{$ ZABBIX.URL}" und den Wert "http: // [Docker Server IP] /" ein und klicken Sie auf "Update" スクリーンショット 2020-11-01 15.03.52.png

Auslösen der Triggeraktion Öffnen Sie "Einstellungen"> "Aktionen" und klicken Sie auf "Probleme an Zabbix-Administratoren melden" スクリーンショット 2020-11-01 15.20.35.png

Aktivieren Sie "Aktiviert" und klicken Sie auf "Hinzufügen" スクリーンショット 2020-11-01 15.24.41.png

Wählen Sie den Typ "Schweregrad auslösen", Operator "oder höher", Schweregrad "Informationen" und klicken Sie auf "Hinzufügen" (wählen Sie den Schweregrad aus, über den Sie benachrichtigt werden möchten). スクリーンショット 2020-11-01 15.25.18.png

Klicken Sie abschließend zum Aktualisieren auf "Aktualisieren" スクリーンショット 2020-11-01 15.26.07.png

5. Alarmprüfung

Alarmtest mit Ping-Kommunikation

Beenden Sie Ping auf der Seite des registrierten Hostgeräts und führen Sie einen Alarmwarnungstest durch. スクリーンショット 2020-11-01 15.42.22.png

Slack-Benachrichtigungen sehen so aus スクリーンショット 2020-11-01 15.42.37.png

Wenn Ping wieder aktiviert und wiederhergestellt wird, wird dieselbe Nachricht neu geschrieben und wird grün. スクリーンショット 2020-11-01 15.47.46.png

Klicken Sie auf "In Zabbix öffnen", um Details in Ihrem Browser anzuzeigen スクリーンショット 2020-11-01 15.57.19.png

Alarmtest mit SNMP TRAP

Fahren Sie den VPN-Tunnel auf der Hostseite herunter und geben Sie SNMPTRAP aus スクリーンショット 2020-11-01 15.50.57.png スクリーンショット 2020-11-01 15.51.38.png

Nach 60 Sekunden wird es automatisch wiederhergestellt (gleiche Nachricht neu schreiben) スクリーンショット 2020-11-01 15.52.17.png

Wenn der VPN-Tunnel wiederhergestellt ist, wird SNMPTRAP erneut angezeigt und in 60 Sekunden erneut als Fehler und Wiederherstellung behandelt. スクリーンショット 2020-11-01 15.53.47.png スクリーンショット 2020-11-01 15.55.28.png

Damit ist der Alarmwarnungstest abgeschlossen

abschließend

Ich habe Zabbix einfach mit Docker-Compose erstellt, das offiziell veröffentlicht wird, und auch den Auslöser für SNMPTRAP gesetzt. Die Benachrichtigung über Warnungen war mit Slack verknüpft und wir konnten den Vorgang bestätigen Ich möchte Zabbix 5.0 in Zukunft auf verschiedene Arten berühren

Referenz

GitHub zabbix-docker https://github.com/zabbix/zabbix-docker Zabbix Official: Beginnen Sie mit SNMP-Traps in Zabbix> Erstellen Sie "Template SNMP Trap Fallback" https://zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix#Create_.22Template_SNMP_trap_fallback.22 Zabbix Integration Slack https://www.zabbix.com/integrations/slack

Recommended Posts

Erstellen Sie Zabbix5.0 mit offiziellem Docker-Compose, überwachen Sie SNMPTRAP und legen Sie Slack-Benachrichtigungen fest
Wie kann ich mit NUXTJS Official S3 und CloudFront für AWS bereitstellen? Mit Docker-Compose
Setzen Sie Zabbix mit Docker in Ubuntu ein und überwachen Sie Docker auf demselben Host
Installieren Sie Zabbix 5.0 mit Docker → Richten Sie die Slack-Benachrichtigung im Fehlerfall ein
Analysieren und visualisieren Sie CSV-Protokolle mit Excel Elastic Stack (Docker-Compose) - Richten Sie Docker-Compose ein