23
PPE – Berlin Hugo Nowacki Lycée Gaston Berger Installation et configuration d’un serveur de supervision Zabbix 1/23

Installation et configuration d’un serveur de supervision

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

Installation et configuration d’unserveur de supervision Zabbix

1/23

Page 2: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

Table des matières1 Contexte et choix des technologies...................................................................................................3

1.1 Présentation de l’infrastructure existante...................................................................................31.2 Quels équipements allons nous superviser................................................................................31.3 Choix de la solution qui hébergera Zabbix................................................................................4

1.3.1 Système d’exploitation du serveur Zabbix.........................................................................41.3.2 Choix du serveur Web et de la base de données................................................................41.3.3 Choix de la version du serveur Zabbix..............................................................................4

2 Installation de Zabbix........................................................................................................................42.1 Installation du dépôt de Zabbix.................................................................................................42.2 Installation du serveur Zabbix, du serveur Web, de l’agent Zabbix et de la base de données...4

2.2.1 Configuration de sécurité de la base de données...............................................................42.3 Création de la base de données de Zabbix.................................................................................52.4 Configuration du mot de passe de la BDD pour Zabbix............................................................52.5 Configuration du PHP et du front-end Zabbix...........................................................................52.6 Démarrage du serveur Zabbix....................................................................................................5

3 Configuration de Zabbix....................................................................................................................73.1 Changer la langue de Zabbix.....................................................................................................73.2 Gestion des utilisateurs..............................................................................................................8

3.2.1 Groupe d’utilisateurs..........................................................................................................93.3 Gestion des notifications............................................................................................................9

3.3.1 Notification par mail..........................................................................................................94 Supervision des différents serveurs.................................................................................................10

4.1 Création de groupes d’hôtes....................................................................................................104.2 Supervision d’un serveur Web Apache Cent OS 8..................................................................10

4.2.1 Configuration sur la machine supervisée.........................................................................104.2.2 Configuration sur le serveur Zabbix................................................................................124.2.3 Module httpd mod_status.................................................................................................134.2.4 Monitoring des logs d’Apache.........................................................................................14

4.3 Supervision d’un serveur Web NGINX...................................................................................164.4 Supervision de Windows Server..............................................................................................17

4.4.1 Supervision du service Active Directory..........................................................................184.4.2 Supervision de fichiers logs Windows.............................................................................18

4.5 Monitoring pfSense..................................................................................................................194.5.1 Monitoring avancé de pfSense.........................................................................................20

4.6 Supervision d’équipements réseaux Cisco..............................................................................215 Tableaux de bords, cartes et écrans..................................................................................................22

5.1 Tableaux de bords....................................................................................................................225.2 Cartes.......................................................................................................................................23

2/23

Page 3: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

1 Contexte et choix des technologies

1.1 Présentation de l’infrastructure existante

Comme nous pouvons le voir sur le schéma, notre infrastructure est décomposée en deux parties.

• Une partie purement réseau qui comporte deux routeurs et deux switch. Ces équipements sont de marque Cisco.

• Une partie virtuelle hébergée sur un hyperviseur VmWare ESXi. Cette partie est découpée en plusieurs VLAN à l’aide d’un pare-feu pfSense. Dans ces VLAN nous retrouvons différents serveurs Linux et Windows.

1.2 Quels équipements allons nous superviserNous divisons les équipements que nous allons superviser en 4 parties :

• Les équipements réseaux. Ces derniers seront supervisés grâce au protocole SNMP version 3.

• Les serveurs Linux (CentOS 8 / RHEL8), que nous superviseront grâce à un Agent Zabbix.

• Les serveurs Windows (2016), que nous superviseront également grâce à un agent Zabbix.

• Le pare-feu pfSense que nous superviserons grâce à un agent Zabbix pour FreeBSD couplé àune template spécialement conçue pour superviser pfSense.

3/23

Figure 1: Shéma réseau de l'infrastructure

Page 4: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

1.3 Choix de la solution qui hébergera Zabbix

1.3.1 Système d’exploitation du serveur Zabbix

