« LINUX:CACTI » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(23 versions intermédiaires par le même utilisateur non affichées)
Ligne 38 : Ligne 38 :




=Configuration préalable=
=Problème suite à la migration vers Fedora 40=
Suite à la migration vers Fedora 40, on remarque que le logiciel CACTI n'y est plus repris. (en date d'Avril 2024) Ce logiciel avait été installé lors d'une version de Fedora précédente.
 
Dès ce moment CACTI ne fonctionnait plus.
 
La raison découle du changement plus restrictifs des privilèges pour le device: /dev/null (644 au lieu de 666). Ce fichier appartient à l'utilisateur "root" or le logiciel s'exécute sous l'utilisateur "apache" par défaut. Ceci impacte principalement l'exécution via le service Cron du fichier "/etc/cron.d/cacti".
 
La solution consiste à exécuter la commande:
chmod 666 /dev/null
et tout rentre dans l'ordre.
 
 
=[[LINUX:CACTI - Configuration préalable|Configuration préalable]]=
Lors de la configuration de CACTI, ce processus vérifie la configuration des services dépendants. Si un aspect est imparfait, il sera noté en rouge. Il faudra le corriger et relancer le service concerné. Il est donc préférable de les ajuster en avance.
Lors de la configuration de CACTI, ce processus vérifie la configuration des services dépendants. Si un aspect est imparfait, il sera noté en rouge. Il faudra le corriger et relancer le service concerné. Il est donc préférable de les ajuster en avance.




==Configuration de PHP==
=[[LINUX:CACTI - Configuration Web|Configuration Web]]=
Par rapport à la configuration d'origine du fichier "/etc/php.ini", il est nécessaire de modifier quelques lignes:
La suite de la configuration se fait via l'interface Web.
----
 
max_execution_time = 60
 
memory_limit = 400M
=Cron=
----
Avant de lancer l'interface Web d'utilisation de Cacti, il convient de revenir momentanément dans la console du serveur Linux.
Le service "php-fpm.service" doit être redémarré:
 
systemctl restart php-fpm.service
Car jusqu'à maintenant, on a activé le volet interface Web mais la récolte des informations auprès des équipements à analyser se fait au travers du service Cron. On va éditer le fichier "/etc/cron.d/cacti". Il ne comporte qu'une ligne mise en commentaire. On active ce traitement en éliminant le caractère "#" en début de ligne et on sauve. On remarque que par défaut la récolte se fait toutes les cinq minutes.
 
Si on avait activé cette ligne avant, les exécutions se seraient accumulées intempestivement.
 
 
=Interface Web=
Enfin on rentre dans l'interface Web via l'URL: <nowiki>http://192.168.1.100/cacti/</nowiki> Après le login, nous avons l'écran suivant.
 
[[FILE:LINUX:Cacti.iuw.png|center|800px]]
 
En haut, nous avons plusieurs onglets. On va s'intéresser avant tout sur la "Console" dont le menu de gauche affiche les principales options. Plus tard dès que nous aurons initié la récolte de données sur divers équipements ou machines, nous pourrons passer aux "graphiques". L'onglet "Rapport" peut être intéressant pour recevoir régulièrement certains graphiques par messagerie.
 
 
=[[LINUX:CACTI - Paramétrage|Paramétrage]]=
On commence par la modification des paramètres.
 
 
=[[LINUX:CACTI - Corrections de graphiques|Corrections de graphiques]]=
Je me suis aperçu que le titre de différents graphiques qui m'intéressent n 'est pas assez explicite. Nous allons les modifier avant la création de graphiques.
 
 
=Préparation=
Nous avons comme équipements des machines Linux et Windows et des Switchs Cisco. Les informations qui nous intéressent concernent les processeurs, la mémoire, les disques et le trafic réseau. Avant de lancer cette récolte, nous allons préparer le cadre général.
 
 
==[[LINUX:CACTI - Préparation des modèles|Modèles]]==
Les équipements et les graphiques sont basés sur des modèles. Pour nous aider, nous allons définir des modèles d'équipements personnels en relation avec le notre.
 
 
==[[LINUX:CACTI - Préparation de la gestion|Gestion]]==
Avant de créer un équipement, nous allons préparer le cadre de gestion dans lequel ils vont être présentés.
 
 
=Automatisation=
Enfin nous allons automatiser la recherche des équipements.
L'automatisation permet d'effectuer une bonne partie de l'ajout de nouveaux équipements et de leur paramétrage.
 
