Gestión y administración de los servidores

Mantenimiento de los servidores Pandora FMS

Arranque y parada manual de los servidores de Pandora FMS

Tenga en cuenta que si por cuestiones de mantenimiento quiere detener manualmente el servidor de Pandora FMS debe verificar si está en ejecución un Watchdog de servicios. Consulte esta sección para más detalles.

Para arrancar y/o detener de forma manual el servidor de Pandora FMS se ha de ejecutar lo siguiente en una consola shell:

/etc/init.d/pandora_server stop
  • Iniciar el demonio:
/etc/init.d/pandora_server start
  • Reiniciar el demonio:
/etc/init.d/pandora_server restart

Versión NG 756 o posterior.

A partir de la versión NG 756 las instrucciones anteriores también iniciarán el servicio pandora_ha.

Para arrancar y/o parar de forma manual solamente el servidor de Pandora FMS se ha de ejecutar lo siguiente en una consola shell:

  • Parar el demonio:
/etc/init.d/pandora_server stop-server
  • Iniciar el demonio:
/etc/init.d/pandora_server start-server
  • Reiniciar el demonio:
/etc/init.d/pandora_server restart-server

Puede controlar el estado de pandora_ha a través de systemd con:

 systemctl status pandora_ha.service

Gestión de la base de datos

La infraestructura de Pandora FMS prescinde de mantenimiento externo, pero es muy importante purgar y depurar los datos antiguos, así como mantener la base de datos lo más compactada posible. Por ello, existe una herramienta esencial para el buen funcionamiento de Pandora FMS que se encarga de realizar estas tareas.

En la versión Open de Pandora FMS su ubicación es:

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

Versión EnterpriseEn la versión Enterprise de Pandora FMS su ubicación es:

/usr/bin/pandora_db

Esta herramienta, en adelante pandora_db, está incluida en el paquete del servidor de Pandora FMS, por lo que debe ejecutarse desde un sistema donde haya un servidor de Pandora FMS instalado. Si, por ejemplo, se cuenta con dos sistemas, uno de ellos con el servidor y otro con la consola, pandora_db se debe ejecutar únicamente desde el sistema donde se aloja el servidor de Pandora FMS.

La herramienta pandora_db es crucial para el correcto funcionamiento de Pandora FMS, y por ello su ejecución se programa en las tareas cron del sistema con una periodicidad horaria. Su ejecución está configurada dentro del fichero:

/etc/cron.hourly/pandora_db

Esta herramienta realiza todas las tareas de mantenimiento de la base de datos de forma automática:

  • Elimina datos antiguos.
  • Compacta datos existentes, interpolándolos en varios intervalos, de tal modo que los gráficos sean los mismos pero el espacio necesario para almacenarlos sea mucho menor (esta es una de las razones por las que Pandora FMS es capaz de procesar tanta información).
  • Verifica la consistencia de la base de datos para módulos no existentes, o para módulos que no se usen porque no pueden ser iniciados (esos módulos aparecen en la vista táctica como módulos no inicializados).
  • Elimina la información diaria de contacto del agente. Pandora FMS solo necesita menos de 24 horas de datos por agente y si se acumula ralentiza mucho el acceso a la base de datos.
  • Versión EnterpriseEn la versión Enterprise, mueve todos los datos antiguos a la base de datos auxiliar de histórico.

La ejecución de pandora_db se configura en las tareas cron del sistema, y aunque en la instalación del servidor de Pandora FMS se incluye esta ejecución de forma automática, es conveniente revisar que haya sido bien configurada. Para ello el fichero /etc/cron.hourly/pandora_db debe existir y contener lo siguiente.

En la versión Open de Pandora FMS:

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

Versión EnterpriseEn la versión Enterprise de Pandora FMS:

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

También es importante revisar los permisos y propietario del fichero. Los permisos adecuados del fichero serían 755, si son diferentes debe ejecutar:

chmod 755 /etc/cron.hourly/pandora_db

En cuanto al propietario, debe ser usuario raíz o root tanto para el usuario como para el grupo, si son diferentes debe ejecutar:

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

Ejecución manual de la herramienta de mantenimiento

Si se considera necesario, es posible lanzar la ejecución de pandora_db. Ejecute desde una consola o shell lo siguiente.

En la versión Open de Pandora FMS:

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

Versión EnterpriseEn la versión Enterprise de Pandora FMS:

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

Debería mostrar una salida similar a esta:

En sistemas sobrecargados esto puede llevar horas, por lo que se recomienda dejar el proceso en segundo plano.

Para ejecutar manualmente la herramienta de mantenimiento y dejarla en segundo plano ejecute lo siguiente.

