Construisez Zabbix5.0 avec docker-compose officiel, surveillez SNMPTRAP et définissez les notifications Slack

introduction

Lors de la surveillance du serveur domestique avec Zabbix, je l'ai construit avec un conteneur en utilisant le docker-compose officiel Comme il existe des périphériques réseau, des notifications d'alerte peuvent être envoyées lors de la réception de SNMPTRAP. Puisque Alert est une notification Slack, j'inclurai également le mémo de construction à ce moment-là (Information au moment de la construction à partir du 2020.11.01)

L'image approximative suivante zabbix-comopse-slack.png

Contenu de la mise en œuvre

  1. Construisez Zabbix avec docker-compose
  2. Paramètres de zabbix
  3. Paramètres de surveillance
  4. intégration de zabbix slack
  5. Examen d'alerte

Environnement de mise en œuvre

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

1. Installez avec docker-compose

Zabbix publie zabbix-docker sur GitHub ci-dessous https://github.com/zabbix/zabbix-docker

Commencez à utiliser ce docker-compose

Vérifiez la dernière balise 5.0 sur le site zabbix-dokcer et clonez-la en spécifiant la balise (si vous ne spécifiez pas la balise, ce sera la dernière version telle que 5.2) https://github.com/zabbix/zabbix-docker/tags

git_clone


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

Cette fois, j'utilise une version de l'image centos qui utilise mysql comme base de données, donc Rendre le yaml suivant docker-compose.yaml et en faire la valeur par défaut

cp_use_version


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

Démarrez le démon ci-dessous

docker-compose_up


docker-compose up -d

Vérifiez l'état de démarrage ci-dessous. Il n'y a pas de problème avec Exit 0 en haut

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 

Si vous accédez au navigateur avec http: // [IP du serveur docker], l'écran suivant apparaîtra: Connectez-vous avec le nom d'utilisateur: Admin, Mot de passe: zabbix.

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

Lorsque vous vous connectez, l'écran ci-dessous apparaîtra

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

2. Paramètres de zabbix

En tant que paramètre de base pour commencer à utiliser, activez les paramètres utilisateur et la surveillance du serveur zabbix.

2.1. Paramètres utilisateur

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

2.2. zabbix-server zabbix-server est un échec, alors traitez-le スクリーンショット 2020-11-01 12.48.01.png

Paramètres> Hôte >> Serveur Zabbix スクリーンショット 2020-11-01 12.40.37.png

Comme indiqué dans l'écran ci-dessous, changez le nom DNS en «zabbix-agent» et la méthode de connexion en «DNS» et cliquez sur «Mettre à jour». スクリーンショット 2020-11-01 12.46.18.png

Après un certain temps, vous pouvez confirmer que la communication avec l'agent est possible. スクリーンショット 2020-11-01 12.50.30.png

3. Paramètres de surveillance

3.1 Création d'un déclencheur SNMP Trap

Un conteneur pour zabbix-snmptraps est également démarré dans docker-compose et 162 est attribué, et SNMP Trap peut également être obtenu en tant qu'élément. Je n'ai pas trouvé de modèle qui déclenche SNMP TRAP, je vais donc en créer un.

Le "Template Net Network Generic Device SNMP" par défaut a un élément appelé "SNMP Traps (fallback)", donc quand il est reçu, une alerte sera émise comme déclencheur. SNMP Trap peut être lié à la récupération, mais c'est difficile, donc ici nous allons récupérer dans 60 secondes pour le moment.

Allez dans Paramètres> Modèle> Créer un modèle スクリーンショット 2020-11-01 13.01.51.png

Dans l'exemple ci-dessous, entrez le nom du modèle «Template Net Network Generic Device SNMP plus SNMPTRAP Trigger» et le groupe sous «Templates / Network devices».

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

Allez dans l'onglet Link with Template, sélectionnez Template Net Network Generic Device SNMP dans le Link New Template et cliquez sur Add pour créer un modèle スクリーンショット 2020-11-01 17.39.28.png

Entrez le modèle créé, spécifiez l'onglet «déclencheur» et cliquez sur «créer un déclencheur» en haut à droite pour créer un déclencheur supplémentaire. スクリーンショット 2020-11-01 13.18.14.png

Créez un déclencheur avec le contenu suivant (la gravité est élevée)

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

3.2. Enregistrement des hôtes

Ici, enregistrez l'hôte dans les paramètres de surveillance SNMP du périphérique réseau (également utilisé pour le test d'alarme).

Créer avec Paramètres> Hôte> Créer un hôte

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

Ouvrez l'onglet Modèle, sélectionnez le modèle créé etajoutez

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

Si l'interrogation SNMP réussit, la partie SNMP deviendra verte. スクリーンショット 2020-11-01 17.44.38.png

4. intégration de zabbix slack

Slack sera lié à Bot

Créer des Slack Bots

Créez un canal de notification à l'avance スクリーンショット 2020-11-01 0.58.20.png

Ouvrez l'api slack et ouvrez Vos applications https://api.slack.com/ スクリーンショット 2020-11-01 14.22.59.png

Ouvrez Créer une nouvelle application スクリーンショット 2020-11-01 14.25.34.png

