Zabbix: installation sur CentOS 8

Zabbix: installation sur CentOS 8

12 décembre 2020 0 Par Mairien Anthony

Comment installer Zabbix sur une CentOS 8, présentation et premiers pas !

Aujourd’hui nous allons donc voir ce qu’est Zabbix, comment l’installer sur une CentOS 8, puis comment monitorer une machine Linux via SNMP ainsi qu’une machine Windows via l’agent Zabbix.

C’est parti !

I) Zabbix, c’est quoi au juste ?

Comme d’habitude, on va d’abord un peu se renseigner avant de partir à l’assaut. Zabbix est donc un logiciel de supervision au même titre que Centreon ou PRTG. Ce type de logiciel va donc nous permettre de monitorer tout notre parc informatique: de la température CPU de nos machines clientes jusqu’à la vitesse des ports de nos commutateurs.

Si vous voulez d’ores et déjà en savoir un peu plus, vous pouvez retrouver un aperçu de ce genre de solution sur mon TFE, où je mettais en place Centreon, mais le principe est grossièrement le même pour Zabbix

Je vais au passage me permettre de copier/coller un morceau de la documentation de Zabbix, qui vous en dira directement un peu plus :

1.2 QU’OFFRE ZABBIX?

Possibilités de Zabbix:

  • Découverte automatique des serveurs et périphériques réseaux
  • Supervision répartie sur une administration web centralisée
  • Support des mécanismes “polling and trapping”
  • Logiciels serveurs pour Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X
  • Agent haute performance en natif (Logiciel client pour Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista)
  • Supervision sans agent
  • Authentification d’agent sécurisée
  • Permissions utilisateurs flexibles.
  • Interface web
  • Notification par e-mail d’événements prédéfinis
  • Haut niveau (business) de visualisation des ressources supervisées
  • Log d’audit
1.3 POURQUOI UTILISER ZABBIX?
  • Solution Open Source
  • Grande efficacité des agents pour les plateformes UNIX et WIN32
  • Faible courbe d’apprentissage
  • “High ROI”, les temps d’arrêt son très couteux
  • Faible coût de “possession”
  • Configuration très simple
  • Système de supervision centralisé. Toute l’information (configuration, performance, don-nées) est stockée dans une base de données relationnelle.
  • Niveau élevé “service tree”
  • Installation très facile
  • Support du SNMP (v1, V2). Both trapping and polling
  • Visualisation des capacités
  • Procédure de nettoyage intégrée

Source: https://www.zabbix.com/documentation/1.8/fr/manual/about/overview_of_zabbix

Passons maintenant à son installation !

II) Installation

Zabbix peut donc s’installer de différentes manières, il n’y qu’à se rendre sur leur site (très bien fait au passage) pour s’en rendre compte :

Que ce soit sur une distribution vierge, via image Cloud, conteneur, appliance ou autre, tout ou presque est possible !

Ici nous allons partir sur une CentOS 8 vierge, en IP statique 192.168.1.100/24. Au passage, SELinux ne sera pas désactivé mais passé en mode permissive, c’est-à-dire qu’il ne bloquera rien mais loggera les choses bloquées, idéal pour ensuite ajuster les règles. Nous choisirons la version de Zabbix la plus récente (la LTS est plutôt utilisée dans le monde de l’Entreprise), puis nous utiliserons MySQL et Apache. Bien entendu, c’est une question de goût/contrainte :

Une fois votre CentOS fraîchement configurée, restez sur la page de téléchargement de Zabbix et scrollez légèrement : toute la procédure y est décrite de manière claire et concise !

Il ne nous reste donc plus qu’à suivre les directives, ma foi fort explicite.

*A noter que ce n’est pas précisé sur leur site, mais il faut installer manuellement le paquet mysql-server, auquel cas vous obtiendrez un joli « command not found » pour la création de la BDD. Ensuite n’oubliez pas de faire le classique mysql_secure_installation et le tour est joué !