En la versión Open de Pandora FMS:

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

Versión EnterpriseEn la versión Enterprise de Pandora FMS:

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

El proceso llevará algún tiempo hasta que se cargue completamente en segundo plano, después podrá cerrar la ventana de la consola o shell y el proceso se seguirá ejecutando.

En algunas instalaciones el directorio de las herramientas puede variar. La ubicación común es:

/usr/share/pandora_server/util/

En las versiones anteriores de Pandora FMS, puede encontrarse en:

/usr/share/pandora/util/

Es importante que se asegure de utilizar la versión actual de la herramienta, y no la de una versión anterior. Si ejecuta el programa sin parámetros, se mostrará la versión de la herramienta en la cabecera del mensaje, y debe coincidir con la versión instalada del servidor.

Respaldo de la base de datos

Es importante recordar que esto solamente realiza un respaldo y/o restauración de la de base de datos, sin incluir otros ficheros, ni tampoco la configuración del servidor.

Mediante el comando mysqldump puede realizar un respaldo (backup) de la base de datos. Esto se hace realizando un volcado completo de la base de datos, tanto de la estructura de las tablas como de los contenidos de las mismas. Este comando tiene varias opciones para la realización de backups, y su uso básico es suficiente para realizar un volcado desde el mismo sistema en el que se aloja la base de datos. Para ello debe indicar el nombre de la base de datos de la que se hará el backup y las credenciales de acceso a la misma:

mysqldump -u <usuario> -p <base_de_datos>

Por ejemplo, para realizar un backup de la base de datos “pandora” (usuario “root” y contraseña “pandora”), y volcar el resultado a un fichero .sql:

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

A partir de un backup realizado de esta forma, puede hacer una restauración completa de la base de datos. Inicie una sesión en MySQL, proceda a crear la base de datos que se restaurará y luego cargue el backup en esa base de datos. Siguiendo con el ejemplo anterior:

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

Finalmente, es necesario establecer de nuevo los permisos del usuario configurado tanto en la Consola Pandora FMS como en el servidor PFMS para que ambos tengan acceso total a la base de datos (sustituya mypassword por su contraseña):

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

Respaldo y recuperación completa de Pandora FMS

Existe un guión o script en la distribución del servidor de Pandora FMS que sirve para hacer un backup y una restauración completa de todo Pandora FMS. Este script esta pensado para hacer copias y restauración en sistemas donde el servidor y la consola se ubican en la misma máquina.


Si en su entorno hay diferentes componentes, deberá utilizar la herramienta con los parámetros mas adecuados para su uso o modificarlos para que se adapten a sus circunstancias.


Este script necesita ejecutarse como root. Usted es el único responsable de dicha clave. Está ubicado en:

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

Al ejecutarlo sin parámetro alguno, mostrará el menú de ayuda:

Este script está diseñado para hacer copias de seguridad y restauración de los siguientes componentes:

  • Fichero(s) de configuración del servidor.
  • Ficheros(s) pendientes de ejecución, así como ficheros de configuración remotos de los agentes.
  • Base de datos, completa.
  • Consola Web, completa.

Opciones de origen y destino de la copia

Este script obtiene las credenciales de acceso a la base de datos directamente de la configuración de la Consola Web. Por ello hay que pasar, con el parámetro -c la ruta completa a la Consola Web. Ese mismo parámetro sirve también para que realice el backup de la propia Consola Web.

El destino del respaldo se especifica con el parámetro -d. En esa ruta dejará el fichero de backup, comprimido, con un nombre similar a pandorafms_backup_xxxxxxx.tar.gz.

De esta forma con el siguiente comando se puede realizar un backup de todo el entorno:

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

Con el parámetro -b se puede indicar que no se realice respaldo de la base de datos:

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

Restauración de la base de datos

Para restaurar la base de datos con el script, tiene que sustituir el parámetro -d por -s, indicando en este caso la ruta al backup realizado:

/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

Esta es la restauración por defecto, sin incluir los ficheros.

Restauración de la base de datos y los ficheros

La opción -f permite restaurar también los ficheros (sobreescribiendo los actuales ) de una copia de seguridad. Dado que sobreescribir los ficheros actuales de configuración puede tener consecuencias serias, es necesario utilizar -f si desea proceder a una recuperación de un backup y desea que restaure todos los ficheros de Pandora FMS (Consola y servidor).

/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

Recuerde restaurar los permisos del usuario a la base de datos con el comando grant.

Restauración solo de ficheros (sin base de datos)

Igual que en el primer caso, puede restaurar únicamente los ficheros, sin incluir la base de datos. Para ello se incluye la opción -b a la ejecución anterior:

