Gestion et administration du serveur

Maintenance des serveurs Pandora FMS

Démarrage/arrêt manuel des serveurs Pandora FMS

Gardez à l'esprit que si par questions de maintenance vous voulez arrêter manuellement le serveur Pandora FMS vous devez vérifier si un Watchdog de services est en cours d'exécution. Consultez cette section pour plus d'informations.

Pour démarrer et/ou arrêter manuellement le serveur Pandora FMS, vous devez exécuter ce qui suit dans une console “shell” :

/etc/init.d/pandora_server stop
  • Initier le démon :
/etc/init.d/pandora_server start
  • Redémarrer le démon :
/etc/init.d/pandora_server restart


Version NG 756 ou ultérieure.

À partir de la version NG 756 les instructions précédentes démarreront également le service pandora_ha.

Pour démarrer et/ou arrêter manuellement uniquement le serveur FMS Pandora, vous devez exécuter ce qui suit dans une console shell :

  • Arrêter le démon :
/etc/init.d/pandora_server stop-server
  • Initier le démon :
/etc/init.d/pandora_server start-server
  • Redémarrer le démon :
/etc/init.d/pandora_server restart-server

Vous pouvez contrôler l'état de pandora_ha à travers systemd avec :

systemctl status pandora_ha.service

Gestion de la base de données

L'infrastructure Pandora FMS n'a pas besoin d'une maintenance externe, mais il est très important de purger et de déboguer les anciennes données, ainsi que de garder la base de données aussi compacte que possible. Pour cette raison, il existe un outil essentiel pour le bon fonctionnement du Pandora FMS qui s'occupe de ces tâches. Vous pouvez le trouver dans:

/usr/bin/pandora_db

Cet outil, désormais pandora_db, est inclus dans le package serveur Pandora FMS, il doit donc être exécuté depuis un système où un serveur Pandora FMS est installé. Si par exemple vous avez deux systèmes, l'un avec le serveur et l'autre avec la console, pandora_db doit être exécuté depuis le système où est hébergé le serveur Pandora FMS.

Pandora_db est un outil crucial pour le bon fonctionnement de Pandora FMS, et donc son exécution est programmée dans les tâches cron du système avec une périodicité en heures. Son exécution est configurée à l'intérieur du fichier :

/etc/cron.hourly/pandora_db

Cet outil exécute automatiquement toutes les tâches de maintenance de la base de données :

  • Efface les anciennes données.
  • Il compacte les données existantes, en les interpolant à plusieurs intervalles, de telle sorte que les graphiques soient identiques mais que l'espace nécessaire pour les stocker soit beaucoup plus petit (c'est une des raisons pour lesquelles Pandora FMS est capable de traiter autant d'informations).
  • Vérifier la cohérence de la base de données pour les modules inexistants, ou pour les modules qui ne sont pas utilisés parce qu'ils ne peuvent pas être initiés (Ces modules apparaissent dans la vue tactique comme modules non initialisés).
  • Il élimine les coordonnées quotidiennes de l'agent. Pandora FMS n'a pas besoin de plus de 24 heures d'historique des contacts par agent, et s'il s'accumule, il ralentit considérablement l'accès à la base de données.
  • Toutes les anciennes données sont transférées dans la base de données historique auxiliaire.

Comme nous l'avons mentionné, l'exécution de pandora_db est configurée dans les tâches cron du système, et bien que dans une installation du serveur Pandora FMS cette exécution soit incluse automatiquement, il est pratique de vérifier qu'il en est ainsi. Pour cela, le fichier /etc/cron.hourly/pandora_db doit exister et contenir ceci:

"/usr/bin/pandora_db" "/etc/pandora/pandora_server.conf">/dev/null 2>&1

Il est également important de vérifier les permissions et le propriétaire du fichier. Les permissions de fichier appropriées seraient 755, qui peuvent être assignées en exécutant :

chmod 755 /etc/cron.hourly/pandora_db

Quant au propriétaire, il doit être root à la fois pour l'utilisateur et le groupe, ce qui peut être réalisé en exécutant :

chown root:root /etc/cron.hourly/pandora_db

Exécution manuelle de l'outil de maintenance

Si jugé nécessaire, il est possible de lancer l'exécution de pandora_db manuellement comme nous l'avons vu dans la section précédente. Il suffit d'exécuter la commande depuis une console shell:

/usr/bin/pandora_db /etc/pandora/pandora_server.conf

Dans les systèmes surchargés, cela peut prendre des heures, il est donc recommandé de laisser le processus en arrière-plan.

Pour exécuter manuellement l'outil de gestion et le laisser en arrière-plan, vous devez l'exécuter ceci:

nohup /usr/bin/pandora_db /etc/pandora/pandora_server.conf

Le processus prendra un certain temps jusqu'à ce qu'il se charge complètement en arrière-plan, puis vous pouvez fermer la fenêtre du shell sans problème, tandis que le processus continuera à s'exécuter.

Il est important de vous assurer que vous utilisez la version actuelle de l'outil, et non une version antérieure. Si vous exécutez le programme sans arguments, la version de l'outil sera affichée dans l'en-tête du message, et doit correspondre à la version installée du serveur.

Sauvegarde de la base de données

Il est important de vous rapeller que ce fail seulement un backup ou restoration de la base de données, sans inclure d'autres fichiers ni la configuration du serveur.

Avec la commande mysqldump vous pouvez faire un dump complet de la base de données, à la fois la structure des tables et leur contenu. Cette commande a plusieurs options pour faire des sauvegardes, bien que nous nous limiterons à voir son utilisation la plus basique, c'est-à-dire, faire un dump depuis le même système dans lequel la base de données est hébergée. Pour cela nous devrons indiquer le nom de la base de données dont la sauvegarde sera faite et les identifiants d'accès à celle-ci :

mysqldump -u <utilisateur> -p <base_de_données>

Par exemple, pour faire une sauvegarde de la base de données “ pandora (utilisateur ” root “ et mot de passe ” pandora “) et déverser le résultat dans un fichier .sql :

mysqldump -u root -p pandora> /backup/pandoradb_backup.sql

A partir d'une sauvegarde ainsi réalisée, nous pouvons effectuer une restauration complète de notre base de données. Le processus est simple, il suffit de se connecter à MySQL, de créer la base de données qui sera restaurée et de charger la sauvegarde dans cette base. En suivant l'exemple précédent, il suffirait d'exécuter ces commandes :

[root@pandorafms ~]# mysql -u root -p
mysql> create database pandora;
mysql> use pandora;
mysql> source /backup/padnoradb_backup.sql

Enfin, il serait nécessaire d'établir à nouveau les permissions de l'utilisateur configuré dans la console Pandora FMS et dans le serveur pour que les deux aient un accès total à la base de données (remplacez mypassword par son mot de passe) :

grant all privileges on pandora.* to pandora@localhost identified by 'mypassword';

Sauvegarde et restauration complète de Pandora FMS

Il y a un script dans la distribution du serveur Pandora FMS qui sert à faire une sauvegarde et une restauration complète de tous les FMS Pandora. Ce script est conçu pour faire des copies et des restaurations dans des systèmes où le serveur et la console sont situés dans la même machine.

S'il y a différents composants dans votre environnement, vous devriez utiliser l'outil avec les paramètres les plus appropriés pour son utilisation ou les modifier pour les adapter à votre situation.

Ce script doit s'exécuter en tant que root. Vous êtes le seul responsable de ladite clé. Il se trouve dans :

/usr/share/pandora_server/util/pandora_backup.sh

Si vous l'exécutez sans paramètres, cela vous montrera le menu de l'aide :

Ce script est conçu pour sauvegarder et restaurer les composants suivants :

  • Fichier(s) de configuration du serveur.
  • Fichiers en attente d'exécution, ainsi que les fichiers de configurationà distance des agents.
  • BBDD complet.
  • Console WEB complète.

Options d'origine et de destination de la copie

Ce script obtient les droits d'accès à la BD directement de la configuration de la console WEB, il est donc nécessaire de passer, avec le paramètre -c le chemin complet vers la console WEB. Le même paramètre est également utilisé pour faire la sauvegarde de la console web elle-même.

La destination de sauvegarde est spécifiée avec le paramètre -d. Dans ce chemin, vous laisserez le fichier de sauvegarde, compressé, avec un nom similaire à pandorafms_backup_xxxxxxx.tar.gz.

De cette façon, avec la commande suivante, vous pouvez faire une sauvegarde de l'ensemble de l'environnement :