Il nous faut auparavant préparer différents aspects qui vont utiliser les modèles et le cadre de gestion paramétrés ci-dessus.


L'automatisation n'est pas facile à maitriser. Il faut bien la configurer avant de démarrer la découverte des machines. L'étape de la préparation ci-dessus est importante mais il faut aussi paramétrer l'automatisation. On va utiliser dans l'onglet "Console", les différents points du menu de gauche "Automatisation".


==Configuration de Mariadb==
Par rapport à la configuration d'origine du fichier "/etc/my.cnf.d/mariadb-server.cnf", il est nécessaire de modifier ou d'ajouter quelques lignes:
----
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=47M
tmp_table_size=47M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_io_capacity_max=10000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_buffer_pool_size=720M
----
Le service "mariadb.service" doit être redémarré:
systemctl restart mariadb.service


==[[LINUX:CACTI - Automatisation des options SNMP|Options SNMP]]==
On démarre par le paramétrage des accès SNMP. C'est sur cette base que CACTI va pouvoir explorer les informations SNMP de la machine distante et ainsi d'ajouter automatiquement l'équipement et de créer les requêtes et les graphiques associés.


==Création du schéma pour Cacti dans Mariadb==
Maintenant, il faut créer le schéma pour Cacti. On crée un premier fichier qui va créer le schéma vide que l'on nomme "schema.sql":
----
DROP SCHEMA IF EXISTS dbcacti ;
CREATE SCHEMA dbcacti ;
----
Nous avons nommé ce schéma "dbcacti".


On exécute ensuite la commande suivante pour effectuer cette création:
==[[LINUX:CACTI - Automatisation des règles des équipements|Règles des équipements]]==
mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB < ./schema.sql
Ces règles permettent de sélectionner et de classer les machines découvertes; les autres seront écartées.
Ensuite on charge les tables et leur contenu dans ce schéma vide "dbcacti". Un script est fourni. Il reste à exécuter la commande suivante:
mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB -D dbcacti < /usr/share/doc/cacti/cacti.sql
On adapte le mot de passe ("MOT_DE_PASSE_ROOT_MARIADB") de l'utilisateur "root" de Mariadb selon votre installation.




==Création de l'utilisateur pour Cacti dans Mariadb==
==[[LINUX:CACTI - Automatisation des règles des graphiques|Règles des graphiques]]==
On crée un utilisateur qui aura les pleins pouvoirs sur ce schéma "dbcacti".
Ces règles permettent d'ajouter des graphiques pour les machines découvertes.


On crée un fichier qui va créer cet utilisateur et lui donner les droits nécessaires que l'on nomme "user.sql":
----
create user 'usercacti'@'localhost' identified by 'PW_CACTI' ;
create user 'usercacti'@'127.0.0.1' identified by 'PW_CACTI' ;
grant all privileges on dbcacti.* to 'usercacti'@'localhost';
grant all privileges on dbcacti.* to 'usercacti'@'127.0.0.1';
----
Ce nom d'utilisateur est "usercacti" avec le mot de passe "PW_CACTI". Ils sont à adapter selon vos désirs.


On exécute ensuite la commande suivante pour effectuer cette création:
==[[LINUX:CACTI - Automatisation des règles des arbres|Règles des arbres]]==
mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB < ./user.sql
Ces règles permettent de placer automatiquement les équipements et les graphiques dans l'arbre créé dans la partie [[LINUX:CACTI - Préparation de la gestion#Arbres|gestion des arbres]].
On adapte le mot de passe ("MOT_DE_PASSE_ROOT_MARIADB") de l'utilisateur "root" de Mariadb selon votre installation.




==Ajouter de Time-Zone à Mariadb==
==Importation des règles==
Il faut ajouter les informations sur le Time-Zone à Mariadb. On exécute la commande de ligne suivante:
Le nombre de règles est important.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB
Au lieu de faire ces manipulations manuellement, vous pouvez essayer d'importer ces règles d'automatisation.
On adapte le mot de passe ("MOT_DE_PASSE_ROOT_MARIADB") de l'utilisateur "root" de Mariadb selon votre installation.


