Mise à jour Pandora FMS 6.0 à 7.0

Guide rapide de mise à jour Pandora FMS de la version 6.0 à la version 7.0 NG

Introduction

Pandora FMS comprend trois parties:

- Pandora FMS Console

- Pandora FMS Serveur

- Base de données

Dans le cas d’une mise à jour d’une version mineure n’entraînant pas la mise à jour de la base de données, par exemple de 6.1 SP2 à 6.1 SP3, n’effectuez aucune action sur la base de données ; il vous suffit donc de mettre à jour les packages console et serveur.

Pré-mise à jour

Avant de lancer la mise à jour Pandora FMS, il est nécessaire de sauvegarder tous les éléments importants, dans ce cas la base de données, le fichier de configuration du serveur et la console. Dans cet exemple, il faut sauvegarder tous les éléments du répertoire /home/artica/Backup.

[[email protected] ~]# rpm -qa | grep pandora
pandorafms_console_enterprise-6.1SP5-1.noarch
pandorafms_server-6.1SP5-1.noarch
pandorafms_console-6.1SP5-1.noarch
[[email protected] ~]# mkdir /home/artica/Backup
[[email protected] ~]# mysqldump -uroot -ppandora pandora > /home/artica/Backup/backup6.sql
[[email protected] ~]# cp -R /var/www/html/pandora_console/ /home/artica/Backup/
[[email protected] ~]# cp /etc/pandora/pandora_server.conf /home/artica/Backup/

Une fois la sauvegarde terminée, arrêtez le serveur Pandora FMS et le serveur Tentacle:

[[email protected] ~]# /etc/init.d/pandora_server stop
[[email protected] ~]# /etc/init.d/tentacle_serverd stop

Mise à jour de la console

Utilisateurs Pandora FMS Enterprise, avant de procéder à la mise à jour, veuillez demander une nouvelle licence version 7.0 NG au service commercial d'Ártica ST.

Pour la mise à jour de la console, mettez à jour les packages rpm déjà installés. Pour ce faire, utilisez la commande suivante :

[[email protected] tmp]# rpm -U --force pandorafms_console-7.0NG-1.noarch.rpm pandorafms_console_enterprise-7.0NG-1.noarch.rpm 

Dans le cas de la version Pandora FMS OpenSource, il suffit de mettre à jour le paquet pandorafms_console-7.0NG-1.noarch.rpm qui peut être téléchargé à partir de 207.0NG/Final/ Sourceforge.

Pour les utilisateurs de Pandora FMS Enterprise, le package sera téléchargé à partir du site Web d'assistance d'Ártica ST.

Mise à jour de la base de données

Dans le cas d'une version plus grande, telle que lors de la mise à jour de la version 6.0 à la version 7.0 NG, mettez à jour également le schéma de base de données. Les scripts de migration seront ajoutés lors de l'installation de la nouvelle version de la console.

Pour ce faire, exécutez les commandes suivantes :

[[email protected] tmp]# cat /var/www/html/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql | mysql -uroot -ppandora -D pandora

Après avoir exécuté ce script de migration, la base de données est déjà mise à jour et prête à fonctionner correctement dans la version 7.0 NG.

Pour les utilisateurs de la version Pandora FMS OPEN SOURCE uniquement, si l'application du script de migration affiche l'erreur 1060 (ci-dessous), passez au point suivant. Sinon, la base de données sera prête et entièrement mise à jour.

Error:

ERROR 1060(42S21) at line 1256: Duplicate column name 'dynamic_next'

Résolution d'erreur 1060

Les étapes détaillées ci-dessous ne sont nécessaires que dans les cas où une migration de base de données de la version Pandora FMS Open Source aie renvoyé l'erreur suivant :

ERROR 1060(42S21) at line 1256: Duplicate column name 'dynamic_next'

Les utilisateurs de la version Pandora FMS Enterprise doivent ignorer complètement ce point.

Il sera nécessaire d'entrer les requêtes suivantes directement dans la base de données Pandora FMS OpenSource:

ALTER TABLE tmetaconsole_agent ADD COLUMN `cascade_protection_module` int(10) default '0';
ALTER TABLE tmetaconsole_agent ADD COLUMN `alias` VARCHAR(600) not null DEFAULT ;
ALTER TABLE tmetaconsole_agent ADD COLUMN `alias_as_name` int(2) unsigned default '0';

UPDATE `tmetaconsole_agent` SET tmetaconsole_agent.alias = tmetaconsole_agent.nombre;

