Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
es:documentation:07_technical_annexes:10_share_var_spool_directory_between_several_pandora_servers [2021/04/17 10:56]
0.0.0.0 created
es:documentation:07_technical_annexes:10_share_var_spool_directory_between_several_pandora_servers [2022/06/27 11:33] (actual)
Línea 1: Línea 1:
 +====== Compartición del directorio de intercambio entre varios servidores ======
 +
 +{{indexmenu_n>10}}
 +
 +[[:es:documentation:start|Volver al Índice de Documentación Pandora FMS]]
 +
 +===== 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.
 +
 +{{  :wiki: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.
 +
 +<WRAP center round tip 60%> Se recomienda compartir también la carpeta //pandora_console/attachment// entre las diferentes consolas de Pandora para facilitar la gestión de colecciones. </WRAP>
 +
 +<WRAP center round tip 60%> En entornos HA es obligatorio compartir los directorios //conf//, //md5//, //collections// y //netflow//, localizados en la data_in, y se recomienda compartir la carpeta //pandora_console/attachment//. La propia carpeta //data_in// **no debe compartirse**, a menos que [[:es:documentation:07_technical_annexes:10_share_var_spool_directory_between_several_pandora_servers#configurando_tentacle_server_para_acceso_concurrente|se configure Tentacle para el acceso concurrente]] a los archivos XML. </WRAP>
 +
 +===== Configuración de NFS =====
 +
 +==== Primeros pasos ====
 +
 +Instalamos el paquete //nfs-utils// en** todos los equipos que van a compartir las carpetas **vía NFS:
 +<code>
 +
 +yum install -y nfs-utils
 +
 +</code>
 +
 +==== Configurando el servidor NFS ====
 +
 +<WRAP center round important 60%> Es importante que el servidor NFS sea una **máquina independiente** de los servidores Pandora, pues si uno de ellos se configura como NFS server y hay algún problema que impida que el servidor cliente se conecte, no se podrá acceder a los datos compartidos y Pandora **no funcionará correctamente**. </WRAP>
 +
 +Editamos el archivo ///etc/export// agregando el siguiente contenido:
 +<code>
 +/var/spool/pandora/data_in/conf [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/collections [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/md5 [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/netflow [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
 +/var/www/html/pandora_console/attachment [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
 +
 +</code>
 +
 +Donde //[IP_CLIENTE]// será la dirección IP de la máquina con que se vaya a compartir el elemento. Por ejemplo:
 +<code>
 +/var/spool/pandora/data_in/conf 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/collections 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/md5 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
 +/var/spool/pandora/data_in/netflow 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
 +/var/www/html/pandora_console/attachment 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
 +
 +</code>
 +
 +En caso de que tengamos el firewall levantado en nuestro sistema, abrimos los puertos correspondientes:
 +
 +<code>
 +# CentOS
 +firewall-cmd --permanent --zone=public --add-service=nfs
 +firewall-cmd --reload
 +
 +</code>
 +
 +Una vez hecho esto, iniciamos los servicios:
 +
 +<code>
 + **# CentOS**
 + service rpcbind start
 + service nfs-server start
 + service nfs-lock start
 + service nfs-idmap start
 +
 +</code>
 +
 +Configuramos NFS para que arranque en el inicio del sistema:
 +
 +<code>
 + chkconfig rpcbind on
 + chkconfig nfs-server on
 + chkconfig nfs-lock on
 + chkconfig nfs-idmap on
 +
 +</code>
 +
 +Para refrescar cualquier cambio en la configuración de /etc/export reiniciar nfs-server
 +
 +<code>
 +service nfs-server restart
 +
 +</code>
 +
 +
 +==== Configurando los clientes NFS ====
 +
 +Primero hacemos un backup del directorio:
 +
 +<code>
 +mv /var/spool/pandora/data_in /var/spool/pandora/data_in_locale
 +
 +</code>
 +
 +**__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:
 +<code>
 +echo "apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin">> /etc/passwd
 +echo "apache:x:48:">> /etc/group
 +
 +</code>
 +
 +Ajustamos los permisos de la carpeta en la que vamos a montar las unidades:
 +
 +<code>
 + chown pandora:apache /var/spool/pandora/data_in
 + chmod 770 /var/spool/pandora/data_in
 +
 +</code>
 +
 +Comprobamos que podemos montar con éxito las carpetas remotas:
 +
 +<code>
 +mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/conf /var/spool/pandora/data_in/conf
 +mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/md5 /var/spool/pandora/data_in/md5
 +mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/collections /var/spool/pandora/data_in/collections
 +mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/netflow /var/spool/pandora/data_in/netflow
 +
 +</code>
 +
 +Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. Por ejemplo:
 +
 +<code>
 +mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/conf /var/spool/pandora/data_in/conf
 +mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/md5 /var/spool/pandora/data_in/md5
 +mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/collections /var/spool/pandora/data_in/collections
 +mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/netflow /var/spool/pandora/data_in/netflow
 +
 +</code>
 +
 +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**>
 +
 +<code>
 +# Agregamos las siguientes líneas al fichero de configuración /etc/fstab
 +
 +</code>
 +
 +<code>
 +[IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/conf    /var/spool/pandora/data_in/conf   nfs defaults 0 0
 +[IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/md5    /var/spool/pandora/data_in/md5   nfs defaults 0 0
 +[IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/collections    /var/spool/pandora/data_in/collections   nfs defaults 0 0
 +[IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/netflow    /var/spool/pandora/data_in/netflow    nfs defaults 0 0
 +[IP_SERVIDOR_NFS]:/var/www/html/pandora_console/attachment    /var/www/html/pandora_console/attachment    nfs defaults 0 0
 +
 +</code>
 +
 +Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS.
 +
 +===== Configurando Tentacle Server para acceso concurrente =====
 +
 +En caso de querer almacenar los archivos XML de los agentes en el mismo disco compartido (en lugar de que los gestione localmente cada uno de los servidores), deberemos configurar los servidores de Tentacle de ambos equipos de tal manera que distribuyan los ficheros XML en carpetas separadas. De esta manera, evitaremos problemas 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//:
 +
 +<code>
 + mkdir /var/spool/pandora/data_in/xml_srv1
 + mkdir /var/spool/pandora/data_in/xml_srv2
 +
 +</code>
 +
 +Corregimos los permisos de ambos directorios:
 +
 +<code>
 + chmod pandora:apache /var/spool/pandora/data_in/xml_srv1
 + chmod pandora:apache /var/spool/pandora/data_in/xml_srv2
 +
 +</code>
 +
 +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:
 +
 +<code>
 +TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections"
 +
 +</code>
 +
 +En el servidor número 1 pasa a ser:
 +
 +<code>
 +TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv1"
 +
 +</code>
 +
 +En el servidor número 2 pasa a ser:
 +
 +<code>
 +TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv2"
 +
 +</code>
 +
 +Por último, editamos el fichero de configuración de ambos servidores de pandora de la siguiente manera:
 +
 +<code>
 + # 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
 +
 +</code>
 +
 +<code>
 + # 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
 +
 +</code>
 +
 +Después de aplicar todos los cambios indicados, reiniciamos tanto el servicio pandora_server como el servicio tentacle_serverd en **ambos**  servidores.
 +
 +[[:es:documentation:start|Volver al Índice de Documentación Pandora FMS]]
 +
  
ºº