Vous pouvez télécharger le fichier suivant:
[[Media:LINUX:Automatisation.sql.zip|Télécharger le fichier ZIP]]
On doit décompresser ce fichier téléchargé:
unzip Automatisation.sql.zip


==Droits sur une table de Time-Zone==
On exécute ensuite la commande suivante pour effectuer cette importation:
L'utilisateur "usercacti" doit avoir le droit de lecture (SELECT) sur une table Time-Zone créé ci-dessus.
  mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB -D dbcacti < ./automatisation.sql
On crée un script en fonction que l'on nomme "droit-time-zone.sql":
Notez que les modèles d'équipements doivent être importés ou créés et que la configuration de l'arbre doit être faite.
----
use mysql;
GRANT SELECT ON mysql.time_zone_name TO usercacti@localhost;
flush privileges;
----
On exécute ensuite la commande suivante:
  mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB < ./droit-time-zone.sql
On adapte le mot de passe ("MOT_DE_PASSE_ROOT_MARIADB") de l'utilisateur "root" de Mariadb selon votre installation.




==Configuration de Cacti==
==[[LINUX:CACTI - Automatisation des réseaux|Réseaux]]==
Maintenant qu'on a le nom du schéma et de l'utilisateur avec son mot de passe, on passe à la configuration de Cacti.  
Enfin on va paramétrer le réseau qui va être exploré.


On modifie les options suivantes dans le fichier "/etc/cacti/db.php" suivant les informations créées ci-dessus:
----
$database_default  = 'dbcacti';
$database_hostname = 'localhost';
$database_username = 'usercacti';
$database_password = 'PW_CACTI';
----


=[[LINUX:CACTI - Récolte automatique des équipements et de leurs graphiques|Récolte automatique des équipements et de leurs graphiques]]=
Nous avons tout mis en place. Il est temps d'appliquer les automatismes créés afin de récolter les équipements et leurs graphiques.


==Configuration de Spine==
Lors de la phase future de récolte des informations auprès des équipements réseaux suivis, on va utiliser l'outil "Spine" via le service Cron. Il a aussi besoin des mêmes informations.


On modifie les options suivantes dans le fichier "/etc/spine.conf" suivant les mêmes informations:
=[[LINUX:CACTI - Création manuelle des équipements et de leurs graphiques|Création manuelle des équipements et de leurs graphiques]]=
----
Si nous ne voulons pas passer par l'automatisation, on peut utiliser la création manuelle.
DB_Host      localhost
DB_Database  dbcacti
DB_User      usercacti
DB_Pass      PW_CACTI
----




==Configuration de Cacti pour Apache==
=Graphiques=
Cacti sera utilisé au travers d'un interface Web. L'installation fourni le fichier "/etc/httpd/conf.d/cacti.conf".
Nous avons rassemblé diverses machines et créé leurs graphiques associés. Il faut attendre en général deux passages de la récolte des informations effectuées par le Cron pour que les graphiques commencent à apparaître.  
Comme nous désirons l'utiliser grâce à un Browser Web à partir de notre PC ayant l'adresse IP "192.168.1.2", il faut permettre cet accès. Par défaut l'accès n'est permis qu'à partir du serveur localement. Or on ne travaille pas interactivement sur un serveur, ce n'est pas une station de travail, donc il est inutile d'installer un serveur X et un interface de fenêtrage tel Gnome. On économise ainsi des ressources.


On va modifier ce fichier "/etc/httpd/conf.d/cacti.conf" en fonction.
On clique sur l'onglet "Graphiques" et dans cet écran, sur la première icône au dessus à droite représentant un arbre stylisé. A gauche apparaît l'arbre parmi lequel on repère nos machines et aussi les modèles de graphiques. En choisissant une de ces entrées, on voit apparaître les graphiques associés dans la partie droite. Via la partie du dessus, il est possible d'adapter cette présentation et notamment de sélectionner la tranche de temps à visualiser; il est possible de remonter jusqu'à un an au maximum. Il est aussi possible de zoomer sur une partie du graphique.


Le bloc:
[[FILE:LINUX:Cacti.graphique.arbre.png|center|1000px]]
----
<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>
----
est modifié comme suit:
----
<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require all denied
                Require ip '''192.168.1.2'''
#              Require host localhost
        </IfModule>
</Directory>
----
Le service "httpd.service" doit être redémarré:
systemctl restart httpd.service