ALTER TABLE twidget_dashboard MODIFY options LONGTEXT NOT NULL default "";

ALTER TABLE trecon_task ADD `alias_as_name` int(2) unsigned default '0';
ALTER TABLE trecon_task ADD `snmp_enabled` int(2) unsigned default '0';
ALTER TABLE trecon_task ADD `vlan_enabled` int(2) unsigned default '0';

UPDATE twidget_dashboard SET id_widget = (SELECT id FROM twidget WHERE unique_name = 'graph_module_histogram') WHERE id_widget = (SELECT id FROM twidget WHERE unique_name = 'graph_availability');
DELETE FROM twidget WHERE unique_name = 'graph_availability';

ALTER TABLE tbackup ADD COLUMN `filepath` varchar(512) NOT NULL DEFAULT "";

Ceci fait, votre base de données sera entièrement mise à jour vers la version 7.0 NG.

La base de données ne démarre pas après une mise à jour du système avec yum/apt-get

Les méthodes de mise à jour du système peuvent amener yum/apt-get à modifier les autorisations de certains fichiers. Pour corriger ce problème, il suffit de modifier le propriétaire du fichier journal mysqld.log en mysql:mysql, avec l'exécution suivante:

chown mysql:mysql /var/log/mysqld.log

Cette commande peut varier légèrement en fonction de la distribution et de la version, puisque le chemin du fichier journal pourrait être modifié.

Mise à jour du serveur

Une fois que vous avez mis à jour la console et la base de données, la dernière étape est la mise à jour du serveur.

Dans la version Pandora FMS Open Source, la mise à jour sera effectuée comme dans les versions précédentes. Téléchargez le package Sourceforge correspondant et mettez-le à jour avec cette exécution:

[[email protected] tmp]# rpm -U --force pandorafms_server-7.0NG-1.noarch.rpm

Pour la version Pandora FMS Enterprise, dans la version 7.0 NG, le package Enterprise est installé en tant que binaire.

Mettez à jour le package Pandora FMS OpenSource (Sourceforge) et installez le package Pandora FMS Enterprise (Ártica ST):

[[email protected] tmp]# rpm -U --force pandorafms_server-7.0NG-1.noarch.rpm
An existing version of pandora_server.conf is found.
Do not forget to start Tentacle Server daemon if you want to receive
data using tentacle
[[email protected] tmp]# tar -xvzf pandorafms_server_enterprise_7.0NG_x86_64.tar.gz
pandora_server/pandora_server
pandora_server/pandora_server_installer
pandora_server/PandoraFMS-Enterprise/bin/braa
pandora_server/PandoraFMS-Enterprise/bin/pandora_db
pandora_server/PandoraFMS-Enterprise/bin/braa
pandora_server/PandoraFMS-Enterprise/bin/pandora_manage
pandora_server/README
[[email protected] tmp]# cd pandora_server/
[[email protected] pandora_server]# ./pandora_server_installer --install
Pandora FMS Server Enterprise installer for GENERIC. (c) 2014-2016 Artica ST.


>Installing the Pandora FMS Server Enterprise binary to /usr/bin...
>Installing the pandora_exec binary to /usr/bin...
>Copying missing perl libraries to the /usr/lib/perl5/PandoraFMS...
>Copying missing scripts to /usr/share/pandora_server/util...
>Installing the tentacle_server binary to /usr/bin...
>Copying extra encoding definitions to /usr/share/pandora_server/enc...
>Installing the pandora_db binary to /usr/bin...
>Installing the pandora_manage binary to /usr/bin...
>Installing the pandora_revent binary to /usr/bin...
>Installing the pandora_encrypt_db binary to /usr/bin...
>Installing the braa binary to /usr/bin...
>Installing the enterprise recon scripts...
>Executing Pandora Server Open installation script...
>...

Pandora FMS Server Installer 7.0NG 170324 (c) 2008-2016 Artica ST
This program is licensed under GPL2 Terms. http://pandorafms.com  

GENERIC distribution detected
Creating common Pandora FMS directories
uid=500(pandora) gid=0(root) grupos=0(root) 

