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
--docker serveur - OS: CentOS 7.8.2003 - Docker: docker-ce 19.03.13 - Docker-compose: 1.18.0
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
.
Lorsque vous vous connectez, l'écran ci-dessous apparaîtra
En tant que paramètre de base pour commencer à utiliser, activez les paramètres utilisateur et la surveillance du serveur zabbix.
2.2. zabbix-server zabbix-server est un échec, alors traitez-le
Paramètres
> Hôte
>> Serveur Zabbix
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».
Après un certain temps, vous pouvez confirmer que la communication avec l'agent est possible.
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
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».
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
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.
Créez un déclencheur avec le contenu suivant (la gravité est élevée)
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
Ouvrez l'onglet Modèle
, sélectionnez le modèle créé etajoutez
Si l'interrogation SNMP réussit, la partie SNMP
deviendra verte.
Slack sera lié à Bot
Créez un canal de notification à l'avance
Ouvrez l'api slack et ouvrez Vos applications
https://api.slack.com/
Ouvrez Créer une nouvelle application
Nom de l'application: sélectionnez zabbix_alerter
Development Slack Workspace Home Lab
et cliquez sur Créer une application
Sélectionnez Bots
Ouvrez Features
> OAuth & Permissions
et ouvrez
Créez un Token dans Scopes
avec calls: write
Cliquez sur «Installer l'application sur l'espace de travail» sous «Jetons OAuth et URL de redirection»
Permettre la coopération
Copiez
le jeton d'accès généré et enregistrez-le (utilisé du côté Zabbix)
Ouvrez les Détails
de la chaîne Slack créée ・ ・ ・ Autre
Ajouter des` applications``
Ajouter
le zabbix_alerter
créé
Une fois ajouté, il sera affiché sur la chaîne comme indiqué ci-dessous
Ouvrez Gestion
> Type de média
et ouvrez Slack
Entrez le jeton d'accès créé par l'API Slack dans bot_token
, descendez et cliquez sur Mettre à jour
Ouvrez Admin
> Utilisateur
et ouvrez Admin
Ouvrez l'onglet Média
et cliquez sur Ajouter
Tapez Slack
, entrez la destination # homelab-zabbix
(nom du canal de notification) et` add``
Mettre à jour
Pour définir la macro globale
Ouvrez Administration
> Paramètres généraux
> Paramètres d'affichage
> Macro
Entrez la macro «{$ ZABBIX.URL}», la valeur «http: // [IP du serveur docker] /» et cliquez sur «Mettre à jour»
Pour définir l'action de déclenchement
Ouvrez Paramètres
> Actions
et cliquez sur Signaler les problèmes aux administrateurs Zabbix
Cochez «Activé» et cliquez sur «Ajouter»
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é)
Enfin cliquez sur Mettre à jour
pour mettre à jour
Arrêtez le ping du côté de l'appareil hôte enregistré et effectuez un test d'alerte d'alerte.
Les notifications Slack ressemblent à ceci
Lorsque Ping est réactivé et restauré, le même message est réécrit et devient Green Up.
Cliquez sur Ouvrir dans Zabbix
pour afficher les détails dans votre navigateur
Descendez le tunnel VPN du côté hôte et émettez SNMPTRAP
Après 60 secondes, il sera automatiquement restauré (réécriture du même message)
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.
Ceci termine le test d'alerte d'alerte
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
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