/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/

Avec le paramètre -b, il est possible d'indiquer que la base de données n'est pas sauvegardée, laissant l'exécution comme ceci :

 /usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/ -b

Restauration de la base de données

Pour restaurer la base de données avec le script, il suffit de remplacer le paramètre -d par -s, en indiquant dans ce cas le chemin vers la sauvegarde effectuée :

 /usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz

Il s'agit de la restauration par défaut, sans inclure les fichiers.

Restaurer la base de données et les fichiers

L'option -f permet de restaurer aussi les fichiers (en écrasant les fichiers actuels) d'une sauvegarde. Comme l'écrasement des fichiers de configuration actuels peut avoir de graves conséquences, il est nécessaire d'utiliser -f si nous voulons procéder à une restauration de sauvegarde et qu'il faut restaurer tous les fichiers Pandora (Console et serveur).

/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f

Souvenez-vous de restaurer les permissions de l'utilisateur dans la base de données avec la commande grant.

Restauration uniquement des fichiers (sans base de données)

Comme dans le premier cas, nous pouvons restaurer uniquement les fichiers, sans inclure la base de données. Pour cela, l'option -b est incluse dans l'exécution précédente :

/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f -b

Exemples d'utilisation

Créer des sauvegardes

Comme nous l'avons vu, pour créer une sauvegarde complète de Pandora FMS, il suffit de l'exécuter :

/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/

Je devrais renvoyer une ligne comme celle-ci :

Backup completed and placed in /tmp//pandorafms_backup_2021-12-16-16-11-50.tar.gz

Indique l'emplacement exact de la sauvegarde (dans ce cas, /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz).

Restaurer la sauvegarde

Pour restaurer la sauvegarde automatiquement, il est nécessaire d'avoir une console configurée avec les informations d'authentification sur la base de données.

Dans ce cas, il suffit de l'exécuter :

/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f

Une sortie comme celle ci-dessous devrait être renvoyée :

Detected Pandora FMS backup at /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz, please wait...
Dropping current database
Restoring backup database
Restoring files and configuration
Done. Backup in /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz restored
Restaurer la sauvegarde en cas de perte de la console

Si vous avez perdu la console Pandora FMS mais que vous conservez une sauvegarde générée par cet outil, vous devrez d'abord régénérer le répertoire de la console. Pour ce faire, décompressez manuellement votre sauvegarde :

 cd /tmp
 tar zxvf pandorafms_backup_2021-12-16-16-11-50.tar.gz

Ceci décompressera en /tmp le répertoire complet de votre console WEB ; dans le cas de la sauvegarde générée dans l'exemple précédent, il crée un répertoire appelé :

/tmp/var/www/html/pandora_console

Copiez le contenu de l'ensemble de ce répertoire dans votre répertoire de publication Web, qui peut varier en fonction de la distribution que vous utilisez :

cp -R /tmp/var/www/html/pandora_console /var/www/html

Ensuite, restaurez la sauvegarde d'une manière ordinaire.

Watchdog pour les serveurs Pandora FMS

Dans le dépôt de code il y a un petit script qui est utilisé comme Watchdog, qui surveille l'état propre à Pandora FMS.