Remarquons au passage que le fichier "/etc/httpd/conf.d/php.conf" venant avec PHP est nécessaire.


=[[LINUX:CACTI - Création de rapport|Création de rapport]]=
Il est possible de s'envoyer par mail un rapport rassemblant divers graphiques choisis.





Dernière version du 3 mai 2024 à 11:35


retour à la Surveillance


But

Le logiciel permet de rassembler dans la durée les évolutions de ressources de divers équipements du réseau. Il utilise l'agent SNMP de ces équipements réseaux. Il les présentent sous forme de graphiques. Il n'envoie pas d'alerte mais permet de suivre l'évolution des ressources et ainsi de pouvoir prendre des actions préventives ou correctrices. Par exemple, quand on suit l'évolution de l'augmentation de la charge disque, on peut prévoir une nouvelle capacité de stockage plus adaptée. Ou on peut repérer des périodes où le trafic réseau est trop intense et ainsi mieux répartir cette charge en ne lançant pas tous nos besoins en même temps.

Voici un exemple de graphique sur une journée. Les données sont stockées avec un recul d'une année.

LINUX:Cacti.graph.memoire.png

Il est composé de deux parties:

  • Un script est chargé d'effectuer le relevé des données à intervalle régulier sur base du CRON de Linux.
  • Un interface Web qui comporte un volet pour la configuration et un volet pour la consultation des graphiques qui synthétisent les données rassemblées.


Prérequis

Ce logiciel a besoin de plusieurs applications qui seront utilisées au travers de plusieurs services:

  • Le service CRON "crond.service".
  • Le service Web Apache "httpd.service".
  • Le service PHP-FPM "php-fpm.service"; voyez l'article sur PHP venant avec la distribution.
  • Le service Mariadb "mariadb.service"; voyez l'article sur MariaDB: serveur de base de données.
  • Le service SNMP, voyez l'article sur SNMP. Il doit être installé et actif sur tout équipement que l'on veut suivre.

Les quatre premiers doivent être actifs sur la machine hébergeant le logiciel CACTI.

Il est recommandé de désactiver SELINUX lors de l'installation. On modifie l'option suivante dans lez fichier "/etc/selinux/config":


SELINUX=disabled

Pour notre article, on suppose que l'adresse IP de la machine qui va héberger CACTI est "192.169.1.100" pour être conforme à la configuration de l'article sur SNMP.


Installation des paquets

On stalle le logiciel CACTI:

dnf install cacti cacti-spine


Problème suite à la migration vers Fedora 40

Suite à la migration vers Fedora 40, on remarque que le logiciel CACTI n'y est plus repris. (en date d'Avril 2024) Ce logiciel avait été installé lors d'une version de Fedora précédente.

Dès ce moment CACTI ne fonctionnait plus.

La raison découle du changement plus restrictifs des privilèges pour le device: /dev/null (644 au lieu de 666). Ce fichier appartient à l'utilisateur "root" or le logiciel s'exécute sous l'utilisateur "apache" par défaut. Ceci impacte principalement l'exécution via le service Cron du fichier "/etc/cron.d/cacti".

La solution consiste à exécuter la commande:

chmod 666 /dev/null

et tout rentre dans l'ordre.


Configuration préalable

Lors de la configuration de CACTI, ce processus vérifie la configuration des services dépendants. Si un aspect est imparfait, il sera noté en rouge. Il faudra le corriger et relancer le service concerné. Il est donc préférable de les ajuster en avance.


Configuration Web

La suite de la configuration se fait via l'interface Web.


Cron

Avant de lancer l'interface Web d'utilisation de Cacti, il convient de revenir momentanément dans la console du serveur Linux.

Car jusqu'à maintenant, on a activé le volet interface Web mais la récolte des informations auprès des équipements à analyser se fait au travers du service Cron. On va éditer le fichier "/etc/cron.d/cacti". Il ne comporte qu'une ligne mise en commentaire. On active ce traitement en éliminant le caractère "#" en début de ligne et on sauve. On remarque que par défaut la récolte se fait toutes les cinq minutes.

Si on avait activé cette ligne avant, les exécutions se seraient accumulées intempestivement.


Interface Web

Enfin on rentre dans l'interface Web via l'URL: http://192.168.1.100/cacti/ Après le login, nous avons l'écran suivant.