Notre serveur Zabbix fonctionnera sur Red Hat Entreprise Linux 8. En effet, notre parc, pour la partie Linux, fonctionne exclusivement avec des machines Cent OS 8. Ce choix nous permettra également de disposer d’une sécurité déjà renforcée à l’installation grâce à la présence de Se Linux et de Firewalld.

1.3.2 Choix du serveur Web et de la base de données

Nous utiliserons un serveur web NGINX, ainsi qu’une base de données Maria DB. Nous préférons utiliser un serveur Nginx, car notre équipe informatique est tout simplement plus à l’aise sur cette solution. De même pour Maria DB.

1.3.3 Choix de la version du serveur Zabbix

Nous utiliserons un serveur Zabbix en version 5.0 LTS. En effet Zabbix garantit un support complet pour Zabbix 5.0 jusqu’en juin 2023.

2 Installation de ZabbixPour installer ce serveur Zabbix, nous allons nous référer au guide du site officiel de Zabbix.

2.1 Installation du dépôt de Zabbix# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm# dnf clean all

2.2 Installation du serveur Zabbix, du serveur Web, de l’agent Zabbix et de la base de données# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent nginx mariadb-server

2.2.1 Configuration de sécurité de la base de données

Nous devons d’abord démarrer le serveur Maria DB :

# systemctl start mariadb

4/23

Page 5: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston BergerNous pouvons ensuite lancer l’installation sécurisée de Maria DB.

# mysql_secure_installation

Avec cette commande, nous pouvons définir un mot de passe pour l’utilisateur root de la BDD, supprimer l’utilisateur anonyme, désactiver la connexion à distance à la base de données et supprimer la base de donnée de test.

2.3 Création de la base de données de Zabbix# mysql -uroot -ppasswordDeRootmysql> create database zabbix character set utf8 collate utf8_bin;mysql> create user zabbix@localhost identified by 'votreMotDePasse';mysql> grant all privileges on zabbix.* to zabbix@localhost;mysql> quit;

Attention, n’oubliez pas de changer le mot de passe !

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

2.4 Configuration du mot de passe de la BDD pour Zabbixvi etc/zabbix/zabbix_server.conf

Remplir la ligne DBPassword=password avec votre mot de passe

2.5 Configuration du PHP et du front-end ZabbixVi etc/nginx/conf.d/zabbix.conflisten 80server_name zabbix01.berlin.lanvi etc/php-fpm.d/zabbix.confphp_value[date.timezone] = Europe/Paris

Ici, on configure Nginx pour que ce dernier lui attribue le port 80 (vous pouvez l’attribuer au port 443 si vous avez déjà une configuration SSL prête). On attribue également le bon fuseau horaire à PHP.

On ouvre également le port 80 :

# firewall-cmd --add-service=http --permanent# firewall-cmd --reload

2.6 Démarrage du serveur Zabbix# systemctl restart zabbix-server zabbix-agent nginx php-fpm mariadb# systemctl enable zabbix-server zabbix-agent nginx php-fpm mariadb

Nous pouvons ensuite nous connecter à notre serveur Zabbix à l’aide d’un navigateur web.

5/23

Page 6: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

Ici nous configurons le mot de passe de la BDD. Si jamais nous avions une base de données sur unemachine différente c’est également ici qu’on configurerait cette partie.

Nous pouvons ensuite nous connecter à notre serveur Zabbix, les identifiants par défaut sont :

Adminzabbix

6/23

Figure 2: Ici nous pouvons vérifier que notre configuration est correct

Page 7: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

3 Configuration de Zabbix

3.1 Changer la langue de ZabbixPour changer la langue, rendez-vous dans la section « User Settings ».

7/23

Page 8: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

3.2 Gestion des utilisateursNous pouvons ajouter un utilisateur dans la section Administration.

Dans cette section, nous pouvons ajouter des médias. Ces derniers seront utilisés notamment pour l’alerting. Ici, nous ajoutons un mail qui sera contacté en cas d’incident de sévérité Haut / Désastre.

Dans cette section nous pouvons définir des permissions pour l’utilisateur.

8/23

Page 9: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

3.2.1 Groupe d’utilisateurs

