Comment installer le serveur de surveillance Cacti sur CentOS 8

Cacti est un outil de surveillance et de graphique de réseau basé sur le Web, gratuit, open-source et puissant. Il permet de surveiller les performances du système, la charge du processeur et l’utilisation de la bande passante du réseau sous forme de graphique. Il te permet d’interroger des services à des intervalles prédéterminés et de représenter graphiquement les données qui en résultent. Il s’agit d’un frontal complet de RRDTool, écrit en PHP et utilisant la base de données MySQL pour stocker toutes les informations nécessaires.

Dans ce tutoriel, nous allons expliquer comment installer l’outil de surveillance Cacti sur CentOS 8.

Conditions préalables

  • Un serveur exécutant CentOS 8 avec au moins 2 Go de RAM.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Tout d’abord, il est recommandé de mettre à jour tes paquets système à la dernière version. Tu peux les mettre à jour avec la commande suivante :

dnf update -y

Une fois que tous les paquets sont mis à jour, installe les autres dépendances nécessaires à Cacti avec la commande suivante :

dnf install net-snmp net-snmp-utils net-snmp-libs rrdtool -y

Après avoir installé toutes les dépendances, démarre le service SNMP et active-le pour qu’il démarre au démarrage avec la commande suivante :

systemctl start snmpd
systemctl enable snmpd

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe le serveur LAMP

Ensuite, tu devras installer le serveur Web Apache, le serveur de base de données MariaDB, PHP et les autres extensions PHP nécessaires sur ton système. Tu peux les installer tous à l’aide de la commande suivante :

dnf install httpd mariadb-server php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl -y

Une fois que tous les paquets sont installés, démarre le service HTTP et MariaDB et active-les pour qu’ils démarrent au démarrage avec la commande suivante :

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Ensuite, tu devras éditer le fichier php.ini et y apporter quelques modifications :

nano /etc/php.ini
date.timezone = Asia/Kolkata
memory_limit = 512M
max_execution_style = 60

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer la base de données MariaDB

Ensuite, tu devras créer une base de données et un utilisateur pour Cacti. Tout d’abord, connecte-toi au shell MariaDB avec la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur pour Cacti avec la commande suivante :

MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO [email protected] IDENTIFIED BY 'password';

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Ensuite, tu devras éditer le fichier de configuration MariaDB et modifier certains paramètres. Tu peux le faire en modifiant le fichier /etc/my.cnf.d/mariadb-server.cnf.

nano /etc/my.cnf.d/mariadb-server.cnf

Ajoute les lignes suivantes dans la section [mysqld] :

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size=32M
tmp_table_size=32M
join_buffer_size=64M
# 25% Of Total System Memory
innodb_buffer_pool_size=1GB
# pool_size/128 for less than 1GB of memory
innodb_buffer_pool_instances=10
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_io_capacity_max=10000

Enregistre et ferme le fichier lorsque tu as terminé puis redémarre le service MariaDB pour appliquer les modifications :

systemctl restart mariadb

Ensuite, importe le fichier mysql_test_data_timezone.sql dans la base de données mysql avec la commande suivante :

mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

Ensuite, connecte-toi à MySQL et accorde à l’utilisateur cacti l’accès à la table mysql.time_zone_name :

mysql

Une fois connecté, exécute la commande suivante pour accorder l’accès :

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected];

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer et configurer Cacti

Par défaut, Cacti n’est pas disponible dans le référentiel par défaut de CentOS 8. Tu devras donc ajouter le référentiel EPEL à ton système.

Tu peux l’installer avec la commande suivante :

dnf install epel-release -y

Une fois le référentiel installé, installe Cacti avec la commande suivante :

dnf install cacti -y

Après avoir installé Cacti, vérifie l’installation de Cacti avec la commande suivante :

rpm -qi cacti

Tu devrais obtenir le résultat suivant :

Name        : cacti
Version     : 1.2.14
Release     : 1.el8
Architecture: noarch
Install Date: Wednesday 07 October 2020 01:04:02 AM EDT
Group       : Unspecified
Size        : 56217780
License     : GPLv2+
Signature   : RSA/SHA256, Thursday 06 August 2020 05:06:22 AM EDT, Key ID 21ea45ab2f86d6a1
Source RPM  : cacti-1.2.14-1.el8.src.rpm
Build Date  : Thursday 06 August 2020 04:54:10 AM EDT
Build Host  : buildvm-a64-27.iad2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://www.cacti.net/
Bug URL     : https://bugz.fedoraproject.org/cacti
Summary     : An rrd based graphing tool
Description :
Cacti is a complete frontend to RRDTool. It stores all of the
necessary information to create graphs and populate them with
data in a MySQL database. The frontend is completely PHP
driven.

Ensuite, importe les données Cacti dans la base de données Cacti avec la commande suivante :

mysql -u root -p cactidb < /usr/share/doc/cacti/cacti.sql

Ensuite, modifie le fichier de configuration Cacti et définis tes paramètres de base de données :

nano /usr/share/cacti/include/config.php

Change les lignes suivantes qui correspondent à ta base de données :

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;

Sauvegarde et ferme le fichier lorsque tu as terminé puis crée un fichier Cron pour Cacti.

