Pandora: Documentation es: Compartir colecciones NFS

From Pandora FMS Wiki
Jump to: navigation, search

1 Introducción

Pandora FMS Dataserver utiliza los directorios contenidos en la carpeta común /var/spool/pandora/data_in para gestionar la información que recibe y envía a sus agentes.

Ese directorio también debe ser accesible por la consola de Pandora para que las instrucciones que emitamos contra los agentes lleguen a estos. Ya sean configuraciones o colecciones.


Si tenemos varios servidores con varias consolas, en una instalación por defecto, cada consola podrá gestionar los agentes del servidor en el que está alojada.


Supongamos que en nuestra implantación tenemos varios Pandora FMS Datacenter trabajando en un entorno común.

Nfs schema.png

Cada uno de los agentes que gestione cada servidor, se comunicará con el Dataserver que tenga asignado utilizando la carpeta data_in. En un arquitectura de múltiples Dataserver con una única consola, centralizaremos la gestión de los agentes utilizando NFS para compartir este pool de información común.


1.1 Primeros pasos

Instalamos el paquete nfs-utils en todos los equipos que van a compartir las carpetas vía NFS:

yum install -y nfs-utils

1.2 Configurando el servidor NFS

Editamos el archivo /etc/export agregando el siguiente contenido:

/var/spool/pandora/data_in [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)

Donde [IP_CLIENTE] será la dirección IP de la máquina con que se vaya a compartir el elemento. Por ejemplo:

/var/spool/pandora/data_in 192.168.70.10(rw,sync,no_root_squash,no_all_squash)


En caso de que tengamos el firewall levantado en nuestro sistema, abrimos los puertos correspondientes:

# CentOS
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload


Una vez hecho esto, iniciamos los servicios:

# CentOS
service rpcbind start
service nfs-server start
service nfs-lock start
service nfs-idmap start


Configuramos NFS para que arranque en el inicio del sistema:

chkconfig rpcbind on
chkconfig nfs-server on
chkconfig nfs-lock on
chkconfig nfs-idmap on


Para refrescar cualquier cambio en la configuración de /etc/export reiniciar nfs-server


service nfs-server restart

1.3 Configurando los clientes NFS

Primero hacemos un backup del directorio:

mv /var/spool/pandora/data_in /var/spool/pandora/data_in_locale


Observación: Si la máquina no tiene el apache instalado (no es necesario que lo tenga), agregamos a /etc/passwd y /etc/group el usuario apache para que no haya conflictos con los permisos:

echo "apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" >> /etc/passwd
echo "apache:x:48:" >> /etc/group


Creamos un nuevo directorio donde montaremos la carpeta NFS, y ajustamos los permisos

mkdir -p /var/spool/pandora/data_in
chown pandora:apache /var/spool/pandora/data_in
chmod 770 /var/spool/pandora/data_in


Comprobamos que podemos montar con éxito la carpeta remota:

mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in data_in

Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. Por ejemplo:

mount -t nfs 192.168.70.10:/var/spool/pandora/data_in data_in


Si el comando anterior falla, comprobamos:

- El estado de los firewall.

- Si estamos lanzando el comando como root.

- Si la carpeta donde vamos a realizar el montaje existe.


Si todo es correcto hasta aquí, configuramos el sistema para que se monte de manera automática la carpeta al inicio mediante la edición del fichero /etc/fstab:

# Agregamos las siguientes líneas al fichero de configuración /etc/fstab
[IP_SERVIDOR_NFS]:/var/spool/pandora/data_in    /var/spool/pandora/data_in   nfs defaults 0 0

Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS.

1.4 Configurando Tentacle Server para acceso concurrente NFS

Una vez tenemos preparado el entorno, procederemos a configurar los servidores de tentacle de ambos equipos de tal manera que distribuyan los ficheros XML en carpetas separadas para evitar concurrencia a la hora de procesar los ficheros por parte de los Dataserver de ambos servidores Pandora.


Para ello, creamos dos carpetas dentro del directorio /var/spool/pandora/data_in

mkdir /var/spool/pandora/data_in/xml_srv1
mkdir /var/spool/pandora/data_in/xml_srv2


Corregimos los permisos de ambos directorios:

chmod pandora:apache /var/spool/pandora/data_in/xml_srv1
chmod pandora:apache /var/spool/pandora/data_in/xml_srv2


Editamos el valor de TENTACLE_EXT_OPTS en el fichero /etc/init.d/tentacle_serverd para ajustar la carpeta de entrega de los ficheros XML:

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections"

En el servidor número 1 pasa a ser:

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv1"

En el servidor número 2 pasa a ser:

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv2"


Por último editamos el fichero de configuración de ambos servidores de pandora de la siguiente manera:

# Servidor Pandora número 1
# incomingdir:  Defines directory where incoming data packets are stored
# You could set directory relative to base path or absolute, starting with /
incomingdir /var/spool/pandora/data_in/xml_srv1


# Servidor Pandora número 2
# incomingdir:  Defines directory where incoming data packets are stored
# You could set directory relative to base path or absolute, starting with /
incomingdir /var/spool/pandora/data_in/xml_srv2


Después de aplicar todos los cambios indicados, reiniciamos tanto el servicio pandora_server como el servicio tentacle_serverd en ambos servidores.