Nous pouvons également définir des droits d’accès pour les groupes. Ici nous interdisons les utilisateurs du groupe à accéder à la section Network Devices et à tous les sous groupes qui la composent.

3.3 Gestion des notifications

3.3.1 Notification par mail

Rendez-vous dans types de média et configurer le média E-mail (HTML) en indiquant un serveur SMTP. Ici nous utiliserons le serveur SMTP office Gaston Berger.

9/23

Section Administration -> Groupe d'utilisateurs -> Créer un groupe

Page 10: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston BergerOn peut ensuite tester l’envoi.

4 Supervision des différents serveursDans cette partie nous allons nous intéresser à la supervision de différents serveurs (+pfSense), ainsi que des services qui leur sont associés.

4.1 Création de groupes d’hôtesNous pouvons créer des groupes pour mieux catégoriser nos hôtes.

4.2 Supervision d’un serveur Web Apache Cent OS 8

4.2.1 Configuration sur la machine supervisée

Tout d’abord, il faut installer le dépôt Zabbix.

10/23

Page 11: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

Nous pouvons ensuite installer l’agent Zabbix.

# dnf install zabbix-agent2

Une fois l’agent installé, nous pouvons commencer à la configurer. Nous pouvons ouvrir son fichierde configuration qui se situe ici : /etc/zabbix/zabbix_agent2.conf

Server=ipOuNomDeDomaineDeVotreServeurZabbixServerActive=ipOuNomDeDomaineDeVotreServeurZabbixHostname=nomDeVotreMachine

Nous allons ensuite configurer du chiffrement. Pour ça nous allons créer un fichier zabbix_agendtd.psk. Vous pouvez le créer où est-ce que vous voulez, mais faites en sorte que ce dernier soit accessible par l’utilisateur Zabbix. Attention à ne pas trop l’exposer non plus, en effet laclé de chiffrement sera contenue en clair dans ce fichier.

Dans ce fichier vous renseignerez une clé de chiffrement généré à l’aide de la commande :

openssl rand -hex 32

Vous allez ensuite de nouveau éditer votre fichier de configuration zabbix_agent2.conf  :

TLSConnect=pskTLSAccept=pskTLSPSKFile=cheminVersLeFichierDeVotreCleDeChiffrementTLSPSKIdentity=identiteDeVotreMachine

L’agent Zabbix utilise le port 10 050 par défaut, nous l’ouvrons donc :

firewall-cmd --add-port=10050/tcp --permanentfirewall-cmd –reload

Si jamais vous rencontrez des difficultés avec SeLinux, il peut être nécessaire de re labéliser le fichier contenant la clé de chiffrement.

chcon -t zabbix_agent_exec_t /etc/zabbix/zabbix_agentd.psk

Si même la re labélisation ne fonctionne pas, il va falloir créer un module SeLinux manuellement. Pour cela créer un fichier zabbix1.te et remplissez-le comme ceci :

module zabbix1 1.0;require {type zabbix_agent_t;type var_lib_t;class sock_file write;}#============= zabbix_agent_t ==============allow zabbix_agent_t var_lib_t:sock_file write;

Puis exécutez les commandes suivantes :

11/23

Page 12: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Bergercheckmodule -M -m -o zabbix1.mod zabbix1.tesemodule_package -o zabbix1.pp -m zabbix1.modsemodule -i zabbix1.pp

4.2.2 Configuration sur le serveur Zabbix

Nous pouvons maintenant configurer notre hôte sur l’interface web de Zabbix. Pour cela rendez-vous dans la partie Hôtes, puis créer un hôte.

Dans la partie hôte vous pouvez remplir différentes sections et informations de bases. Vous pouvez également spécifier une adresse IP et/ou un nom de domaine et choisir lequel des deux sera utilisé.

Dans la section templates/modèles, vous pouvez spécifier à Zabbix quel type de machine/services il devra superviser. Dans notre cas :

Enfin dans la partie chiffrement, nous renseignons la clé PSK que nous avons spécifié sur notre machine, ainsi que l’identité que nous avons renseignée dans le fichier de configuration.