LINUX:Cacti.iuw.png

En haut, nous avons plusieurs onglets. On va s'intéresser avant tout sur la "Console" dont le menu de gauche affiche les principales options. Plus tard dès que nous aurons initié la récolte de données sur divers équipements ou machines, nous pourrons passer aux "graphiques". L'onglet "Rapport" peut être intéressant pour recevoir régulièrement certains graphiques par messagerie.


Paramétrage

On commence par la modification des paramètres.


Corrections de graphiques

Je me suis aperçu que le titre de différents graphiques qui m'intéressent n 'est pas assez explicite. Nous allons les modifier avant la création de graphiques.


Préparation

Nous avons comme équipements des machines Linux et Windows et des Switchs Cisco. Les informations qui nous intéressent concernent les processeurs, la mémoire, les disques et le trafic réseau. Avant de lancer cette récolte, nous allons préparer le cadre général.


Modèles

Les équipements et les graphiques sont basés sur des modèles. Pour nous aider, nous allons définir des modèles d'équipements personnels en relation avec le notre.


Gestion

Avant de créer un équipement, nous allons préparer le cadre de gestion dans lequel ils vont être présentés.


Automatisation

Enfin nous allons automatiser la recherche des équipements. L'automatisation permet d'effectuer une bonne partie de l'ajout de nouveaux équipements et de leur paramétrage.

Il nous faut auparavant préparer différents aspects qui vont utiliser les modèles et le cadre de gestion paramétrés ci-dessus.

L'automatisation n'est pas facile à maitriser. Il faut bien la configurer avant de démarrer la découverte des machines. L'étape de la préparation ci-dessus est importante mais il faut aussi paramétrer l'automatisation. On va utiliser dans l'onglet "Console", les différents points du menu de gauche "Automatisation".


Options SNMP

On démarre par le paramétrage des accès SNMP. C'est sur cette base que CACTI va pouvoir explorer les informations SNMP de la machine distante et ainsi d'ajouter automatiquement l'équipement et de créer les requêtes et les graphiques associés.


Règles des équipements

Ces règles permettent de sélectionner et de classer les machines découvertes; les autres seront écartées.


Règles des graphiques

Ces règles permettent d'ajouter des graphiques pour les machines découvertes.


Règles des arbres

Ces règles permettent de placer automatiquement les équipements et les graphiques dans l'arbre créé dans la partie gestion des arbres.


Importation des règles

Le nombre de règles est important. Au lieu de faire ces manipulations manuellement, vous pouvez essayer d'importer ces règles d'automatisation.

Vous pouvez télécharger le fichier suivant:

Télécharger le fichier ZIP

On doit décompresser ce fichier téléchargé:

unzip Automatisation.sql.zip

On exécute ensuite la commande suivante pour effectuer cette importation:

mysql --user=root --password=MOT_DE_PASSE_ROOT_MARIADB -D dbcacti < ./automatisation.sql

Notez que les modèles d'équipements doivent être importés ou créés et que la configuration de l'arbre doit être faite.


Réseaux

Enfin on va paramétrer le réseau qui va être exploré.


Récolte automatique des équipements et de leurs graphiques

Nous avons tout mis en place. Il est temps d'appliquer les automatismes créés afin de récolter les équipements et leurs graphiques.


Création manuelle des équipements et de leurs graphiques

Si nous ne voulons pas passer par l'automatisation, on peut utiliser la création manuelle.


Graphiques

Nous avons rassemblé diverses machines et créé leurs graphiques associés. Il faut attendre en général deux passages de la récolte des informations effectuées par le Cron pour que les graphiques commencent à apparaître.

On clique sur l'onglet "Graphiques" et dans cet écran, sur la première icône au dessus à droite représentant un arbre stylisé. A gauche apparaît l'arbre parmi lequel on repère nos machines et aussi les modèles de graphiques. En choisissant une de ces entrées, on voit apparaître les graphiques associés dans la partie droite. Via la partie du dessus, il est possible d'adapter cette présentation et notamment de sélectionner la tranche de temps à visualiser; il est possible de remonter jusqu'à un an au maximum. Il est aussi possible de zoomer sur une partie du graphique.

LINUX:Cacti.graphique.arbre.png


Création de rapport

Il est possible de s'envoyer par mail un rapport rassemblant divers graphiques choisis.





retour à la Surveillance