Une fois nos différents packages installés, et notre BDD correctement créee, on peut poursuivre :

Courage, le plus gros est fait ! Passons maintenant à la configuration du Frontend, car si vous essayez d’ores et déjà de vous rendre sur l’IP de votre machine avec le /zabbix indiqué, vous aurez une belle erreur, et pour cause: nous devons encore ouvrir les ports pour le pare-feu, ainsi qu’effectuer quelques petits réglages au niveau de PHP.

Avant toute chose nous allons autoriser les ports dont nous avons besoin (HTTP, HTTPS, et les ports utilisé par Zabbix lui-même) :

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --reload

Ensuite nous allons ajuster la Timezone de PHP-FPM par rapport à Zabbix. Ce fichier se trouve dans /etc/php-fpm.d/zabbix.conf :

Le Europe/Brussels est bien entendu à ajuster selon vos besoins. N’oubliez pas de supprimer le « ; » pour que cela soit bien pris en compte au passage.

Une fois fait, on peut redémarrer notre serveur web :

systemctl restart httpd php-fpm
systemctl enable httpd php-fpm

C’est terminé ! Maintenant le reste de la configuration se fera via l’interface, alors rendons-nous sur 192.168.1.100/zabbix !

III) Configuration via l’interface web

Une fois sur notre serveur web, on peut d’ores et déjà choisir la langue (anglais ou français par défaut, selon la langue locale du serveur web) :

On a droit à un classique checkup des dépendances requises :

On rentre les informations concernant notre BDD, à noter d’ailleurs qu’il est possible de stocker nos credentials dans un Vault de chez HashiCorp (‘serait p’tet temps de m’y mettre tiens…) :

On donne ensuite un nom à notre instance Zabbix, et le tour est joué !

Dernier point avant le résumé de l’installation, le choix du mode sombre ou non ainsi que de la TimeZone pour le panel :

Les credentials par défaut sont Admin et zabbix. La première chose à faire après avoir regardé rapidement le tableau de bord est de se rendre dans Administration, puis Utilisateurs pour changer le mot de passe par défaut :

Voilà donc un aperçu de l’interface web :

Le tableau de bord est très facilement ajustable, tout se fait via différents petits widgets redimensionnables. Sur la gauche on retrouve un classique menu déroulant avec les différents paramètres :

Ici je ne vais pas touuut détailler en longueur, car cet article n’en finirait pas. En lieu et place de cela, je vais plutôt directement vous montrer comment installer un agent Zabbix sur une machine Windows 10 puis comment la monitorer via des templates de base.

IV) Monitoring de machine Windows via agent Zabbix

Une fois votre machine Windows 10 fraîchement installé, il convient de se rendre sur le site de Zabbix une nouvelle fois mais cette fois en cliquant sur Zabbix Agents :

Rien d’incroyable, on choisi notre OS, la version de Zabbix, un éventuel chiffrement ou non, et c’est bon !

Une fois téléchargé, l’installation sous Windows est relativement aisée, c’est du Suivant Suivant comme on a l’habitude :

Simplement veiller à mettre la bonne IP/le bon FQDN pour l’hôte Zabbix, et éventuellement rajouter le client dans notre PATH :

Ensuite, nous avons deux méthodes. Soit nous pouvons manuellement rajouter l’hôte Windows en nous rendant sur notre tableau de bord puis dans Configuration, Hôtes, et Créer hôte en haut à droite :

Puis on remplit toutes les informations qui vont bien, soit nous pouvons utiliser l’outil de découverte du réseau en nous rendant dans Configuration, puis Découverte et enfin nous cliquons sur État: désactivé pour l’activer.

Bien entendu, n’hésitez pas à cliquer sur la règle elle-même pour la configurer comme bon vous semble :

Ici j’ai ajusté la plage IP, et j’ai fait en sorte de ne chercher que des agents Zabbix, le SNMP est désactivé pour la recherche.