Si votre configuration a été faite correctement, au bout d’une à deux minutes votre hôte devrait passer dans le vert :

12/23

Page 13: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

4.2.3 Module httpd mod_status

Il est possible de pousser un peu plus loin le monitoring d’apache avec le module mod_status. Pour vérifier que ce dernier est activé vérifiez dans le fichier /etc/httpd/conf.modules.d/00-

base.conf que la ligne LoadModule status_module modules/mod_status.so est

présente et n’est pas commentée.

Il suffit ensuite d’éditer le fichier /etc/httpd/conf/httpd.conf en rajoutant à la fin du

fichier les lignes :

ExtendedStatus On<location /server-status> SetHandler server-status Require host nomDeDomaineDeVotreServeurZabbix</location>

Après ça, nous pouvons redémarrer apache.

Sur notre interface web Zabbix, dans la section Item cette ligne devrait passer au vert :

Après quelques minutes, Zabbix peut récupérer un grand nombre d’informations supplémentaires sur le service Apache !

13/23

Page 14: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

4.2.4 Monitoring des logs d’Apache

Zabbix permet également de monitorer des fichiers logs. Pour ça, la première chose à faire va être d’ouvrir le port 10 051 en TCP sur notre serveur Zabbix. En effet les envois de fichiers logs sont envoyés par la machine directement, et il est donc nécessaire d’ouvrir un port sur notre serveur. A noter que la technique que nous allons utiliser pour monitorer les fichiers logs d’apache fonctionne pour n’importe quel autre fichier log.

Tout d’abord vérifiez bien que l’IP de votre serveur est bien définie dans la section ServerActive de votre fichier de configuration Zabbix Agent.

Par défaut sous Cent OS 8, le dossier logs d’apache (/var/log/httpd) et son contenu appartiennent à l’utilisateur root. L’agent Zabbix ne peut pas y accéder, car il ne fait pas partit du groupe root. Nous allons donc modifier l’appartenance du dossier afin que ce dernier appartienne à l’utilisateur et au groupe apache  :

# chown -R apache:apache /var/log/httpd

Nous allons ensuite ajouter le groupe apache à l’utilisateur zabbix pour que ce dernier puisse accéder aux fichiers :

# usermod -a -G apache zabbix

Nous pouvons ensuite redémarrer l’agent Zabbix.

Sur l’interface Web, nous allons créer une application LOG pour notre hôte.

14/23

Nous disposons même de quelques graphiques déjà pré-configurés !

Page 15: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

Une fois cela fait, nous allons créer 2 items comme ceci :

Un premier pour le fichier error_log :

Et un deuxième pour le fichier access.log :

Une fois cela fait, nous allons lancer un test de connexion avec l’outil apache benchmark afin de créer des nouvelles lignes dans le fichier access.log.

15/23

Page 16: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger# ab -n 50 -c 10 http://192.168.3.130/

Si on se rend maintenant dans l’onglet dernières données de Zabbix, nous pouvons constater que nos fichiers logs bien supervisés :

4.3 Supervision d’un serveur Web NGINXJe ne re détaillerai pas les étapes d’installations, de configuration sur toutes les machines. Je pars duprincipe que vous avez un serveur NGINX, un agent Zabbix fonctionnel ainsi que votre hôte correctement configuré dans l’interface web Zabbix (template Nginx Zabbix Agent).

Dans un premier temps, nous devons vérifier que le module http_stub_status est installé avec la commande :

nginx -V 2>&1 | grep -o with-http_stub_status_module

Nous allons ensuite éditer le fichier de configuration /etc/nginx/nginx.conf en ajoutant les lignes suivantes dans la partie server {} :

location = /basic_status { stub_status; allow all; deny all; }

On peut ensuite redémarrer le service NGINX.

16/23

On récupère davantage de données !

Page 17: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

4.4 Supervision de Windows Server

Pour télécharger l’agent Zabbix 2, il peut être nécessaire de désactiver la protection internet renforcée dans les paramètres du serveur local. La configuration est la même que celle sur les agents Linux, sauf qu’ici elle se fait avec une interface graphique.