/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

Ejemplos de uso

Crear backup

Para crear un respaldo completo de Pandora FMS:

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

Debería devolver una línea como esta:

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

Indicando la ubicación exacta del backup, en este caso
/tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz).

Restaurar backup


Para restaurar el respaldo de forma automática, es necesario contar con una Consola configurada con las credenciales de autenticación sobre la base de datos.


Ejecute:

/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

Debería devolver una salida como esta:

 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
Restaurar backup en caso de pérdida de la Consola

Si ha perdido la Consola de Pandora FMS pero conserva un respaldo generado por esta herramienta, primero tendrá que regenerar el directorio de la consola. Para ello, descomprima manualmente su backup:

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

Esto descomprimirá en /tmp el directorio completo de su Consola Web. En el caso del backup generado en el ejemplo anterior, crea un directorio llamado:

/tmp/var/www/html/pandora_console

Copie el contenido de todo ese directorio a su directorio de publicación web (que puede variar en función de la distribución que use):

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

Luego restaure el backup de manera ordinaria.

Watchdog para los servidores de Pandora FMS

En el repositorio de código existe un pequeño script que se utiliza como Watchdog (“perro guardián”), que realiza una monitorización del propio estado de Pandora FMS.

De esta forma, en caso de caída o falla del servidor se realizará una operación automática de recuperación (intentar levantar Pandora FMS). Si esta acción a su vez falla también, puede avisarse del suceso. Esta herramienta se encuentra en:

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

Script para generación de alertas

El guión pandora_watchdog.sh busca un archivo en /usr/bin/pandora_alert con las instrucciones para generar la alerta. En este fichero se define el código que se ejecutará cuando el proceso Watchdog no pueda levantar o ejecutar el servidor Pandora FMS. En este ejemplo, además de avisar mediante un SMS, detiene el servidor Tentacle:

 #!/bin/bash
 sendsms +34458474843 "El servidor de Pandora FMS ha tenido un problema y no puede iniciarse."
 /etc/init.d/tentacle_serverd stop

Es necesario conceder permisos de ejecución sobre este script:

chmod 750 /usr/bin/pandora_alert

Arranque del Watchdog

Para lanzar el Watchdog y dejarlo funcionando en segundo plano, ejecute lo siguiente:

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

A la hora de iniciar un Watchdog, tenga en cuenta que si por cuestiones de mantenimiento quiere detener manualmente el servidor de Pandora FMS, tendrá que detener también previamente el proceso del Watchdog para evitar que de forma automática intente iniciar el servicio continuamente.

Base de datos de histórico

Versión EnterpriseUna base de datos de histórico es una base de datos a la que se mueven datos antiguos de módulos para mejorar la respuesta de la base de datos principal de Pandora FMS, dejando esos datos accesibles para la consola de forma transparente al ver informes, gráficas de módulos, etcétera.

Configurando una base de datos de histórico

Versión NG 754 y versiones posterioresVersión Enterprise.

Versión EnterprisePara configurar una base de datos de histórico solamente será necesario contar con un nuevo servidor para alojarla (distinto al de la base de datos principal). Una vez tenga ese servidor con MySQL instalado, siga estos pasos:

En el menú escoja ►SetupSetupHistorical database y pulse el botón Enable historical database para acceder a la configuración de conexión (Configure connection target):

Rellene los campos anteriores:

  • Host: Nombre del anfitrión (enlace web o dirección IP) de la base de datos histórica.
  • Port: Puerto de conexión de la base de datos histórica. Valor estándar: 3306.
  • Database name: Nombre de la base de datos histórica. Valor por defecto: pandora.
  • Database user: Usuario de la base de datos histórica. Valor por defecto: pandora.
  • Database password: Contraseña de la base de datos histórica. Esto permitirá conectar a la base de datos histórica. A continuación rellene los parámetros personalizados (Customize settings):

En los campos de este formulario llamados Data days old to keep in active database, Transference block size (Step) y Delay between transferences (seconds) definirán la forma en que se enviarán los datos a la base de datos de histórico, es decir, los datos con más de n días (Data days) de antigüedad se moverán a la base de datos de histórico en bloques de n filas (Step) esperando n segundos (Delay) entre un bloque y el siguiente para evitar sobrecargas.

En esta misma pantalla también se puede decidir si enviar a la base de datos de histórico los eventos con más de n días de antigüedad (Events days old to keep in active database), aunque hay que tener en cuenta que incluir los eventos aumentará considerablemente el ritmo de crecimiento de la base de datos de histórico, y que éstos solo se consultarán a la hora de generar informes, no en la vista de eventos.

