
Compétences évaluées
- Gérer le patrimoine informatique
- Répondre aux incidents et aux demandes d’assistance et d’évolution
- Mettre à disposition des utilisateurs un service informatique
Contexte
Octave Solutions, une entreprise émergente dans le secteur du développement, est confrontée à la croissance rapide de son infrastructure informatique. Pour répondre à cette expansion, Octave Solutions cherche à mettre en place une solution de surveillance en déployant un serveur Zabbix et Grafana. Cette combinaison permettra à l'entreprise de surveiller efficacement ses serveurs, réseaux et applications critiques mais aussi d'identifier rapidement les problèmes potentiels, garantissant ainsi une disponibilité maximale de ses services.
Présentation des solutions
Zabbix
Zabbix est une solution de supervision open-source qui offre une gamme complète de fonctionnalités pour la surveillance des réseaux, des serveurs, des applications et des services. Elle est utilisée par de nombreuses entreprises pour garantir la disponibilité et les performances de leur infrastructure informatique.
Fonctionnalités clés de Zabbix :
- Surveillance multiplateforme : Zabbix prend en charge une large gamme de systèmes d'exploitation, de serveurs, d'applications et de périphériques réseau, ce qui en fait une solution polyvalente pour la surveillance de divers environnements informatiques.
- Collecte de données avancée : Zabbix peut collecter une variété de données, telles que les performances des serveurs, l'utilisation du réseau, les métriques d'application, les journaux système, etc., à partir de sources diverses.
- Détection des problèmes : Zabbix identifie automatiquement les problèmes potentiels et envoie des alertes en temps réel aux administrateurs afin qu'ils puissent intervenir rapidement pour résoudre les incidents.
- Personnalisation des tableaux de bord : Les utilisateurs peuvent créer des tableaux de bord personnalisés pour visualiser les données de surveillance sous forme de graphiques, de tableaux et de diagrammes, ce qui facilite l'analyse et la prise de décision.
- Intégration avec d'autres outils : Zabbix peut être intégré à d'autres outils de gestion informatique, tels que des systèmes de ticketing, des solutions de gestion des incidents, etc., pour automatiser les processus de gestion des incidents.
Grafana
Grafana est une plateforme d'analyse et de visualisation open-source qui permet de créer des tableaux de bord dynamiques et interactifs pour surveiller et analyser les données provenant de différentes sources.
Fonctionnalités clés de Grafana :
- Visualisation des données : Grafana offre une large gamme d'options de visualisation, y compris des graphiques temporels, des tableaux, des histogrammes, des jauges, des cartes géographiques, etc., ce qui permet aux utilisateurs de représenter leurs données de manière significative.
- Tableaux de bord personnalisables : Les utilisateurs peuvent créer des tableaux de bord personnalisés en sélectionnant les métriques et en configurant les visualisations pour répondre à leurs besoins spécifiques.
- Prise en charge de multiples sources de données : Grafana prend en charge une variété de sources de données, telles que des bases de données, des services cloud, des systèmes de surveillance, etc., ce qui permet aux utilisateurs de centraliser et de visualiser facilement leurs données.
- Interactivité et exploration des données : Grafana permet aux utilisateurs d'explorer les données de manière interactive en zoomant, en filtrant et en pivotant pour obtenir des informations détaillées à partir des visualisations.
- Partage et collaboration : Les tableaux de bord créés dans Grafana peuvent être partagés avec d'autres utilisateurs, ce qui facilite la collaboration et la communication au sein de l'équipe.
En combinant Zabbix et Grafana, les utilisateurs peuvent mettre en place une solution complète de supervision de l'infrastructure réseau, avec des capacités avancées de collecte, de visualisation et d'analyse des données, ce qui leur permet de détecter rapidement les problèmes et d'optimiser les performances de leur environnement informatique.
Procédure d'installation
Installation de Zabbix sur un serveur Ubuntu 22.04 :
Installer le dépôt Zabbix
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt update
Installation de Zabbix server, du frontend et de l'agent
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Création de la base de donnée
mysql -u root -p
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
Sur le serveur Zabbix, importez le schéma initial et les données.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Désactivez l'option log_bin_trust_function_creators après avoir importé le schéma de la base de données.
mysql -u root -p
set global log_bin_trust_function_creators = 0;
quit;
Modifiez le fichier /etc/zabbix/zabbix_server.conf.
DBPassword=password
Modifiez le fichier /etc/zabbix/nginx.conf en décommentant et en configurant les directives 'listen' et 'server_name'.
listen 8080;
server_name example.com;
Démarrez les processus du serveur et de l'agent Zabbix, et configurez-les pour qu'ils démarrent automatiquement au démarrage du système.
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
Ouvrez la page web de l'interface utilisateur Zabbix en allant à l'adresse http://zabbix_server_name
Sur le premier écran, vous verrez un message de bienvenue. Cliquez sur Next step pour continuer.
Sur l’écran suivant, vous verrez le tableau qui énumère toutes les conditions préalables à l’exécution de Zabbix.

Une fois que vous avez vérifié que tout est prêt, cliquez sur Next step pour continuer.
L’écran suivant demande des informations sur la connexion à la base de données.

Cliquez sur Next step pour continuer.
Sur l’écran suivant, vous pouvez laisser les options à leurs valeurs par défaut.

Cliquez sur Next step pour continuer.
L’écran suivant affichera le résumé de pré-installation afin que vous puissiez confirmer que tout est correct.

