Command Center (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 el Command Center (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.
Command Center (Metaconsola) :
Hostname: meta.es
, 79.151.30.102 (dirección IP Pública), 192.168.1.10 (dirección IP Privada).
Ruta del Command Center (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 el Command Center (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 el Command Center (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 del Command Center (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 el Command Center (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 el Command Center (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.