De cette façon, en cas de panne du serveur, une opération de récupération automatique sera effectuée (essayez d'élever Pandora), et si cela échoue, l'événement peut être averti. Cet outil se trouve dans :

/usr/share/pandora_server/util/pandora_watchdog.sh

Script pour générer des alertes

Le script pandora_watchdog.sh cherche un fichier dans /usr/bin/pandora_alert avec les instructions pour générer l'alerte. Dans ce fichier, il doit être créé en définissant le code qui sera exécuté lorsque le processus Watchdog ne peut pas soulever le serveur Pandora FMS. Dans notre exemple, outre l'avertissement par SMS, il arrête le serveur Tentacle :

#!/bin/bash
sendsms +34458474843 "The Pandora FMS has suffered some issue and it cannot be started."
/etc/init.d/tentacle_serverd stop

Il sera nécessaire d'accorder des permissions d'exécution sur ce script :

chmod 750 /usr/bin/pandora_alert

Démarrer le watchdog

Pour lancer le Watchdog et le laisser tourner en arrière-plan, nous pouvons exécuter ce qui suit :

nohup /usr/share/pandora_server/util/pandora_watchdog.sh &

Lors du démarrage d'un Watchdog, gardez à l'esprit que si pour des raisons de maintenance vous souhaitez arrêter manuellement le serveur Pandora FMS, vous devrez arrêter le processus de Watchdog au préalable pour éviter qu'il ne tente automatiquement de démarrer le service en continu.

Base de données historique

Une base de données historique est une base de données dans laquelle les données des anciens modules sont déplacées pour améliorer la réponse de la base de données principale de Pandora FMS, laissant ces données accessibles à la console de manière transparente lors de la visualisation des rapports, graphiques des modules, etc.

Configurer une base de données historique

Version NG 754 et utérieure.

Pour configurer une base de données historique seulement sera nécessaire de compter avec un nouvel serveur pour la stocker (différent à celui de la base de données principale). Une fois le serveur avec MySQL installé, suivez les étapes suivantes :

Dans le menu, choisissez Setup → Setup → Historical database et cliquez sur Enable historical database pour accèder à la configuration de connexion (Configure connection target):

Remplissez les zones précédentes:

  • Host : Nom de l'hôte (lien web ou adresse IP) de la base de données historique.
  • Port : Port de connexion de la base de données historique. Valeur standard: 3306.
  • Database name : Nom de la base de données historique. Valeur par défaut: pandora.
  • Database user : Utilisateur de la base de données historique. Valeur par défaut: pandora.
  • Database password : Mot de passe de la base de données historique. Ceci permettra de connecter vers la base de données historique. Après remplissez les paramètres personnalisés (Customize settings):

Dans les zones de ce formulaire appelées Data days old to keep in active database, Transference block size (Step) et Delay between transferences (seconds) définiront la manière dont les données seront envoyés à la base de données historique, c'est à dire les données avec plus de n jours (Data days) d'antiquité seront placés dans la base de données historique sous blocs de n files (Step) attendant n secondes (Delay) entre un bloc et le suivant pour éviter des surcharges.

Dans le même écran vous pouvez décider si vous voulez envoyer à la base de données historique les événements avec plus de n jours d'antiquité (Events days old to keep in active database), bien qu'il faut avoir sur compte que l'inclusion d'événements augmentera notablement le rythme de croissance de la base de données historique et que ceux ne seront consultés que lorsqu'il faut générer des rapports, pas dans la vue d'événements.

La base de données historique est une fonctionnalité qui utilise le binaire /usr/bin/pandora_db pour transférer les données.

Base de données historique pour la version NG 753 et précédentes

Ces étapes ne sont que pour la version 753 et précédentes. Depuis la version 754 il est seulement nécessaire de configurer les valeurs de connexion expliqués dans la séction précédente et Pandora FMS sera chargé de faire tout le processus d'installation et la maintenance de la base de données historique.

Versión EnterprisePour configurer une base de données historique il sera nécessaire d'avoir un nouveau serveur pour la stocke (différent à celui de la base de données principale). Une fois vous avez ce serveur avec MySQL installlé, suivez ces étapes :

  • Crééz la nouvelle base de données historique :
[root@pandorafms ~]# mysql -u root -p
mysql> create database pandora_history;
  • Crééz le schéma de la base de données de Pandora FMS. Vous pouvez utiliser le script appellé /var/www/html/pandora_console/pandoradb.sql ce qui est inclu dans la Console Pandora FMS, copiez-le vers le nouveau serveur de la base de données historique :
cat pandoradb.sql | mysql -u root -p -D pandora_history
  • Accordez des autorisations à un utilisateur ( user et password ) qui sera utilisé depuis le serveur et la Console de Pandora FMS pour envoyer et consulter les données historiques :

Pour MySQL 5.7:

GRANT ALL PRIVILEGES ON pandora_history.* TO 'user'@'%' IDENTIFIED BY 'password';

Pour MySQL 8:

  • $DBROOTPASS: Mot de passe de l'utilisateur root de MySQL 8.
  • $DBUSER: Nom d'utilisateur de MySQL 8.
  • $DBPASS: Mot de passe de l'utilisateur de MySQL 8.
  • $DBPORT: Port de connexion de MySQL 8.
  • $DBHOST: Adresse IP ou FQDN du serveur MySQL 8.
  • $DBNAME: Nom de la base de données.

Pour utiliser ces variables d'environnement, il suffit de les définir avant d'exécuter grants dans le terminal, entrez ce qui suit :

env TZ='Europe/Madrid' \
 DBHOST='127.0.0.1' \
 DBNAME='pandora' \
 DBUSER='pandora' \
 DBPASS='pandora' \
 DBPORT='3306' \
 DBROOTPASS='pandora'

Entrez dans le terminal :

systemctl restart mysql

Entrez dans le terminal :

export MYSQL_PWD=$DBROOTPASS
echo "CREATE USER  \"$DBUSER\"@'%' IDENTIFIED BY \"$DBPASS\";" | mysql -uroot -P$DBPORT -h$DBHOST
echo "ALTER USER \"$DBUSER\"@'%' IDENTIFIED WITH mysql_native_password BY \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%'" | mysql -uroot -P$DBPORT -h$DBHOST
 
export MYSQL_PWD=$DBPASS

La base de données historique peut contenir toutes les données du système (sans limite), mais si vous voulez supprimer ou comprimer des données de la base de données historique, vous devrez utiliser des données spécifiques dans la base de données qui aie sur compte le script pandora_db lors de son exécution depuis le noeud.

Rappelez-vous que toutes ces étapes sont seulement pour la version 753 et versions précédentes.

La première étape est d'entrer quelques données dans la table tconfig de votre base de données historique. Utilisez ces requêtes SQL pour créer une configuration minimale et configurer le comportement de pandora_db lors de l'exécution dans la base de données historique. Tout d'abord, vous devez vous connecter à votre base de données à l'aide du CLI MySQL.

Ceci est un exemple, remplacez les valeurs selon vos critères (mais laissez history_db_enabled à zéro) :

 INSERT INTO `tconfig` VALUES (1,'days_purge','180');
 INSERT INTO `tconfig` VALUES (2,'history_db_enabled','0');
 INSERT INTO `tconfig` VALUES (3,'days_compact','120');
 INSERT INTO `tconfig` VALUES (4,'step_compact','1');
 INSERT INTO `tconfig` VALUES (5,'event_purge','180');
 INSERT INTO `tconfig` VALUES (6,'string_purge','180');
 INSERT INTO `tconfig` VALUES (7,'MR','0');
  • Soyez soigneux lorsque vous remplacez < actual MR value > par la valeur actuelle du MR dans le serveur Pandora FMS principal.
  • Cet exemple est écrit pour que la base de données historique stocke au total six mois (180 días) depuis la date d'exécution (days_purge).
  • Pour qu'il compacte des données avec plus de 120 jours d'antiquité (days_compact).
  • Si vous avez un mois dans la base de données principale, au total vous aurez des données pour six mois, puisque le dernier mois n'a pas des données dans la base de données historique mais il y en a dans la principale (event_purge y string_purge).
  • Utilisez les valeurs que vous croyez convenients (except le cas du MR). La limite dans le stockage de la base de données historique seulement depend de l'epace libre de la machine. Tout simplement rappelez-vous que la base de données historique doit se trouver dans un serveur phisyque indépendant de la base de données principale et Pandora FMS.

Dans des versions précédentes à Pandora FMS 753 exécutez le script pandora_db dans le serveur historique lui même en utilisant les donnés déjà specifiés dans la base de données et créer le fichier de configuration comme expliqué ci-dessous afin d'utiliser le script de maintenance comme si vous utilisez une base de données normale.

Dans versions précédentes à Pandora FMS 753 créez un fichier pandora_server.conf additionnel. Utilisez cette version réduite proposée pour créer le votre et nomez-le /etc/pandora/pandora_server_history_db.conf :

dbengine mysql
dbname pandora_history
dbuser user
dbpass password
dbhost 192.168.70.140
log_file /var/log/pandora/pandora_db_history.log

Rappelez-vous que ces étapes sont seulement pour la version 753 et versions précédentes.

Maintenant vous pouvez exécuter l'outil pandora_db contre la configuration de la base de données historique et la programmer pour son exécution périodique :

/usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server_history_db.conf

Ce processus ne devrait pas affecter l'opération principale, puisqu'elle est exécutée contre un base de données différente dans un serveur différent.

Retour à l'index de la documentation de Pandora FMS