Nom de l'application: sélectionnez zabbix_alerter Development Slack Workspace Home Lab et cliquez sur Créer une application スクリーンショット 2020-11-01 0.46.30.png

Sélectionnez Bots スクリーンショット 2020-11-01 0.46.46のコピー.png

Ouvrez Features> OAuth & Permissions et ouvrez Créez un Token dans Scopes avec calls: write スクリーンショット 2020-11-01 0.49.44のコピー.png

Cliquez sur «Installer l'application sur l'espace de travail» sous «Jetons OAuth et URL de redirection» スクリーンショット 2020-11-01 0.51.21のコピー.png

Permettre la coopération スクリーンショット 2020-11-01 0.51.35のコピー.png

Copiez le jeton d'accès généré et enregistrez-le (utilisé du côté Zabbix) スクリーンショット 2020-11-01 0.51.59のコピー.png

Ouvrez les Détails de la chaîne Slack créée ・ ・ ・ Autre Ajouter des` applications`` スクリーンショット 2020-11-01 15.10.06.png

Ajouter le zabbix_alerter créé スクリーンショット 2020-11-01 15.09.34.png

Une fois ajouté, il sera affiché sur la chaîne comme indiqué ci-dessous スクリーンショット 2020-11-01 15.09.10.png

Paramètres Zabbix

Ouvrez Gestion> Type de média et ouvrez Slack スクリーンショット 2020-11-01 0.53.03のコピー.png Entrez le jeton d'accès créé par l'API Slack dans bot_token, descendez et cliquez sur Mettre à jour スクリーンショット 2020-11-01 14.54.20.png

Ouvrez Admin> Utilisateur et ouvrez Admin スクリーンショット 2020-11-01 14.56.10.png

Ouvrez l'onglet Média et cliquez sur Ajouter スクリーンショット 2020-11-01 14.58.03.png

Tapez Slack, entrez la destination # homelab-zabbix (nom du canal de notification) et` add`` スクリーンショット 2020-11-01 14.59.33.png

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

Pour définir la macro globale Ouvrez Administration> Paramètres généraux> Paramètres d'affichage> Macro スクリーンショット 2020-11-01 15.02.04.png

Entrez la macro «{$ ZABBIX.URL}», la valeur «http: // [IP du serveur docker] /» et cliquez sur «Mettre à jour» スクリーンショット 2020-11-01 15.03.52.png

Pour définir l'action de déclenchement Ouvrez Paramètres> Actions et cliquez sur Signaler les problèmes aux administrateurs Zabbix スクリーンショット 2020-11-01 15.20.35.png

Cochez «Activé» et cliquez sur «Ajouter» スクリーンショット 2020-11-01 15.24.41.png

Sélectionnez le type «gravité du déclencheur», opérateur «ou plus», informations sur la gravité »et cliquez sur« ajouter »(sélectionnez la gravité à laquelle vous souhaitez être notifié) スクリーンショット 2020-11-01 15.25.18.png

Enfin cliquez sur Mettre à jour pour mettre à jour スクリーンショット 2020-11-01 15.26.07.png

5. Examen d'alerte

Test d'alerte avec communication Ping

Arrêtez le ping du côté de l'appareil hôte enregistré et effectuez un test d'alerte d'alerte. スクリーンショット 2020-11-01 15.42.22.png

Les notifications Slack ressemblent à ceci スクリーンショット 2020-11-01 15.42.37.png

Lorsque Ping est réactivé et restauré, le même message est réécrit et devient Green Up. スクリーンショット 2020-11-01 15.47.46.png

Cliquez sur Ouvrir dans Zabbix pour afficher les détails dans votre navigateur スクリーンショット 2020-11-01 15.57.19.png

Test d'alerte avec SNMP TRAP

Descendez le tunnel VPN du côté hôte et émettez SNMPTRAP スクリーンショット 2020-11-01 15.50.57.png スクリーンショット 2020-11-01 15.51.38.png

Après 60 secondes, il sera automatiquement restauré (réécriture du même message) スクリーンショット 2020-11-01 15.52.17.png

Lorsque le tunnel VPN est restauré, SNMPTRAP apparaîtra à nouveau et il sera traité comme un échec et sera à nouveau traité comme une récupération dans 60 secondes. スクリーンショット 2020-11-01 15.53.47.png スクリーンショット 2020-11-01 15.55.28.png

Ceci termine le test d'alerte d'alerte

en conclusion

J'ai facilement construit Zabbix avec docker-compose, qui est officiellement publié, et j'ai défini le déclencheur pour SNMPTRAP. La notification d'alerte était liée à Slack et nous avons pu confirmer l'opération Je veux toucher Zabbix 5.0 de différentes manières à l'avenir

référence

GitHub zabbix-docker https://github.com/zabbix/zabbix-docker Zabbix Official: Commencez avec les traps SNMP dans Zabbix> Créez un "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

Construisez Zabbix5.0 avec docker-compose officiel, surveillez SNMPTRAP et définissez les notifications Slack
Comment déployer sur AWS à l'aide de NUXTJS S3 et CloudFront officiels? Avec docker-compose
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Installer Zabbix 5.0 avec Docker → Configurer la notification Slack en cas d'échec
Analysez et visualisez les journaux CSV avec Excel Elastic Stack (docker-compose) - Configurez avec docker-compose