User pandora does exist, make sure the SSH directories are correct
Giving proper permission to /var/spool/pandora
Creating setup directory in /etc/pandora
cp conf/pandora_server.conf.new /etc/pandora
Installing Pandora Server manual
Copying the daemon script into /etc/init.d
Linking startup script to /etc/rc.d/rc5.d/S90pandora_server
ln: creating symbolic link «/etc/rc.d/rc5.d/S90pandora_server»: Le fichier existe déjà
Creating logrotate.d entry for Pandora FMS log management
Copying the daemon script into /etc/init.d
Linking startup script to /etc/rc.d/rc5.d/S80tentacle_serverd
Installing Tentacle Server manual
Creating Pandora FMS distribution directory in /usr/share/pandora_server
Creating the Cron script to run Pandora DB tool each hour

Now you have to edit your /etc/pandora/pandora_server.conf file to change the database password (default is   pandora) with the one set in include/config.php of your Pandora FMS Console.
After setting password you can start your Pandora FMS Server!!

>...
>Installed Open Pandora Server
>Adding pandora_db to the crontab...

Restart Pandora FMS Server.

Une fois la mise à jour terminée, les packages installés sur le système seront les suivants:

[[email protected] pandora_server]# rpm -qa | grep pandora
pandorafms_console-7.0NG-1.noarch
pandorafms_console_enterprise-7.0NG-1.noarch
pandorafms_server-7.0NG-1.noarch

À ce stade, les utilisateurs Enterprise doivent accéder à la console et entrer la nouvelle licence fournie par le service commercial d'Ártica ST.

Puis redémarrez les processus arrêtés.

[[email protected] ~]# /etc/init.d/pandora_server start

Pandora FMS Server 7.0NG Build 170324 Copyright (c) 2004-2015 ArticaST
This program is OpenSource, licensed under the terms of GPL License version 2.
You can download latest versions and documentation at http://www.pandorafms.org

[*] Backgrounding Pandora FMS Server process.

Pandora Server is now running with PID 8407

[[email protected] ~]# /etc/init.d/tentacle_serverd start

Dans le cas d'avoir la socket MySQL à un point d'installation différent de celui par défaut, le paramètre dbhost avec l'IP 127.0.0.1 doit être modifié dans /etc/pandora/pandora_server.conf du serveur à la place de localhost.

Guide rapide de la migration des fonctionnalités Pandora FMS de la version 6.0 à la version 7.0 NG

Certaines des fonctionnalités les plus importantes qui ont changé dans la version 7.0 NG, ainsi que les actions que vous devrez effectuer, sont les suivantes :

Cartes réseau

Dans la version Pandora FMS 7.0 NG, les cartes réseau ont été mises à jour et améliorées. Par conséquent, lors de la migration, toutes les cartes réseau existantes seront perdues et il sera nécessaire de les recréer. Dans cette nouvelle version, vous pouvez associer l'union entre les différentes interfaces surveillées des appareils.

mig1.jpg

mig2.jpg

Ces unions doivent être configurées via la tâche de reconnaissance du réseau, mais si cela n’a pas été exécuté et si vous voulez établir les connexions manuellement, vous pouvez les configurer de cette manière.

mig3.jpg

Tâches de reconnaissance L2

La tâche Recon standard (Network sweep) ajoute la fonction exécutée par le script personnalisé SNMP L2 Recon. Ce script continuera à fonctionner dans la version 7.0 NG après la migration de la version, bien que les modifications intégrées au mode de Network Sweep pour améliorer la liaison entre les interfaces des différents périphériques réseau ne soient pas incorporées dans le script SNMP L2 Recon.

mig4.jpg

Renommer l'agent

L'une des fonctionnalités les plus demandées par les clients est la possibilité de renommer les agents logiciels installés. Dans les versions précédentes, cette modification devait être effectuée dans la console et dans le fichier de configuration, en supposant que le travail soit excellent si le nombre d'éléments à modifier est élevé.

Pour résoudre ce problème, un nouvel élément appelé Alias a été développé . Désormais, deux éléments vont coexister dans le nom d'un agent, le nom en tant que identifiant unique et l'alias.

mig5.jpg

Dans les installations migrées de la version 6 à la version 7.0 NG, cet élément sera le même:

mig6.jpg

Désormais, si vous voulez modifier le nom visible de l'agent, il suffira de modifier l'alias pour le voir représenté dans toutes les vues :

mig7.jpg

mig8.jpg

Le calcul du nom de l'agent, des agents de la version 7.0 NG créés désormais, est effectué à l'aide d'un ensemble de phrases aléatoires. De cette manière, si vous avez 2 machines avec le même nom d’hôte, vous aurez dans la console Pandora FMS ces deux agents avec des noms d’agent différents et le même alias.