Versión EnterpriseLa base de datos de histórico es una característica de la versión Enterprise que utiliza el binario /usr/bin/pandora_db para transferir los datos. Además, debe configurar las opciones para el mantenimiento de la base de datos de histórico.

Base de datos de histórico para la versión NG 753 y anteriores

Estos pasos son solamente para la versión 753 y versiones anteriores. Desde la versión 754 lo único necesario es configurar los valores de conexión explicados en la sección anterior y Pandora FMS se encargará de realizar todo el proceso de instalación y el mantenimiento de la base de datos de histórico.

Versión EnterprisePara configurar una base de datos de histórico será necesario contar con un nuevo servidor para alojarla (distinto al de la base de datos principal). Una vez tenga ese servidor con MySQL instalado, siga estos pasos:

  • Cree la nueva base de datos de histórico:
[root@pandorafms ~]# mysql -u root -p
mysql> create database pandora_history;
  • Cree el esquema de la base de datos de Pandora FMS. Puede utilizar el script llamado /var/www/html/pandora_console/pandoradb.sql el cual está incluído en la Consola de Pandora FMS, cópielo al nuevo servidor de la base de datos de histórico:
cat pandoradb.sql | mysql -u root -p -D pandora_history
  • Conceda permisos a un usuario ( user y password ) el cual se utilizará desde el servidor y la Consola de Pandora FMS para enviar y consultar los datos de histórico:

Para MySQL 5.7:

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

Para MySQL 8:

  • $DBROOTPASS: Contraseña de usuario root en MySQL 8.
  • $DBUSER: Nombre de usuario en MySQL 8.
  • $DBPASS: Contraseña de usuario en MySQL 8.
  • $DBPORT: Puerto de conexión para MySQL 8.
  • $DBHOST: Dirección IP o FQDN del servidor MySQL 8.
  • $DBNAME: Nombre de la base de datos.

Para el uso de estas variables de entorno basta con definirlas antes de ejecutar los grants en la terminal, introduzca lo siguiente:

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

Introduzca en la terminal:

systemctl restart mysql

Introduzca en la 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 datos (BBDD) de histórico puede contener todos los datos del sistema (sin límite), pero si quiere borrar datos o compactarlos de la base de datos de histórico, necesitará usar unos datos específicos en base de datos que tenga en cuenta el script pandora_db al ejecutarse desde el nodo.

Recuerde que todos estos pasos son solamente para la versión 753 y versiones anteriores.

El primer paso es introducir algunos datos en la tabla tconfig de su base de datos de histórico. Utilice estas consultas SQL para crear una configuración mínima, y configurar el comportamiento de pandora_db al ejecutarse contra la base de datos de histórico. Primero, necesita conectar a su base de datos usando la línea de comandos (CLI) de MySQL.

Este es un ejemplo, reemplace los valores conforme a sus criterios (excepto history_db_enabled , déjelo a cero):

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','<actual MR value>');
  • Tenga especial cuidado de sustitur < actual MR value > por el valor actual del MR que tenga actualmente en el servidor Pandora FMS principal.
  • Este ejemplo está escrito para que la base de datos de histórico almacene en total seis meses (180 días) desde la fecha de ejecución (days_purge).
  • Para que compacte datos con más 120 días de antigüedad (days_compact).
  • Si tiene un mes en su base de datos principal, en total tendrá datos para seis meses, ya que el último mes no tiene datos en la base de datos de histórico pero sí en la principal (event_purge y string_purge).
  • Utilice los valores que crea conveniente (excepto en el caso del MR). El límite en el almacenamiento de la BBDD de histórico solo depende del espacio libre de la máquina. Simplemente recuerde que la base de datos de histórico debe estar en un servidor físico independiente de la base de datos principal y de Pandora FMS.

En versiones anteriores a Pandora FMS 753 deberá ejecutar el script pandora_db en el propio servidor histórico usando los datos que se especifican anteriormente en base de datos y adicionalmente crear el fichero de configuración como se explica a continuación, para poder utilizar el script de mantenimiento como si estuviéra usando una base de datos normal.

En versiones anteriores a Pandora FMS 753 se debera crear un fichero pandora_server.conf adicional. Utilice esta versión reducida propuesta para crear el suyo propio, y nómbrelo como /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

Recuerde que todos estos pasos son solamente para la versión 753 y versiones anteriores.

Ahora ya puede ejecutar la herramienta pandora_db contra la configuración de la BBDD de histórico y programarla para su ejecución periódica:

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

Este proceso no debería afectar a la operación principal, ya que está ejecutándose contra una BBDD diferente en un servidor diferente.

Volver al Índice de Documentación Pandora FMS