Pandora: Actualizacion Pandora 6.0 a 7.0
Contents
1 Guía rápida de actualización ISO Pandora FMS de versión 6.0 a 7.0
1.1 Introducción
Pandora FMS se compone de tres partes:
- Pandora FMS Console
- Pandora FMS Server
- Base de datos
En el caso de realizar una actualización de una versión menor que no conlleve la actualización de la base de datos -por ejemplo, de 6.1 SP2 a 6.1 SP3- no debe realizar ninguna acción sobre la base de datos, por lo que solo hay que actualizar los paquetes de la Consola y el Servidor.
1.2 Pre-actualización
Antes de comenzar la actualización de Pandora FMS es necesario realizar un backup de todos los elementos importantes, en este caso la base de datos, el fichero de configuración del servidor y la consola. En este ejemplo vamos a guardar todos los elementos en el directorio /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/
Una vez realizado el backup paramos el servidor de Pandora FMS y el servidor de Tentacle:
[[email protected] ~]# /etc/init.d/pandora_server stop [[email protected] ~]# /etc/init.d/tentacle_serverd stop
1.3 Actualización de la Consola
Los usuarios de Pandora FMS Enterprise, antes de proceder a realizar la actualización, por favor, soliciten una nueva licencia de la versión 7 al departamento comercial de Ártica ST. |
|
Para la actualización de la Consola debemos actualizar los paquetes rpm que ya tenemos instalados. Para ello, utilizamos el siguiente comando:
[[email protected] tmp]# rpm -U --force pandorafms_console-7.0NG-1.noarch.rpm pandorafms_console_enterprise-7.0NG-1.noarch.rpm
En el caso de que se trate de la versión Pandora FMS Open Source, únicamente debemos actualizar el paquete pandorafms_console-7.0NG-1.noarch.rpm que se podrá descargar de Sourceforge.
Para los usuarios de Pandora FMS Enterprise, la descarga del paquete se realizará desde la web de Soporte de Ártica.
1.4 Actualización de la base de datos
En el caso de que se trate de una versión mayor, como ocurre al actualizar desde la versión 6.0 a la 7.0, debemos actualizar también el esquema de la base de datos. Los scripts de migración se añadirán al instalar la nueva versión de la Consola.
Para realizar tal fin debemos ejecutar los siguientes comandos:
[[email protected] tmp]# cat /var/www/html/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql | mysql -uroot -ppandora -D pandora
Tras ejecutar este script de migración ya tenemos la base de datos actualizada y preparada para funcionar correctamente en la versión 7.0
Para los usuarios de la versión Pandora FMS OPEN SOURCE únicamente, si al aplicar el script de migración visualiza el error 1060 (mostrado a continuación), debe pasar al siguiente punto. En caso contrario tendrá lista y totalmente actualizada la base de datos.
Error:
ERROR 1060(42S21) at line 1256: Duplicate column name 'dynamic_next'
1.4.1 Resolución de error 1060
Los pasos detallados a continuación solo son necesarios en los casos en que una migración de base de datos de la versión Pandora FMS Open Source haya devuelto el siguiente error:
ERROR 1060(42S21) at line 1256: Duplicate column name 'dynamic_next'
Los usuarios de la versión Pandora FMS Enterprise deben omitir este punto completamente.
Será necesario introducir las siguientes consultas directamente sobre la base de datos de Pandora FMS Open Source:
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 "";
Hecho esto, ya tendremos nuestra base de datos totalmente actualizada a la versión 7.0
1.4.2 La base de datos no arranca tras realizar una actualización del sistema con yum/apt-get
Los métodos de actualización del sistema pueden ocasionar que yum/apt-get modifiquen los permisos de ciertos ficheros. Para corregir este problema basta con modificar el propietario del fichero de log mysqld.log a mysql:mysql, con la siguiente ejecución:
chown mysql:mysql /var/log/mysqld.log
Este comando puede variar ligeramente dependiendo de la distribución y versión, ya que la ruta al fichero de log podría cambiar.
1.5 Actualización del Servidor
Una vez que tenemos actualizada la consola y la base de datos, el último paso es la actualización del servidor.
En la versión Pandora FMS Open Source la actualización se realizará como en las anteriores versiones. Descargamos el paquete correspondiente de Sourceforge y lo actualizamos con esta ejecución:
[[email protected] tmp]# rpm -U --force pandorafms_server-7.0NG-1.noarch.rpm
Para la versión Pandora FMS Enterprise, en la versión 7.0 el paquete Enterprise se instala como binario.
Actualizamos el paquete Pandora FMS Open Source (Sourceforge) e instalamos el paquete 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. Don't 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»: El fichero ya existe 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.
Cuando termine la actualización, los paquetes instalados en el sistema serán estos:
[[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
En este punto, los usuarios Enterprise deberán acceder a la consola e introducir la nueva licencia facilitada por el departamento comercial de Ártica ST.
Despues reinicie los procesos parados.
[[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
En el caso de tener el socket de mysql en otro punto de instalación diferente al que tiene por defecto, hay que modificar en /etc/pandora/pandora_server.conf del servidor el parámetro dbhost con la ip 127.0.0.1 en vez de localhost. |
|
2 Guía rápida de migración de funcionalidades en Pandora FMS de versión 6.0 a 7.0
Algunas de las funcionalidades más importantes que han cambiado en la versión 7.0 NG, así como las acciones que tendremos que realizar son las siguientes:
2.1 Mapas de Red
En la versión Pandora FMS 7.0 NG se han actualizado y mejorado los mapas de red. Por lo tanto, en la migración se perderán todos los mapas de red existentes previamente y será necesario crearlos de nuevo. En esta nueva versión podemos asociar la unión entre las diferentes interfaces monitorizadas de los dispositivos.
Estas uniones se deberían configurar a través de tarea de reconocimiento de la red, pero en el caso de que no se haya ejecutado la misma y queramos realizar las conexiones a mano, podremos configurarlas de esta forma.
2.2 Tareas de Reconocimiento L2
La tarea de Recon estándar (Network sweep) añade la funcion que realizaba el script personalizado SNMP L2 Recon. Este script seguirá funcionando en la versión 7.0 NG tras migrar de versión, aunque los cambios embebidos dentro del modo Network Sweep para mejorar el enlazado entre interfaces de los diferentes dispositivos de red, no están incorporados dentro del script SNMP L2 Recon.
2.3 Renombrado de agentes
Una de las features más solicitadas por parte de los clientes ha sido la posibilidad de renombrar agentes software instalados. En versiones anteriores este cambio se tenía que realizar en consola y en el fichero de configuración, suponiendo un gran trabajo si el número de elementos a modificar era alto.
Para solventar este problema, hemos desarrollado un nuevo elemento denominado Alias. A partir de ahora van a coexistir dos elementos en el nombrado de un agente, el nombre como identificador unico y el alias.
En instalaciones migradas de la versión 6 a la 7, este elemento va a ser el mismo:
A partir de ahora, si queremos modificar el nombre visible del agente, nos bastará con modificar el Alias para verlo representado en todas las vistas:
El cálculo del nombre del agente, de los agentes de la versión 7.0 NG creados a partir de ahora, se hace a través de un conjunto de sentencias aleatorias. De esta forma, en el caso de tener 2 máquinas con el mismo hostname, tendremos en la consola de Pandora FMS estos dos agentes con diferentes nombres de Agente y el mismo Alias.
En el caso de que no queramos que se dé esta situación (por ejemplo, en el entorno de Pandora FMS disponemos del plugin de vmware + de agente software instalado en las VMs y deseamos tener la información de ambas fuentes en el mismo agente lógico) podemos indicarle al agente que se comporte como en versiones anteriores y que nos cree un agente con el mismo Alias y Nombre del agente. Para ello, debemos introducir los siguientes parámetros en el fichero de configuración del agente software:
#agent_name 5fa9bdc9ad26a4d0e87d0f0d15ed786c3bd487441b2d5e8d7c42b90e8389797d #agent_name_cmd __rand__
De esta forma el agente se creará con el nombre como ha sucedido siempre, con la información que reciba de ambas fuentes. Eso sí, podremos cambiar el alias simplemente desde la consola cuando lo necesitemos y la información seguirá apareciendo igual.
En el caso de que actualicemos el agente o los servidores satélite de versión debemos conservar los ficheros de configuración que se estén usando, ya que, en el caso de borrarlos, se creará un nuevo agente con el nombre aleatorio y perderemos la información de histórico almacenada, salvo que introduzcamos los mismos parámetros anteriores en la nueva configuración.
2.4 Nuevos agentes de Pandora FMS
Se ha cambiado y unificado la información que van a reportar por defecto a partir de ahora los agentes de Pandora FMS en la versión 7.0 NG.
Estos van a ser los módulos que reportarán:
Agente Linux
Agente Windows
Siempre y cuando no se trate de un agente nuevo, tras la migración los agentes seguirán teniendo la misma configuración en sus módulos y no se añadirán automáticamente los módulos incluidos con el agente de la versión 7.
Esta es la configuración a añadir en cada uno de los casos:
Agente 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
Agente 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"
2.5 Update Manager / Rolling Release
La versión 7.0 de Pandora FMS nos proporcionará la capacidad de poder realizar cambios en la base de datos de Pandora FMS gracias a los paquetes OUM que se irán distribuyendo.
Para ello, entraremos a la sección Update Manager Online u Offline, dependiendo si disponemos de conexión o no.
2.5.1 Update Manager Online
Accedemos a esta sección a través de Update Manager > Update Manager Online.
Si disponemos de una nueva versión a instalar nos aparecerá un mensaje como este:
Pinchamos sobre la opción de “Update to the last version”:
Al aceptar la actualización se descargará el siguiente paquete y se aplicará. Si este paquete además dispone de cambios en la base de datos aparecerá el siguiente mensaje antes de aplicar los cambios, para que se pueda realizar con anterioridad un backup de la base de datos y asegurarnos de que, en el caso de que en el proceso de aplicación de los nuevos scripts se produzca algún error, podamos recuperar el estado anterior de la base de datos.
Al aplicar el MR se efectuarán los cambios en la base de datos y una vez finalizado el proceso deberá aparecer la versión aplicada y actualizada:
2.5.2 Update Manager Offline
Accedemos a esta sección a través de Update Manager > Update Manager Online.
Subimos el paquete en la opción que nos aparece:
Una vez aplicado el paquete nos aparecerá el mensaje de que se ha aplicado correctamente:
Si este paquete conlleva cambios en la base de datos, se aplicarán y nos aparecerá el siguiente mensaje cuando finalice:
Para conocer en qué versión nos encontramos se ha añadido al footer de la consola un nuevo campo que nos indica en qué MR o versión de la base de datos nos encontramos; con esta mejora no vamos a tener dudas acerca de los cambios que se han aplicado a la base de datos o no:
2.6 Nuevas plantillas de alerta
Se han añadido dentro de las template de alertas estas nuevas plantillas:
Estas plantillas forman parte de las nuevas instalaciones que se realicen de Pandora FMS 7.0 NG, pero no se aplicarán en migraciones de versiones anteriores para respetar todas las configuraciones que ya se hayan realizado.
2.7 Nomenclatura de monitorización de interfaces
Hemos modificado la nomenclatura con la que actualmente se crean todos los módulos de monitorización de interfaces de red, para que se pueda ordenar fácilmente la información de los mismos a partir del nombre de su interfaz.
En versiones anteriores se utilizando esta nomenclatura:
En la nueva versión se utiliza este formato:
Para aprovechar todas las features de las que dispone Pandora FMS 7.0 NG sobre los mapas Enterprise, gráficas de interfaces, etc., es necesario modificar mediante las siguientes querys SQL los nombres de los módulos:
UPDATE tagente_modulo SET nombre = CONCAT(REPLACE(nombre, 'ifOperStatus_', ), '_ifOperStatus') WHERE nombre LIKE('ifOperStatus_%'); UPDATE tagente_modulo SET nombre = CONCAT(REPLACE(nombre, 'ifInOctets_', ), '_ifInOctets') WHERE nombre LIKE('ifInOctets_%'); UPDATE tagente_modulo SET nombre = CONCAT(REPLACE(nombre, 'ifOutOctets_', ), '_ifOutOctets') WHERE nombre LIKE('ifOutOctets_%');
Para configurar los módulos en el satélite server, que es necesario modificar los módulos manualmente dentro del fichero de configuración, se deberán renombrar los módulos en los ficheros de configuración del satélite (IMPORTANTE: si la configuración remota está activada, habrá que actualizarlos en el servidor y modificar los .md5, o bien borrarlos del servidor, renombrarlos en el satélite y dejar que vuelva a enviarlos).
Puede ejecutar desde el servidor en el caso de tener la configuración remota desactivada:
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
Una vez aplicados estos cambios, necesitamos que se apliquen dentro de los conf del satélite server; para ello hay que modificar el fichero .md5 de cada agente. Nos bastará con poner un valor aleatorio a cada uno de ellos.
echo 1 >/var/spool/pandora/data_in/md5/*.md5