Si vous ne souhaitez pas que cette situation se produise (par exemple, dans l'environnement Pandora FMS, le plugin vmware + plugin est installé sur les ordinateurs virtuels et vous souhaitez que les informations des deux sources se trouvent dans le même agent logique), indiquez à l'agent de se comporter comme dans les versions précédentes et de créer un agent avec le même alias et le même nom d'agent. Pour ce faire, entrez les paramètres suivants dans le fichier de configuration de l'agent logiciel:

#agent_name 5fa9bdc9ad26a4d0e87d0f0d15ed786c3bd487441b2d5e8d7c42b90e8389797d
#agent_name_cmd __rand__

De cette manière, l'agent sera créé avec le nom, comme cela a toujours été le cas, avec les informations qu'il reçoit des deux sources. Bien sûr, vous pouvez modifier l'alias simplement à partir de la console lorsque vous en avez besoin et les informations continueront à apparaître de la même manière.

Si vous mettez à jour l'agent ou les serveurs satellites de la version, vous devez conserver les fichiers de configuration en cours d'utilisation. En cas de suppression, un nouvel agent portant le nom aléatoire sera créé et vous perdrez les informations historiques stockées, sauf si vous entrez les mêmes paramètres ci-dessus dans la nouvelle configuration.

Nouveaux agents Pandora FMS

Les informations que les agents Pandora FMS vont désormais rapporter depuis la version 7.0 NG ont été modifiées et unifiées.

Ce sont les modules qu'ils rapportent:

Agent Linux

mig9.jpg

Agent Windows

mig10.jpg

Tant qu'il ne s'agit pas d'un nouvel agent, après la migration, les agents continueront à avoir la même configuration dans leurs modules et les modules inclus avec l'agent de la version 7 ne seront pas ajoutés automatiquement.

Voici la configuration à ajouter dans chaque cas:

Agent Linux

# Could change depending on linux distro and vmstat command version
module_begin
module_name CPU Load
module_type generic_data
module_interval 1
module_exec vmstat 1 2 | tail -1 | awk '{ print $13 }'
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

# Could change depending on linux distro and vmstat command version
module_begin
module_name CPU IOWait
module_type generic_data
module_interval 1
module_exec vmstat 1 2 | tail -1 | awk '{ print $16 }'
module_min_warning 10
module_min_critical 16
module_unit %
module_description Too much IOwait means IO bottleneck and performance problems. Check also LoadAVG.
module_group System
module_end

# Get load average
module_begin
module_name Load Average
module_type generic_data
module_exec cat /proc/loadavg | cut -d -f1
module_description Average process in CPU (Last minute)
module_group System
module_end

# Basic info about TCP Connection
module_begin
module_name TCP_Connections
module_type generic_data
module_exec netstat -an | grep tcp | grep -v LIST | wc -l
module_description Total number of TCP connections active
module_group Networking
module_end

# This plugin detects all disk and report used space (%)
module_plugin pandora_df_used
# This plugin detects system free memory and used swap (in %)
module_plugin pandora_mem_used
# This plugin will get the network usage (bytes/sec)
module_plugin pandora_netusage

Agent Windows

# CPU Load using WMI 
module_begin
module_name CPU Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_max 100
module_min 0
module_description User CPU Usage (%)
module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_unit %
module_group System
module_end

# Basic info about TCP Connection
module_begin
module_name TCP_Connections
module_type generic_data 
module_exec netstat -an | find /c /v "estab"
module_description Total number of TCP connections active
module_group Networking
module_end

# Example plugin to retrieve drive usage
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df_percent_used.vbs"

# Example plugin to retrieve memory usage
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\mem_percent_used.vbs"

# Example plugin to retrieve network usage
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\network.vbs"

Update Manager / Rolling Release

La version 7.0 NG de Pandora FMS vous permettra d'apporter des modifications à la base de données Pandora FMS grâce aux packages OUM qui seront distribués.

Pour ce faire, entrez dans la section Update Manager Online ou Offline, selon que vous ayez ou non une connexion.

La mise à jour Offline ne sera disponible que dans les versions Pandora FMS Enterprise.

Update Manager Online

Accédez à cette section via Update Manager > Update Manager Online.

mig11.jpg

Si vous avez une nouvelle version à installer, un message comme celui-ci apparaîtra :

mig12.jpg

Cliquez sur l'option “Update to the last version”:

mig13.jpg

En acceptant la mise à jour, le package suivant sera téléchargé et appliqué. Si ce package contient également des modifications dans la base de données, le message suivant apparaît avant d’appliquer les modifications. Vous pouvez ainsi effectuer une sauvegarde préalable de la base de données et vous en assurer que lorsque l'application des nouveaux scripts quelque erreur se produit, vous pouvez récupérer l'état précédent de la base de données.

mig14.jpg

Lors de l'application du MR, les modifications seront effectuées dans la base de données et, une fois le processus terminé, la version appliquée et mise à jour doit apparaître:

mig15.jpg

Update Manager Offline

La mise à jour Offline ne sera disponible que dans les versions Pandora FMS Enterprise.

Accédez à cette section via Update Manager > Update Manager Online.

mig16.jpg

Téléchargez le package dans l'option qui apparaît :

mig17.jpg

Une fois le package appliqué, le message d'application correcte apparaîtra :

mig18.jpg

Si ce package implique des modifications dans la base de données, elles seront appliquées et le message suivant apparaîtra lorsque vous aurez terminé :

mig19.jpg

Pour savoir dans quelle version vous êtes, un nouveau champ a été ajouté au pied de page de la console et indique dans quel MR ou quelle version de la base de données vous êtes. Avec cette amélioration, vous n'aurez plus aucun doute sur les modifications qu’ont été appliquées à la base de données :

mig20.jpg

Nouveaux modèles d'alerte

Ces nouveaux modèles ont été ajoutés aux modèles d'alerte :

mig21.jpg

Ces modèles font partie des nouvelles installations faites de Pandora FMS 7.0 NG, mais ne seront pas appliqués dans les migrations des versions précédentes pour respecter toutes les configurations déjà effectuées.

Nomenclature de supervision d'interface

La nomenclature avec laquelle tous les modules de supervision d'interface réseau sont actuellement créés a été modifiée, afin qu'ils puissent facilement trier leurs informations à partir du nom de leur interface.

Dans les versions précédentes, cette nomenclature était utilisée :

mig22.jpg

Dans la nouvelle version, ce format est utilisé :

mig23.jpg

Pour tirer parti de toutes les fonctionnalités disponibles de Pandora FMS 7.0 NG sur les cartes Enterprise, les graphiques d'interface, etc., il est nécessaire de modifier les noms de modules à l'aide des requêtes SQL suivantes :

UPDATE tagente_module SET nom = CONCAT(REPLACE(nom, 'ifOperStatus_', ), '_ifOperStatus') WHERE nom LIKE('ifOperStatus_%');
UPDATE tagente_module SET nom = CONCAT(REPLACE(nom, 'ifInOctets_', ), '_ifInOctets') WHERE nom LIKE('ifInOctets_%'); 
UPDATE tagente_module SET nom = CONCAT(REPLACE(nom, 'ifOutOctets_', ), '_ifOutOctets') WHERE nom LIKE('ifOutOctets_%');

Pour configurer les modules sur le serveur satellite, ce qui est nécessaire pour modifier les modules manuellement dans le fichier de configuration, les modules doivent être renommés dans les fichiers de configuration par satellite (IMPORTANT: si la configuration à distance est activée, mettez-les à jour sur le serveur et modifiez ou supprimez les fichiers .md5 du serveur, ou renommez-les sur le satellite et laissez-les d'être envoyés à nouveau).

Vous pouvez exécuter à partir du serveur si la configuration à distance est désactivée :

sed -i -e 's/ifOperStatus_\(.*\)/\1_ifOperStatus/' /etc/pandora/conf/*.conf 
sed -i -e 's/ifInOctets_\(.*\)/\1_ifInOctets/' /etc/pandora/conf/*.conf 
sed -i -e 's/ifOutOctets_\(.*\)/\1_ifOutOctets/' /etc/pandora/conf/*.conf
sed -i -e 's/ifOperStatus_\(.*\)/\1_ifOperStatus/' /var/spool/pandora/data_in/conf/*.conf 
sed -i -e 's/ifInOctets_\(.*\)/\1_ifInOctets/' /var/spool/pandora/data_in/conf/*.conf 
sed -i -e 's/ifOutOctets_\(.*\)/\1_ifOutOctets/' /var/spool/pandora/data_in/conf/*.conf

Une fois que ces modifications sont appliquées, appliquez-les dans les conf du serveur satellite. Pour ce faire, modifiez le fichier .md5 de chaque agent. Il suffira de mettre une valeur aléatoire à chacun d'eux.

echo 1 >/var/spool/pandora/data_in/md5/*.md5