Zabbix – Redémarrer un service sur Ubuntu – Linux

Dans ce tutoriel, je vais vous montrer, comment redémarrer un service (systemctl) sur Ubuntu/Debian superviser avec Zabbix.

Quand on supervise un serveur et notamment les services, il arrive que l’on souhaite redémarrer un service qui sera « tombé » automatiquement afin de garantir un niveau de service.

Redémarrer un service pour palier à un problème « inconnu » n’est pas toujours la solution. Ici je vais prendre l’exemple d’un service qui s’arrête régulièrement notamment lors d’application de mise à jours.

L’environnement du tutoriel :

Dans ce tutoriel, je vais configurer Zabbix pour redémarrer le service crowdsec-firewall-bouncer qui sert à injecter les règles de blocage dans Iptables.

La configuration se fait en plusieurs étapes :

  • Création du script dans Zabbix
  • Création du déclencheur dans Zabbix
  • Configuration du serveur supervisé pour donner les droits à l’utilisateur de Zabbix de redémarrer le service et configuration de l’agent pour exécuter les commandes.

Création du script dans Zabbix

La première étape va être de créer notre script dans Zabbix qui va permettre de redémarrer le service quand celui-ci sera arrête.

Depuis le menu, déplier Administration 1 et cliquer sur Scripts 2.

Par défaut, 3 scripts sont déjà configurés, Cliquer sur le bouton Créer un script 1 qui se trouve en haut à gauche.

Nommer le script 1, choisir le type Script 2 et sélectionner agent Zabbix 3.

Le fait de sélectionner agent Zabbix, indique que le script sera exécuté par l’agent qui est installé sur le serveur supervisé.

Dans le champ Commandes, entrer le script a exécuté 1 et ensuite cliquer sur le bouton Ajouter 2.

Le script est ajouté et disponible dans Zabbix.

Création d’un déclencheur qui va utiliser le script

On va maintenant configurer un déclencheur d’action, qui va utiliser notre script pour redémarrer le service.

Dans le menu de navigation, déplier Configuration 1, aller sur Actions 2 et cliquer sur Trigger actions 3.

Ici, on retrouve l’ensemble des actions configurer liées aux déclencheurs, cliquer sur le bouton Créer une action 1.

Nommer l’action 1 puis cliquer sur Ajouter 2 dans la partie Conditions.

Une fenêtre modale s’ouvre où l’on va configurer le déclenchement de notre action, en type, choisir Déclencheur 1 puis cliquer sur le bouton Sélectionner 2.

Dans la partie hôte, choisir le serveur 1 où est configuré le déclencheur, puis sélectionner le déclencheur du service 2 qui indique que le service est non fonctionnel, terminer en cliquant sur le bouton Sélectionner 3.

Cliquer sur le bouton Ajouter 1 pour créer la condition.

La première partie de l’action est configurée, on va maintenant passer à l’exécution du script. Cliquer sur Opérations 1.

Au niveau de Opérations, cliquer sur Ajouter 1.

Par défaut, l’opération, c’est envoyer Envoie message, utiliser l’ascenseur pour sélectionner le script 1 créer précédemment.

Dans la Liste des cibles, cocher la case Hôte actuel 1 et cliquer sur Add 2.

L’opération est ajoutée, cliquer sur Ajouter 1.

Le trigger d’action est ajouté.

Configuration du serveur et de l’agent Zabbix

Dernière partie avant que l’on puisse avoir nos services qui redémarre.

Sur le serveur où se trouve, l’agent entrer la commande ci-dessous pour éditer le fichier /etc/sudoers :

sudo visudo

A la fin, ajouter cette ligne pour autoriser l’utilisateur Zabbix a exécute la commande su script sans mot de passe :

zabbix ALL=(ALL) NOPASSWD:/bin/systemctl restart crowdsec-firewall-bouncer

Fermer l’éditeur en sauvegardant.

Ne modifier pas le fichier /etc/sudoers directement avec nano ou autre éditeur, l’éditeur visudo vérifie le fichier avant la sauvegarde. Une mauvaise configuration dans le fichier bloquera toutes les commandes sudo.

On va maintenanrt la configuation de l’agent, ouvrir le fichier de configurartion :

sudo nano /etc/zabbix/zabbix_agent2.conf

Dans le fichier rechercher : ### Option: AllowKey, ajouter à la fin du bloc de commentaire la ligne ci-dessous :

AllowKey=system.run[*]

Rechercher : #DenyKey=system.run[*] et décommenter la ligne :

DenyKey=system.run[*]

Sauvegarder et fermer le fichier de configuration.

Redémarrer le service de l’agent Zabbix :

sudo systemctl restart zabbix-agent2.service

Tester le redémarrage du service

Pour tester, le plus simple est d’arrête le service sur la machine supervisée et vérifier si Zabbix le redémarre.

Une fois le service arrêté, on peut voir l’alerte dans Zabbix et que l’action a été effectuée.

Après vérification sur le serveur, on peut voir que le service est démarré.


Vous savez maintenant comment redémarrer un service automatiquement avec Zabbix.

Si vous planifiez une maintenance sur un service, pensez à désactiver le trigger.




Laisser un commentaire