Metaconsola con proxy inverso

Este artículo utiliza CentOS 6, sistema operativo que ya cumplió su ciclo de vida útil (End-of-life product).

Introducción

Supongamos que Pandora FMS da servicio a clientes los cuales solamente tienen acceso directo a la Metaconsola que es la única que se encuentra operativa hacia el exterior con su IP pública y no tienen acceso directo a los nodos que hay por debajo de ella. Este sería el escenario planteado en este punto.

Metaconsola:

Hostname: meta.es, 79.151.30.102 (dirección IP Pública), 192.168.1.10 (dirección IP Privada).

Ruta Metaconsola de Pandora FMS:

http://meta.es/pandora_console

URL Pública:

http://meta.es/pandora_console

Nodo 1:

Hostname: node1.es, 192.168.1.11 (dirección IP Privada).

Ruta node1 de Pandora FMS:

http://node1.es/pandora_console

URL Pública:

http://meta.es/node1

Nodo 2:

Hostname: node2.es, 192.168.1.12 (dirección IP Privada).

Ruta node2 de Pandora FMS:

http://node2.es/pandora_console

URL Pública:

http://meta.es/node2

Nodo 3:

Hostname: node3.es, 192.168.1.13 (dirección IP Privada).

Ruta node1 de Pandora FMS:

http://node1.es/pandora_console

URL Pública:

http://meta.es/node1

El cliente necesitará tener acceso a través de la Metaconsola a todos los nodos, pero de forma inicial no puede, ya que estos tienen direcciones IP internas y desde fuera no hay conectividad con las mismas. Para ser capaces de ello se habilita el módulo mod_proxy en el apache de la Metaconsola para que tenga acceso a todos los nodos de forma directa. La configuración indicada es sobre Apache 2.2 en CentOS 6.7.

Configuración Metaconsola

Primero de todo debemos añadir en el fichero /etc/hosts todas las direcciones de los diferentes nodos:

 127.0.0.1   meta.es
 192.168.1.11  node1.es
 192.168.1.12  node2.es
 192.168.1.13  node3.es

Para habilitar el mod_proxy en el servidor de Apache, abrir el fichero de configuración de httpd.conf y comprobar primero que todas estas líneas se encuentran habilitadas:

 LoadModule proxy_module modules/mod_proxy.so
 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
 LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
 LoadModule proxy_http_module modules/mod_proxy_http.so
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 LoadModule proxy_connect_module modules/mod_proxy_connect.so

Una vez esto, se añaden las siguientes líneas al fichero httpd.conf:

 ProxyRequests Off
 ProxyPreserveHost On
 ProxyPass /node1 http://node1.es/pandora_console
 ProxyPassReverse /node1 http://node1.es/pandora_console
 ProxyPass /node2 http://node2.es/pandora_console
 ProxyPassReverse /node2 http://node2.es/pandora_console
 ProxyPass /node3 http://node3.es/pandora_console
 ProxyPassReverse /node3 http://node3.es/pandora_console

Con esto estamos indicando que cuando alguien acceda a

http://meta.es/node1

le va a redirigir automáticamente hacia

http://node1.es/pandora_console

y así con todos los nodos. En el caso de que se tenga habilitado HTTPS habría que añadir esta configuración:

 SSLEngine on
 SSLProxyEngine On
 SSLCertificateFile /etc/httpd/ssl/ca.crt
 SSLCertificateKeyFile /etc/httpd/ssl/ca.key
 ProxyRequests Off
 ProxyPreserveHost On
 ProxyPass /node1 https://node1.es/pandora_console
 ProxyPassReverse /node1 https://node1.es/pandora_console
 ProxyPass /node2 https://node2.es/pandora_console
 ProxyPassReverse /node2 https://node2.es/pandora_console
 ProxyPass /node3 https://node3.es/pandora_console
 ProxyPassReverse /node3 https://node3.es/pandora_console

Siendo los certificados ca.key y ca.crt los que usen los servidores de Apache del nodo1, nodo2 y nodo3.

El último paso que hay que realizar es la configuración de la Metaconsola. El único parámetro que tenemos que realizar de forma específica es:

Console URL: Indicaremos las URL Públicas de cada uno de los nodos que coincidirán con el enlace configurado en el archivo httpd.conf para cada uno de los nodos.

http://meta.es/node1 , http://meta.es/node2 , http://meta.es/node3

Una vez configurada la Metaconsola para que contacte con los nodos el siguiente paso sería configurar cada uno de los nodos.

Variará en cada caso los enlaces si estamos usando HTTPS en vez de HTTP.

Configuración de los nodos

La única configuración especial que hay que añadir a cada uno de los nodos es la de Public URL dentro del Setup de la Consola. Hay que configurar esta URL con la URL pública que indicábamos en cada caso en el escenario que planteamos al principio. Ejemplo en el nodo 1:

Variará en cada caso los enlaces si estamos usando HTTPS en vez de HTTP.

Volver al Índice de Documentación Pandora FMS