Si ensuite on se rend sur Surveillance puis découverte, on voit que notre appareil est bien reconnu :

Il ne nous reste donc plus qu’à nous rendre dans la partie Configuration, puis Actions et cliquer en haut à droite pour avoir un petit menu déroulant (bien caché d’ailleurs…) qui nous permet de switcher entre les différentes types d’actions. Ici, celles qui nous intéressent sont les Discovery Actions, qui permettent comme leurs nom l’indiquent d’effectuer certaines choses lors de certaines découvertes.

On clique donc ensuite sur Créer une action :

Ici je donne un simple nom à mon action, puis je choisi comme conditions qu’il faut que l’hôte ait été découvert par mon scan réseau comme expliqué plus haut.

Ensuite je rajoute simplement le fait d’ajouter ce nouvel hôte dans un groupe nommé Hôtes découverts auto.

Et c’est à peu près tout, on patiente et… tadaaa !

Bien entendu ici on obtient un nom à rallonge, au lieu de simplement « PC-COMPTA-02« , mais l’idée est là, et ça fonctionne.

Maintenant, testons l’ajout d’un hôte Linux mais via SNMP !

V) Monitoring de machine GNU/Linux via SNMP

Ici notre client sera une Debian 10, tout ce qu’il y a de plus classique, en installation minimale.

La première étape est donc d’installer le service SNMP sur notre client, via la commande apt-get install snmpd.

Ensuite nous pouvons d’ores et déjà éditer le fichier /etc/snmp/snmpd.conf :

Ici on enlève le commentaire sur la ligne agentAddress et on commente celle au-dessus, histoire que le client SNMP écoute sur les interfaces IPv4 et IPv6 de notre client et plus en localhost seulement.

Puis enfin, il ne nous reste plus qu’à configurer la communauté SNMP, toujours dans ce même fichier, aux lignes rocommunity. Si vous n’utilisez pas l’IPv6 vous pouvez d’ailleurs commenter la ligne propre à l’IPv6.

Ensuite sur notre Zabbix, on se rend sur Configuration, puis Hôtes et enfin Créer un hôte :

On renseigne les détails sur notre hôte, on choisi son groupe… tout ce qu’il y a de plus classique, puis on rempli tout ce qui touche au SNMP. Ensuite sur Modèles on choisi comme son nom l’indique le modèle sur lequel on va se calquer, ici ce sera Linux SNMP.

Dans la partie IPMI on ne touchera à rien, puis Tags, Macros*, Inventaire, et Chiffrement idem (cependant libre à vous d’éditer ces parties, mais ici nous allons rester le plus simple possible).

*Petite note, je ne sais pour quelle raison mais si votre liaison SNMP ne fonctionne pas comme cela, laissez la valeur {$SNMP_COMMUNITY} dans Communauté SNMP puis allez dans Macro et ici vous mettrez votre bonne valeur pour la variable.

Une fois tout cela effectué, il faut patienter quelques secondes et tadaaaa !

Notre hôte est désormais monitoré via SNMP depuis notre serveur Zabbix !

VI) Conclusion

Cet article touche désormais à sa fin, je l’avais dans mes brouillons depuis un sacré moment et étant donné que j’avais un peu de temps libre, je me suis dit que c’était le bon moment pour le sortir. Bien entendu, je ne suis pas un expert de Zabbix, je le découvrais plus ou moins comme vous en même temps que je rédigeais l’article, c’était donc une première pour moi aussi.

Je pense sortir d’autres articles dessus, où nous verrons la configuration d’alertes ainsi que d’autres choses un peu plus poussées, mais avec tout ça vous devriez déjà avoir une belle vue d’ensemble de ce qu’il est possible de faire avec 😉

Je vous souhaite donc comme à mon habitude, une bonne journée/bonne soirée à vous !

N'hésitez pas à soutenir le blog, chaque article demande un certain travail de recherche, rédaction ainsi que la réalisation de divers tests !