Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
es:documentation:07_technical_annexes:10_share_var_spool_directory_between_several_pandora_servers [2021/11/03 11:15] jimmy.olano [Compartición del directorio de intercambio entre varios servidores] |
es:documentation:07_technical_annexes:10_share_var_spool_directory_between_several_pandora_servers [2022/05/27 11:36] (actual) |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Compartición del directorio\\ | + | ====== Compartición del directorio de intercambio entre varios servidores ====== |
- | de intercambio entre\\ | + | |
- | varios servidores ====== | + | |
{{indexmenu_n> | {{indexmenu_n> | ||
[[: | [[: | ||
- | |||
===== Introducción ===== | ===== Introducción ===== | ||
Línea 18: | Línea 15: | ||
Supongamos que en nuestra implantación tenemos varios Pandora FMS Datacenter trabajando en un entorno común. | Supongamos que en nuestra implantación tenemos varios Pandora FMS Datacenter trabajando en un entorno común. | ||
- | {{ wiki:Nfs_schema.png }} | + | {{ :wiki:nfs_schema.png }} |
Cada uno de los agentes que gestione cada servidor, se comunicará con el Dataserver que tenga asignado utilizando la carpeta // | Cada uno de los agentes que gestione cada servidor, se comunicará con el Dataserver que tenga asignado utilizando la carpeta // | ||
- | <WRAP center round tip 60%> | + | <WRAP center round tip 60%> Se recomienda compartir también la carpeta // |
- | Se recomienda compartir también la carpeta // | + | |
- | </ | + | |
==== ¿Qué método utilizar? ==== | ==== ¿Qué método utilizar? ==== | ||
+ | |||
A pesar de que tanto NFS como GlusterFS nos permiten compartir los ficheros que necesitamos, | A pesar de que tanto NFS como GlusterFS nos permiten compartir los ficheros que necesitamos, | ||
- | * Si los datos van a almacenarse en un **servidor externo** al servidor Pandora FMS y éste va a funcionar como cliente del mismo, puede utilizarse **NFS**. | ||
- | * Si los datos van a almacenarse **en los propios servidores** Pandora FMS o se quiere implementar **tolerancia a fallos** a nivel de software, se recomienda usar **GlusterFS**. | ||
- | <WRAP center round tip 60%> | + | * Si los datos van a almacenarse en un **servidor externo** |
- | En entornos HA es obligatorio compartir los directorios //conf//, //md5//, // | + | * Si los datos van a almacenarse **en los propios servidores** |
- | </ | + | |
+ | <WRAP center round tip 60%> En entornos HA es obligatorio compartir los directorios //conf//, //md5//, // | ||
===== Configuración de NFS ===== | ===== Configuración de NFS ===== | ||
+ | |||
==== Primeros pasos ==== | ==== Primeros pasos ==== | ||
- | Instalamos el paquete // | ||
- | | + | Instalamos el paquete // |
+ | < | ||
+ | |||
+ | yum install -y nfs-utils | ||
+ | |||
+ | </ | ||
==== Configurando el servidor NFS ==== | ==== 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**. Si no se puede contar con una servidor independiente, | ||
- | </ | ||
- | Editamos el archivo /// | + | <WRAP center round important 60%> Es importante que el servidor NFS sea una **máquina independiente** |
+ | |||
+ | Editamos el archivo /// | ||
< | < | ||
Línea 54: | Línea 52: | ||
/ | / | ||
/ | / | ||
+ | |||
</ | </ | ||
- | Donde // | + | Donde // |
< | < | ||
Línea 64: | Línea 63: | ||
/ | / | ||
/ | / | ||
+ | |||
</ | </ | ||
Línea 72: | Línea 72: | ||
firewall-cmd --permanent --zone=public --add-service=nfs | firewall-cmd --permanent --zone=public --add-service=nfs | ||
firewall-cmd --reload | firewall-cmd --reload | ||
- | </ | ||
+ | </ | ||
Una vez hecho esto, iniciamos los servicios: | Una vez hecho esto, iniciamos los servicios: | ||
Línea 83: | Línea 83: | ||
| | ||
| | ||
+ | |||
</ | </ | ||
Línea 92: | Línea 93: | ||
| | ||
| | ||
+ | |||
</ | </ | ||
Para refrescar cualquier cambio en la configuración de /etc/export reiniciar nfs-server | Para refrescar cualquier cambio en la configuración de /etc/export reiniciar nfs-server | ||
- | | + | < |
+ | service nfs-server restart | ||
+ | |||
+ | </ | ||
==== Configurando los clientes NFS ==== | ==== Configurando los clientes NFS ==== | ||
+ | |||
Primero hacemos un backup del directorio: | Primero hacemos un backup del directorio: | ||
- | | + | < |
+ | mv / | ||
+ | </ | ||
- | **__Observación__: | + | **__Observación__: |
< | < | ||
- | echo " | + | echo " |
- | echo " | + | echo " |
</ | </ | ||
Línea 116: | Línea 125: | ||
chown pandora: | chown pandora: | ||
chmod 770 / | chmod 770 / | ||
+ | |||
</ | </ | ||
Línea 125: | Línea 135: | ||
mount -t nfs [IP_SERVIDOR_NFS]:/ | mount -t nfs [IP_SERVIDOR_NFS]:/ | ||
mount -t nfs [IP_SERVIDOR_NFS]:/ | mount -t nfs [IP_SERVIDOR_NFS]:/ | ||
+ | |||
</ | </ | ||
- | Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. | + | Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. Por ejemplo: |
- | Por ejemplo: | + | |
< | < | ||
Línea 135: | Línea 145: | ||
mount -t nfs 192.168.70.10:/ | mount -t nfs 192.168.70.10:/ | ||
mount -t nfs 192.168.70.10:/ | mount -t nfs 192.168.70.10:/ | ||
+ | |||
</ | </ | ||
Línea 145: | Línea 156: | ||
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 **/ | 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 **/ | ||
- | | + | < |
+ | # Agregamos las siguientes líneas al fichero de configuración /etc/fstab | ||
+ | |||
+ | </ | ||
< | < | ||
Línea 153: | Línea 167: | ||
[IP_SERVIDOR_NFS]:/ | [IP_SERVIDOR_NFS]:/ | ||
[IP_SERVIDOR_NFS]:/ | [IP_SERVIDOR_NFS]:/ | ||
+ | |||
</ | </ | ||
- | Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. | + | Donde [IP_SERVIDOR_NFS] es la dirección IP del servidor que presta el servicio NFS. |
===== Configuración de GlusterFS ===== | ===== Configuración de GlusterFS ===== | ||
- | La configuración GlusterFS nos permite compartir los directorios clave de Pandora FMS entre los servidores y por tanto tener disponibilidad de los datos cuando haya una caída en una de las máquinas. | + | La configuración GlusterFS nos permite compartir los directorios clave de Pandora FMS entre los servidores y por tanto tener disponibilidad de los datos cuando haya una caída en una de las máquinas. Gracias a este sistema siempre tenemos un recurso activo y podremos acceder a nuestros datos aunque no estén todas las máquinas en funcionamiento. |
- | Gracias a este sistema siempre tenemos un recurso activo y podremos acceder a nuestros datos aunque no estén todas las máquinas en funcionamiento. | + | |
==== Requisitos mínimos ==== | ==== Requisitos mínimos ==== | ||
- | | + | |
- | * **Firewall** desactivado o con las reglas apropiadas activas. | + | |
- | * El **puerto 24009/tcp** debe estar abierto. | + | * **Firewall** |
- | * Nombre y dirección IP de todas las máquinas en el archivo **/ | + | * El **puerto 24009/ |
- | * Creación de **discos adicionales sin particionar** en todos los servidores. | + | * Nombre y dirección IP de todas las máquinas en el archivo **/ |
+ | * Creación de **discos adicionales sin particionar** | ||
==== Instalación de paquetes ==== | ==== Instalación de paquetes ==== | ||
+ | |||
Para instalar GlusterFS, buscamos las versiones disponibles: | Para instalar GlusterFS, buscamos las versiones disponibles: | ||
- | | + | < |
+ | yum search centos-release-gluster | ||
+ | |||
+ | </ | ||
E instalamos la versión estable (LTS) más reciente: | E instalamos la versión estable (LTS) más reciente: | ||
Línea 179: | Línea 198: | ||
yum install centos-release-gluster37 | yum install centos-release-gluster37 | ||
yum install glusterfs glusterfs-cli glusterfs-libs glusterfs-fuse | yum install glusterfs glusterfs-cli glusterfs-libs glusterfs-fuse | ||
+ | |||
</ | </ | ||
==== Creación de las particiones XFS (bricks) ==== | ==== Creación de las particiones XFS (bricks) ==== | ||
- | <WRAP center round tip 60%> | + | |
- | En esta guía utilizaremos dos nodos llamados // | + | <WRAP center round tip 60%> En esta guía utilizaremos dos nodos llamados // |
- | </ | + | |
Creamos un nuevo volumen físico usando el disco /dev/xvdb: | Creamos un nuevo volumen físico usando el disco /dev/xvdb: | ||
Línea 191: | Línea 210: | ||
pvcreate /dev/xvdb | pvcreate /dev/xvdb | ||
| | ||
+ | |||
</ | </ | ||
Línea 198: | Línea 218: | ||
vgcreate vg_gluster /dev/xvdb | vgcreate vg_gluster /dev/xvdb | ||
| | ||
+ | |||
</ | </ | ||
Línea 205: | Línea 226: | ||
lvcreate -L 5G -n brick1 vg_gluster | lvcreate -L 5G -n brick1 vg_gluster | ||
| | ||
+ | |||
</ | </ | ||
De manera alternativa puede indicarse el espacio a asignar como un porcentaje del disco: | De manera alternativa puede indicarse el espacio a asignar como un porcentaje del disco: | ||
- | | + | < |
+ | lvcreate -l 100%FREE -n brick1 vg_gluster | ||
+ | |||
+ | </ | ||
Configuramos el filesystem como XFS: | Configuramos el filesystem como XFS: | ||
- | | + | < |
+ | mkfs.xfs / | ||
+ | |||
+ | </ | ||
Creamos el punto de montaje y montamos el brick XFS: | Creamos el punto de montaje y montamos el brick XFS: | ||
Línea 220: | Línea 248: | ||
mkdir -p / | mkdir -p / | ||
mount / | mount / | ||
+ | |||
</ | </ | ||
Abrimos el archivo /etc/fstab, en el que hay que añadir la siguiente línea: | Abrimos el archivo /etc/fstab, en el que hay que añadir la siguiente línea: | ||
- | | + | < |
+ | / | ||
+ | |||
+ | </ | ||
Habilitamos e iniciamos glusterfsd.service en ambos nodos: | Habilitamos e iniciamos glusterfsd.service en ambos nodos: | ||
- | | + | < |
+ | systemctl enable glusterd.service --now | ||
+ | |||
+ | </ | ||
Desde el primer nodo GlusterFS, conectamos con el segundo y creamos el Trusted Pool (Storage Cluster). | Desde el primer nodo GlusterFS, conectamos con el segundo y creamos el Trusted Pool (Storage Cluster). | ||
Línea 235: | Línea 270: | ||
gluster peer probe gluster2.example.com | gluster peer probe gluster2.example.com | ||
peer probe: success. | peer probe: success. | ||
+ | |||
</ | </ | ||
Línea 244: | Línea 280: | ||
Hostname: gluster2.example.com | Hostname: gluster2.example.com | ||
Uuid: e528dc23-689c-4306-89cd-1d21a2153057 | Uuid: e528dc23-689c-4306-89cd-1d21a2153057 | ||
- | | + | |
| | ||
+ | |||
</ | </ | ||
==== Creación del volumen HA ==== | ==== Creación del volumen HA ==== | ||
+ | |||
A continuación usaremos la partición XFS / | A continuación usaremos la partición XFS / | ||
Primero creamos el subdirectorio en el punto de montaje / | Primero creamos el subdirectorio en el punto de montaje / | ||
- | | + | < |
+ | mkdir / | ||
+ | |||
+ | </ | ||
Crear un volumen replicado GlusterFS: | Crear un volumen replicado GlusterFS: | ||
- | <WRAP center round important 60%> | + | <WRAP center round important 60%> Ejecuta este comando **solamente en uno** de los nodos (// |
- | Ejecuta este comando **solamente en uno** de los nodos (// | + | |
- | </ | + | |
< | < | ||
Línea 265: | Línea 304: | ||
gluster2.example.com:/ | gluster2.example.com:/ | ||
volume create: glustervol1: | volume create: glustervol1: | ||
+ | |||
</ | </ | ||
Línea 270: | Línea 310: | ||
gluster volume start glustervol1 | gluster volume start glustervol1 | ||
volume start: glustervol1: | volume start: glustervol1: | ||
+ | |||
</ | </ | ||
Línea 287: | Línea 328: | ||
Options Reconfigured: | Options Reconfigured: | ||
| | ||
+ | |||
</ | </ | ||
==== Montaje de volúmenes en los clientes ==== | ==== Montaje de volúmenes en los clientes ==== | ||
+ | |||
Instalamos los paquetes de cliente para GlusterFS: | Instalamos los paquetes de cliente para GlusterFS: | ||
- | | + | < |
+ | yum install glusterfs glusterfs-fuse attr -y | ||
+ | |||
+ | </ | ||
Creamos la carpeta de archivos para Pandora: | Creamos la carpeta de archivos para Pandora: | ||
- | | + | < |
+ | mkdir / | ||
- | <WRAP center round tip 60%> | + | </ |
- | La ruta / | + | |
- | </ | + | <WRAP center round tip 60%> La ruta / |
Montamos los volúmenes GlusterFS en el cliente: | Montamos los volúmenes GlusterFS en el cliente: | ||
- | | + | < |
+ | mount -t glusterfs gluster1.example.com:/ | ||
+ | |||
+ | </ | ||
Añadimos la siguiente línea al /etc/fstab: | Añadimos la siguiente línea al /etc/fstab: | ||
- | | + | < |
+ | gluster1.example.com:/ | ||
+ | |||
+ | </ | ||
Una vez montada la partición en / | Una vez montada la partición en / | ||
Línea 314: | Línea 367: | ||
< | < | ||
cd / | cd / | ||
- | mkdir collections md5 conf netflow attachment | + | mkdir collections md5 conf netflow attachment |
</ | </ | ||
Línea 325: | Línea 379: | ||
cp -rp / | cp -rp / | ||
cp -rp / | cp -rp / | ||
+ | |||
</ | </ | ||
Línea 335: | Línea 390: | ||
rm -rf / | rm -rf / | ||
rm -rf / | rm -rf / | ||
+ | |||
</ | </ | ||
Línea 345: | Línea 401: | ||
ln -s / | ln -s / | ||
ln -s / | ln -s / | ||
+ | |||
</ | </ | ||
- | <WRAP center round tip 60%> | + | <WRAP center round tip 60%> En este punto, los dos servidores estarán compartiendo los directorios claves de Pandora, por lo que el proceso está completo. En caso de necesitar ampliar el volumen compartido, puede hacerse como [[:es: |
- | En este punto, los dos servidores estarán compartiendo los directorios claves de Pandora, por lo que el proceso está completo. En caso de necesitar ampliar el volumen compartido, puede hacerse como [[es: | + | |
- | </ | + | |
==== Ampliar volúmenes ==== | ==== Ampliar volúmenes ==== | ||
- | Es posible ampliar el volumen utilizado por GlusterFS sin necesidad de detener el servicio, incrementando el número de //bricks// en un volumen. | + | |
+ | Es posible ampliar el volumen utilizado por GlusterFS sin necesidad de detener el servicio, incrementando el número de // | ||
Para ello hay que crear un nuevo disco, siguiendo el mismo procedimiento que antes: | Para ello hay que crear un nuevo disco, siguiendo el mismo procedimiento que antes: | ||
- | |||
< | < | ||
+ | |||
| | ||
| | ||
+ | |||
</ | </ | ||
Darle formato XFS: | Darle formato XFS: | ||
- | | + | < |
+ | mkfs.xfs / | ||
+ | |||
+ | </ | ||
Crear punto de montaje y montar el nuevo brick: | Crear punto de montaje y montar el nuevo brick: | ||
Línea 371: | Línea 430: | ||
mkdir -p / | mkdir -p / | ||
mount / | mount / | ||
+ | |||
</ | </ | ||
Extender en /etc/fstab: | Extender en /etc/fstab: | ||
- | | + | < |
+ | / | ||
+ | |||
+ | </ | ||
Crear la carpeta para el segundo brick: | Crear la carpeta para el segundo brick: | ||
- | | + | < |
+ | mkdir / | ||
+ | |||
+ | </ | ||
Extender el volumen: | Extender el volumen: | ||
Línea 386: | Línea 452: | ||
| | ||
| | ||
+ | |||
</ | </ | ||
Línea 403: | Línea 470: | ||
Brick3: gluster1.example.com:/ | Brick3: gluster1.example.com:/ | ||
Brick4: gluster2.example.com:/ | Brick4: gluster2.example.com:/ | ||
+ | |||
</ | </ | ||
Comprobar el uso en disco antes del reequilibrado: | Comprobar el uso en disco antes del reequilibrado: | ||
- | | + | < |
+ | df -h | grep brick | ||
+ | |||
+ | </ | ||
Reequilibrar: | Reequilibrar: | ||
+ | < | ||
- | | + | gluster volume rebalance glustervol1 start |
+ | |||
+ | </ | ||
Comprobar el reequilibrado: | Comprobar el reequilibrado: | ||
- | | + | < |
+ | gluster volume rebalance glustervol1 status | ||
+ | |||
+ | </ | ||
Volver a comprobar el uso en disco: | Volver a comprobar el uso en disco: | ||
- | | + | < |
+ | df -h | grep brick | ||
+ | |||
+ | </ | ||
Comprobar los archivos en los bricks: | Comprobar los archivos en los bricks: | ||
+ | < | ||
- | | + | ls -l / |
+ | |||
+ | </ | ||
===== Configurando Tentacle Server para acceso concurrente ===== | ===== 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), | 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), | ||
- | |||
Para ello, creamos dos carpetas dentro del directorio /// | Para ello, creamos dos carpetas dentro del directorio /// | ||
Línea 435: | Línea 517: | ||
mkdir / | mkdir / | ||
mkdir / | mkdir / | ||
+ | |||
</ | </ | ||
Línea 442: | Línea 525: | ||
chmod pandora: | chmod pandora: | ||
chmod pandora: | chmod pandora: | ||
+ | |||
</ | </ | ||
- | <WRAP center round important 60%> | + | <WRAP center round important 60%> En caso de haber seguido la guía de GlusterFS, debe sustituirse /// |
- | En caso de haber seguido la guía de GlusterFS, debe sustituirse /// | + | |
< | < | ||
ln -s / | ln -s / | ||
ln -s / | ln -s / | ||
+ | |||
</ | </ | ||
+ | |||
</ | </ | ||
Editamos el valor de TENTACLE_EXT_OPTS en el fichero / | Editamos el valor de TENTACLE_EXT_OPTS en el fichero / | ||
- | | + | < |
+ | TENTACLE_EXT_OPTS=" | ||
+ | |||
+ | </ | ||
En el servidor número 1 pasa a ser: | En el servidor número 1 pasa a ser: | ||
- | | + | < |
+ | TENTACLE_EXT_OPTS=" | ||
+ | |||
+ | </ | ||
En el servidor número 2 pasa a ser: | En el servidor número 2 pasa a ser: | ||
- | | + | < |
+ | TENTACLE_EXT_OPTS=" | ||
+ | </ | ||
Por último, editamos el fichero de configuración de ambos servidores de pandora de la siguiente manera: | Por último, editamos el fichero de configuración de ambos servidores de pandora de la siguiente manera: | ||
Línea 472: | Línea 566: | ||
# You could set directory relative to base path or absolute, starting with / | # You could set directory relative to base path or absolute, starting with / | ||
| | ||
+ | |||
</ | </ | ||
Línea 479: | Línea 574: | ||
# You could set directory relative to base path or absolute, starting with / | # You could set directory relative to base path or absolute, starting with / | ||
| | ||
+ | |||
</ | </ | ||
- | Después de aplicar todos los cambios indicados, reiniciamos tanto el servicio pandora_server como el servicio tentacle_serverd en **ambos** servidores. | + | Después de aplicar todos los cambios indicados, reiniciamos tanto el servicio pandora_server como el servicio tentacle_serverd en **ambos** |
+ | |||
+ | [[: | ||
- | [[es: | ||