nano /etc/cron.d/cacti

Ajoute la ligne suivante :

*/5 * * * *   apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Sauvegarde et ferme le fichier lorsque tu as terminé.

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configure Apache pour Cacti

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Apache pour Cacti. Tu peux le créer avec la commande suivante :

nano /etc/httpd/conf.d/cacti.conf

Trouve les lignes suivantes :

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require host localhost
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
        </IfModule>
</Directory>

Et, Remplace-les par les lignes suivantes :

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>

Sauvegarde et ferme le fichier lorsque tu as terminé puis redémarre le service Apache et PHP-FPM pour appliquer les modifications :

systemctl restart httpd
systemctl restart php-fpm

Tu peux aussi vérifier l’état d’Apache avec la commande suivante :

systemctl status httpd

Tu devrais obtenir la sortie suivante :

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2020-10-07 01:10:35 EDT; 58s ago
     Docs: man:httpd.service(8)
 Main PID: 5159 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 12523)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5159 /usr/sbin/httpd -DFOREGROUND
           ??5161 /usr/sbin/httpd -DFOREGROUND
           ??5162 /usr/sbin/httpd -DFOREGROUND
           ??5163 /usr/sbin/httpd -DFOREGROUND
           ??5164 /usr/sbin/httpd -DFOREGROUND

Oct 07 01:10:35 centos8 systemd[1]: Stopped The Apache HTTP Server.
Oct 07 01:10:35 centos8 systemd[1]: Starting The Apache HTTP Server...
Oct 07 01:10:35 centos8 httpd[5159]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:45>
Oct 07 01:10:35 centos8 systemd[1]: Started The Apache HTTP Server.
Oct 07 01:10:35 centos8 httpd[5159]: Server configured, listening on: port 80

À ce stade, le serveur Web Apache est configuré pour servir Cacti. Tu peux maintenant passer à l’étape suivante.

Configure le pare-feu et SELinux

Ensuite, tu devras autoriser les services http et https via le firewalld. Tu peux les autoriser avec la commande suivante :

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Ensuite, tu devras également désactiver le SELinux dans ton système.

Tu peux désactiver le SELinux en modifiant le fichier /etc/selinux/config :

nano /etc/selinux/config

Trouve la ligne suivante :

SELINUX=enforcing

Et, remplace-la par la ligne suivante :

SELINUX=permissive

Enregistre et ferme le fichier puis redémarre le système pour appliquer les modifications.

Accède à l’interface Web de Cacti

Maintenant, ouvre ton navigateur Web et accède à l’interface Web Cacti en utilisant l’URL http://your-server-ip/cacti. Tu seras redirigé vers la page de connexion de Cacti :

Connexion Cacti

Indique le nom d’utilisateur et le mot de passe par défaut comme admin / admin puis clique sur le bouton Connexion. Tu devrais voir l’écran de changement de mot de passe Cacti :

Modifier le mot de passe

Indique ton mot de passe par défaut, ton nouveau mot de passe et clique sur le bouton Enregistrer. Tu devrais voir la page du contrat de licence Cacti :

Accept license

Accepte le contrat de licence et clique sur le bouton Commencer. Tu devrais voir la page de vérification de la pré-installation :

contrôle de pré-installation

Assure-toi que tous les paquets sont installés puis clique sur le bouton Suivant. Tu devrais voir la page suivante :

Choisis le type d'installation

Sélectionne ton type d’installation et clique sur le bouton Suivant. Tu devrais voir la page de vérification des autorisations de répertoire :

Permissions du répertoire

Clique sur le bouton Suivant. Tu devrais voir la page suivante.

Vérifie les emplacements binaires

Clique sur le bouton Suivant. Tu devrais voir la page Validation des entrées :

Liste blanche de validation des entrées

Coche la case et clique sur le bouton Suivant. Tu devrais voir la page Profil :

Profil par défaut

Indique ta portée réseau et clique sur le bouton Suivant. Tu devrais voir la page de configuration du modèle :

Configuration du modèle

Sélectionne le modèle requis et clique sur le bouton Suivant. Tu devrais voir la page suivante :

Collation du serveur

Ensuite, ouvre ton terminal, connecte-toi au shell MySQL et modifie le jeu de caractères en exécutant la commande suivante :

MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Ensuite, retourne à l’assistant d’installation Cacti et clique sur le bouton Suivant. Tu devrais voir la page suivante :

Conf confirmer l'installation

Confirme l’installation et clique sur le bouton Installer. Une fois l’installation terminée, tu devrais voir la page suivante :

Installation terminée avec succès

Clique sur le bouton Démarrer. Tu devrais voir le tableau de bord Cacti sur la page suivante :

Tableau de bord des cactus

Clique sur le graphique => Machine Linux locale. Tu devrais voir les informations sur ta machine locale dans la page suivante :

Surveillance du serveur avec Cacti

Conclusion

Félicitations ! Tu as réussi à installer et à configurer l’outil de surveillance du réseau Cacti sur Ubuntu 20.04. Tu peux maintenant installer l’agent Cacti sur la machine du client, l’ajouter au serveur Cacti et commencer à surveiller. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...