Petite astuce pour la clé de chiffrement, on peut utiliser un convertisseur Qwerty / Azerty pour la coller avec VmWare Workstation.

17/23

On récupère également quelques graphiques

Page 18: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston BergerOn lance ensuite l’installation et on configure l’hôte sur notre interface Zabbix avec la template « Windows Server By Zabbix Agent ». Au bout de quelques minutes :

4.4.1 Supervision du service Active Directory

Pour superviser le service Active Directory nous allons utiliser la template AD DS Health And Performance. Pour l’importer, rendez-vous dans Configuration, modèles, importer. Nous importons ici notre fichier.xml téléchargé. Nous pouvons ensuite ajouter le modèle à notre hôte Windows Server. Au bout de quelques minutes, nous pouvons voir nos nouvelles données !

On dispose également de quelques graphiques déjà préconçus.

4.4.2 Supervision de fichiers logs Windows

Même procédure que sous Linux, on crée un item dans une application log. La clé :

eventlog[System,,,,,,skip]

18/23

Page 19: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

4.5 Monitoring pfSensePour monitorer pfSense, nous allons devoir installer le paquetZabbix-agent5 dans le gestionnaire depaquets. Une fois installé, nous pouvons configurer l’hôte sur l’interface web Zabbix avec le modèle freeBSD. Il faut également ouvrir le port 10 050.

19/23

Page 20: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

4.5.1 Monitoring avancé de pfSense

Actuellement, notre configuration ne supervise pas réellement pfSense, mais plutôt le FreeBSD qui tourne derrière. Cependant, il existe un moyen de superviser réellement pfSense et qui nous permettra de surveiller les fonctionnalités propres à pfSense (VPN, CARP, mise à jour dispos des paquets…). Pour cela nous allons utiliser ce modèle, on peut l’importer dans Zabbix de la même manière que le précédent. On peut l’ajouter à l’hôte, il faut cependant supprimer la template FreeBSD avant.

Pour configurer cette template nous allons nous connecter en SSH à notre pfSense (pour l’activer il faut se rendre dans l’onglet avancé).

mkdir /root/scripts

20/23

Page 21: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Bergercurl -o /root/scripts/pfsense_zbx.php https://raw.githubusercontent.com/rbicelli/pfsense-zabbix-template/master/pfsense_zbx.php

Ensuite, sur l’interface web nous pouvons aller dans la section Zabbix Agent dans l’onglet services. On rajoute les options suivantes dans les options avancées :

AllowRoot=1UserParameter=pfsense.states.max,grep "limit states" /tmp/rules.limits | cut -f4-d ' 'UserParameter=pfsense.states.current,grep "current entries" /tmp/pfctl_si_out | tr -s ' ' | cut -f4 -d ' 'UserParameter=pfsense.mbuf.current,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f1UserParameter=pfsense.mbuf.cache,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f2UserParameter=pfsense.mbuf.max,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f4UserParameter=pfsense.discovery[*],/usr/local/bin/php /root/scripts/pfsense_zbx.php discovery $1UserParameter=pfsense.value[*],/usr/local/bin/php /root/scripts/pfsense_zbx.php $1 $2 $3

Normalement, nous avons maintenant accès à des données supplémentaires !

4.6 Supervision d’équipements réseaux CiscoIci, nous allons configurer du SNMP version 3 avec du chiffrement SHA/AES. À noter que pour Zabbix, les clés AES par défaut sont en 128 bits. Pour configurer SNMP, il suffit tout simplement decréer un hôte, de supprimer l’interface Agent et d’en créer une nouvelle en SNMP. Cette dernière sera configurée comme sur la capture d’écran ci-dessous et la modèle utilisé est CISCO SNMP.

21/23

Page 22: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

5 Tableaux de bords, cartes et écransChaque élément de cette partie étant assez intuitif, je me contenterai ici juste de montrer quelques résultats qu’il est possible d’obtenir.

5.1 Tableaux de bords

5.2 Cartes

22/23

Page 23: Installation et configuration d’un serveur de supervision

PPE – Berlin Hugo Nowacki Lycée Gaston Berger

23/23