Pandora: Documentation fr: Gestion et administration serveur

From Pandora FMS Wiki
Jump to: navigation, search

Revenir à l’Index de Documentation Pandora FMS

1 Maintenance de Pandora FMS

1.1 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, et qui est situé dans :

 /usr/share/pandora_server/util/pandora_db.pl

Ou pour Pandora FMS Enterprise version in :

/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.
  • Dans la version Enterprise, 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 la ligne :

"/usr/share/pandora_server/util/pandora_db.pl" "/etc/pandora/pandora_server.conf" >/dev/null 2>&1

Ou en version Pandora FMS Enterprise :

"/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

1.2 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/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf

Ou en version Pandora FMS Enterprise :

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

Il devrait montrer une sortie similaire à celle-ci :


Pandora FMS DB Tool 7.0NG.719 PS180221 Copyright (c) 2004-2015 Artica ST
This program is Free Software, licensed under the terms of GPL License v2
You can download latest versions and documentation at http://www.pandorafms.org

Pandora DB now initialized and running (PURGE=7 days, COMPACT=0 days, STEP=1) .

 [*] Pandora FMS Enterprise module loaded.

Starting at 2018-03-12 12:40:54
12:40:55 [PURGE] Deleting old extended session data.
12:40:55 [PURGE] Deleting old inventory data.
12:40:55 [PURGE] No data in tagente_datos_inventory.
12:40:55 [PURGE] No data to purge in tagente_datos.
12:40:55 [PURGE] Deleting old export data from tserver_export_data

12:40:55 [PURGE] Deleting old session data from tsessions_php

12:40:55 [PURGE] No data in tagente_datos_log4x.
12:40:55 [PURGE] No data in tagente_datos_string.
12:40:55 [PURGE] Deleting old event data at tevento table (More than 7 days).
12:40:55 [PURGE] Deleting old audit data (More than 7 days).
12:40:55 [PURGE] Deleting old SNMP traps (More than 7 days).
12:40:55 [ENTERPRISE] Deleting old policy queue entries (More than 7 days)...
12:40:55 [ENTERPRISE] Deleting invalid service elements...
12:40:55 [PURGE] Deleting old GIS data (More than 7 days).
12:40:55 [PURGE] Deleting pending delete modules (data table).
12:40:55 [PURGE] Deleting pending delete modules (status, module table).
12:40:55 [PURGE] Deleting old access data (More than 24hr)
12:40:55 [PURGE] No agent access data to purge.
12:40:55 [PURGE] Delete contents in report that have some deleted modules.
12:40:55 [PURGE] Delete contents in report that have some deleted agents.
12:40:55 [PURGE] Delete empty contents in report (like SLA or Exception).
12:40:55 [PURGE] Delete autodisabled agents where last contact is bigger than 30 days.
12:40:55 [PURGE] Deleting old netflow data.
12:40:55 [PURGE] Deleting old log data.
12:40:55 [PURGE] Deleting log data older than 90 days.
12:40:55 [PURGE] Deleting old special days.
12:40:55 [CHECKDB] Ignoring not-init data.
12:40:55 [CHECKDB] Checking database consistency (Missing status).
12:40:55 [CHECKDB] Checking database consistency (Missing module).
12:40:55 [CHECKDB] Updating empty aliases.
12:40:55 [INTEGRITY] Cleaning up group stats.
12:40:55 [INTEGRITY] Deleting orphan alerts.
12:40:55 [INTEGRITY] Deleting orphan modules.
[HISTORYDB] Moving data older than 5 days to the history DB...
[HISTORYDB] Moving events older than 5 days to the history DB...
12:40:55 [ENTERPRISE] Moving SNMP modules back to the Enterprise SNMP Server.
12:40:55 [ENTERPRISE] Dynamically updating critical min and max values.
Ending at 2018-03-12 12:40:55

Template warning.png

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 :

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

Ou en version Pandora FMS Enterprise :

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.

Info.png

Dans certaines installations, le répertoire des outils peut varier, le plus courant étant :

/usr/share/pandora_server/util/

Dans les versions précédentes de Pandora FMS, il se trouve dans :

/usr/share/pandora/util/

 


Template warning.png

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.

 


1.3 Sauvegarde de la base de données

Avec la commande mysqldump nous pouvons 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 <usuario> -p <base_de_datos>

Par exemple, pour faire une sauvegarde de la base de données "pandora" et déverser le résultat dans un fichier que nous pourrions exécuter :

mysqldump -u <usuario> -p <base_de_datos>

De cette façon, nous aurions une copie de notre base de données dans le fichier /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 :

[[email protected] ~]# 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 :

grant all privileges on pandora.* to [email protected] identified by 'mypassword';

Template warning.png

Il est important de se rappeler que ceci fait SEULEMENT une sauvegarde/restauration de la base de données, et non d'autres fichiers tels que la configuration du serveur.

 


1.4 Sauvegarde et restauration complète de Pandora FMS

Dans la section précédente, nous avons vu comment faire une sauvegarde complète de la base de données Pandora FMS, et dans cette section, nous verrons les étapes pour faire une sauvegarde complète de toutes les données Pandora FMS et comment les restaurer.

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.

Pour que vous puissiez faire vos tâches, ce script doit s'exécuter en tant que root.

Ce script se trouve à l'adresse :

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

Si nous l'exécutons sans paramètres, cela nous donnera de l'aide :