Cliquez sur Next step pour passer à l’écran final.
La configuration de l’interface web est maintenant terminée. Cliquez sur Finish pour passer à l’écran de connexion. L’utilisateur par défaut est Admin et le mot de passe est zabbix.
Installation de Grafana sur Docker :
Démarrez le conteneur Grafana avec le docker-compose suivant :
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
restart: always
ports:
- "3000:3000"
volumes:
- /opt/grafana-compose/grafana:/var/lib/grafana
Ensuite, montez un volume les plugins seront stockés.
mkdir -p /opt/grafana-compose/grafana
Maintenant, nous devons ajouter le plugin Zabbix pour Grafana en utilisant l'interface de ligne de commande (CLI) de Grafana.
docker exec -ti grafana sh -c 'grafana-cli plugins install alexanderzobnin-zabbix-app'
docker exec -ti grafana sh -c 'grafana-cli plugins ls'
docker restart grafana
Maintenant, rendez-vous sur l'adresse IP du conteneur sur le port 3000 et modifiez le nom d'utilisateur et le mot de passe par défaut (admin/admin).

Consultez la page des plugins et activer le plugin Zabbix.

Vous avez maintenant la possibilité d'utiliser Zabbix comme source de données.

Configuration
Ajouter un hôte dans Zabbix
Pour commencer, nous allons ajouter nos hôtes dans Zabbix :
Cliquez sur "Surveillance", puis "Hôtes" et enfin sur "Créer un hôte"
Ensuite, renseignez les informations suivantes :
- Nom de l'hôtes : Ce nom sera affiché dans les différents tableaux de bord.
- Modèles : Les modèles sont des gabarits préconfigurés qui définissent les éléments à surveiller, les déclencheurs à mettre en place, les graphiques à générer, et les actions à effectuer en réponse à certains événements. Dans notre cas, nous ajoutons un supervisons un serveur Linux via l'agent Zabbix, nous pouvons alors sélectionner le modèle "Linux by Zabbix agent".
- Groupes d'hôtes : Sélectionnez les groupes d'hôtes auxquels appartient l'hôte. Un hôte doit appartenir à au moins un groupe d'hôtes, dans le cas présent nous sélectionnons le groupe "Linux servers".
- Interfaces : Plusieurs types d'interfaces hôtes sont pris en charge pour un hôte : Agent, SNMP, JMX et IPMI, cela correspond à la manière dont vous souhaitez superviser votre hôte. Dans le cas présent nous supervisons le serveur via l'agent zabbix. Ensuite, renseignez l'adresse IP de votre hôte.
- Cocher la case "Activé"
Vous n'avez plus qu'à cliquer sur "Ajouter"

Les hôtes sont maintenant visibles et supervisés :

Envoie de mails lors de déclenchement de problèmes sur Zabbix
Afin de configurer l'envoie de mails lorsqu'une alerte est déclanchée dans Zabbix, suivez la procédure suivante :
Sur l'interface web, cliquez sur "Alertes", puis "Types de média" et enfin sur "Email".
Ensuite renseignez les informations de votre SMTP comme ci-dessous :

Pour finir, retournez sur le menu "Alertes", cliquez "Actions" puis "Actions de déclencheurs" et activé le déclencheur "Report problems to Zabbix administrators"

Un e-mail sera alors envoyé à l'e-mail spécifié dans le profil des utilisateurs administrateurs de Zabbix comme ci-dessous.

Superviser un hôte dans Grafana
Afin de superviser un hôte dans Grafana il est nécessaire de l'avoir ajouter préalablement dans Zabbix.
Ensuite, dans Grafana, cliquez sur "Dashboards", puis "New" et "New dashboard".
Enfin pour ajouter une vue, cliquez sur "Add visualization" et séléctionner la data source "Zabbix".
Dans notre cas, nous allons afficher le pourcentage de mémoire utilisé par le serveur "HAPROXY01" qui fait parti du groupe "Linux servers" dans Zabbix.
Voici les information à fournir :
- Query type : Le type de requête spécifie le type de données que vous souhaitez récupérer de votre source de données.
- Group : Correspond au groupe dont fait partie l'hôte dans Zabbix
- Host : Correspond à un hôte dans Zabbix, il doit faire partie du groupe spécifié au dessus.
- Item tag : Les tags d'élément sont des étiquettes attribuées à des éléments spécifiques dans Zabbix (cpu, mémoire, disque, ... ).
- Item : Un item représente une mesure ou une statistique spécifique à surveiller sur un hôte.
Dans notre cas, nous allons renseigner les informations suivantes :

Le résultat obtenu est la suivant :

Nous allons alors répeter cette action afin de créer des dashboards affichant l'enssemble des données de supervision importante afin de siagnostiquer rapidement un problème sur un hôte.
Voici le dashboard que j'ai créer pour superviser les hôtes Linux.

Ajout d'une variable dans un dashboard Grafana
Afin de simplifier le création d'un dashboard et de l'utiliser pour plusieurs hôtes du même type, il est possible de créer des variable.
Dans notre cas nous souhaitons créer un dashboard qui servira à afficher les données de supervison de mes serveurs Linux.
Pour ce faire, séléctionner le dashboard dans lequel vous souhaitez créer votre variable puis cliquez sur la roue des paramètres en haut à droite, puis sur "Variables".
Ensuite cliquez sur le bouton "New variable" et renseignez les informations suivantes :

Si les informations renseignées sont exactes, les hôtes devraient êtres affichés en dessous de "Preview of values"
Maintenant que la variable est fonctionnelle, vous pouvez modifier l'hôte des vues du dashboard par "$Host"

Le dashboard se met maintenant à jour en fonction de l'hôte séléctionné :