Pandora FMS Command line backup tool. http://www.pandorafms.org
(c) 2009-2015 Sancho Lerena <[email protected]>, Artica Soluciones Tecnologicas

Syntax:
                -c Path to Pandora FMS console, p.e: /srv/www/htdocs/pandora_console
                -d Destination path for backup file. p.e: /tmp
                -s Source filename for backup restore. p.e: /tmp/pandorafms
                -f Restore also files
                -q Quiet. No output message (used for scripts/cron)
                -b No database backup/restore


Please BE SURE TO USE RESTORE (-s) option. This will OVERWRITE ALL your
PandoraFMS install, including files, configuration and data. Please backup first!

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_2018-03-12-15-16-53.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_2018-03-12-15-16-53.tar.gz -f

Template warning.png

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_2018-03-12-15-16-53.tar.gz -f -b

1.4.1 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_2018-03-12-15-33-13.tar.gz

Indique l'emplacement exact de la sauvegarde (dans ce cas, /tmp//pandorafms_backup_2018-03-12-15-33-13.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_2018-03-12-15-33-13.tar.gz -f

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

Detected Pandora FMS backup at /tmp/pandorafms_backup_2018-03-12-15-33-13.tar.gz, please wait...
Dropping current database
Restoring backup database
Restoring files and configuration
Done. Backup in /tmp/pandorafms_backup_2018-03-12-15-33-13.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_2018-03-12-15-33-13.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.

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

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

  • Arrête le démon :
/etc/init.d/pandora_server stop
  • Initier le démon :
/etc/init.d/pandora_server start
  • Remarrer le démon :
/etc/init.d/pandora_server restart

1.6 Watchdog pour les serveurs Pandora FMS

Dans le dépôt de code il y a un petit script qui est utilisé comme " chien de garde " (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'.

1.6.1 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 de chien de garde 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 "El servidor de Pandora FMS ha tenido un problema y no puede iniciarse."
/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

1.6.2 Démarrer le watchdog

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

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

Template warning.png

Lors du démarrage d'un chien de garde, 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 chien de garde au préalable pour éviter qu'il ne tente automatiquement de démarrer le service en continu.

 


1.7 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.

1.7.1 Configurer une base de données historique

Pour configurer une base de données historique, il sera nécessaire d'avoir un nouveau serveur pour l'héberger (différent de la base principale). Une fois MySQL installé sur ce serveur, il suffit de suivre les étapes suivantes :

  • Créer la nouvelle base de données historique :
[[email protected] ~]# mysql -u root -p
mysql> create database pandora_history;
  • Créer le schéma de la base de données Pandora FMS. Vous pouvez utiliser le script /var/www/html/pandora_console/pandoradb.sql inclus dans la console Pandora FMS et le copier sur le serveur de base de données historique :
cat pandoradb.sql | mysql -u root -p -D pandora_history
  • Accorder des permissions à un utilisateur qui sera utilisé à partir du serveur et de la console Pandora FMS pour envoyer et consulter les données historiques :
GRANT ALL PRIVILEGES ON pandora_history.* TO 'user'@'%' IDENTIFIED BY 'password';
  • Dans la console Pandora FMS, allez dans Configuration > Configuration > Configuration > Base de données historique et configurez l'hôte, le port, la base de données, l'utilisateur et le mot de passe pour accéder à la base de données historique.

History db.png

Les derniers champs de ce formulaire (Days,Step etDelay) définiront la manière dont les données seront envoyées à la base de données historique, c'est-à-dire que les données ayant plus den jours (Days) d'ancienneté seront déplacées dans la base de données historique par blocs de lignes (Step) attendantn secondes (Délai') entre un bloc et le suivant pour éviter la saturation.

Dans ce même écran, vous pouvez également décider d'envoyer ou non des événements de plus de " n " jours dans la base de données historique ("Event days "), bien qu'il faille tenir compte du fait que l'inclusion des événements augmentera considérablement le taux de croissance de la base de données historique et que ceux-ci ne seront consultés que lors de la génération de rapports et non dans la vue événements.

Info.png

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

 


1.7.2 Configurer la gestion de la purge et du compactage de la base de données historique

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 exécuter le script pandora_db en utilisant des données spécifiques dans la base de données et un fichier de configuration false, pour pouvoir utiliser le script de maintenance comme si nous avions une base de données normale.

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');

Dans cet exemple, la base de données historique doit stocker un total de six mois (180 jours) à partir de la date d'exécution, et des données compactes de plus de 4 mois (120 jours). Si vous avez un mois dans votre base de données principale, au total vous aurez des données pour six mois, puisque le dernier mois n'a pas de données dans la base de données historique mais dans la base principale. Vous pouvez mettre ici n'importe quelle valeur, il n'y a pas de limite dans le stockage de la base de données historique au-delà de l'espace libre de la machine. Rappelez-vous simplement que la base de données historique doit se trouver sur un serveur physique indépendant de la base de données principale et de Pandora.

La deuxième étape consiste à créer un fichier supplémentaire pandora_server.conf. Utilisez cette version réduite que nous vous proposons de créer votre propre, et appelez-la /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

Vous pouvez maintenant 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

Les valeurs INSÉRER peuvent également être entrées dans la console comme expliqué dans le lien suivant : Options de maintenance de la base de données

Info.png

Ce processus ne devrait pas affecter l'opération principale car il s'exécute contre une base de données différente sur un serveur différent.

 


Revenir à l’index de documentation Pandora FMS