Pandora:Documentation es:Arquitectura

From Pandora FMS Wiki

Jump to: navigation, search

Volver a Indice de Documentacion Pandora FMS

Arquitectura de Pandora FMS

Este capítulo describe de forma general, los componentes de Pandora, su relación entre ellos y cómo utilizar la arquitectura de Pandora FMS para abordar diferentes retos en funcion de la topología de su infraestructura.

Pandora FMS es extremadamente modular y descentralizado. El componente más vital y donde se almacena todo es la base de datos (actualmente sólo se soporta en sistemas producción MySQL, pero PostgreSQL y Oracle están soportados también). Todos los componentes de Pandora FMS se pueden replicar y funcionar en un entorno de HA puro (Activo/Pasivo) o en un entorno clusterizado (Activo/Activo con balanceo de carga). También se describen métodos de disponer de un backend SQL en alta disponibilidad.


Arquitectura mejorada.png
Esquema de la arquitectura global de Pandora FMS


Pandora FMS consta de diversos elementos, entre ellos, los que se encargan de recolectar y procesar los datos son los servidores. Los servidores, a su vez, introducen los datos recolectados y procesados en la base de datos. La consola es la parte encargada de mostrar los datos presentes en la base de datos y de interactuar con el usuario final. Los Agentes Software son aplicaciones que corren en los sistemas monitorizados (servidores generalmente), y recolectan la información para enviársela a los servidores de Pandora FMS.

Servidores de Pandora FMS

Los servidores de Pandora FMS son los elementos encargados de realizar las comprobaciones existentes. Ellos las verifican y cambian el estado de las mismas en función de los resultados obtenidos. También son los encargados de disparar las alertas que se establezcan para controlar el estado de los datos.

El servidor de datos de Pandora FMS puede trabajar con alta disponibilidad y/o balanceo de carga. En una arquitectura muy grande, se pueden usar varios servidores de Pandora FMS a la vez, para poder manejar grandes volúmenes de información distribuida por zonas geográficas o funcionales.

Los servidores de Pandora FMS están siempre en funcionamiento y verifican permanentemente si algún elemento tiene algún problema y si está definido como alerta. Si ocurre esto, éste ejecuta la acción definida en la alarma, tal como enviar un SMS, un correo electrónico, o activar la ejecución de un script.

Pueden existir servidores simultáneos, uno de ellos es el servidor principal y el resto de los servidores son servidores esclavos. Aunque exista un servidor esclavo y uno maestro, todos trabajan simultáneamente. La diferencia entre ambos es que cuando un servidor del mismo tipo se cae (p.e. Un network server) el servidor maestro se encarga de procesar todos los datos que tenía asociado el servidor que se ha caído.

El servidor que recibe el fichero de datos del agente, o que procesa la información (si esta es de tipo remoto) es el que dispara las alertas asociadas a esos datos que acaba de procesar.

Pandora FMS gestiona automáticamente el estado de cada servidor, su nivel de carga y otros parámetros. El usuario puede monitorizar el estado de cada servidor, a través de la sección de estado de servidores de la consola web.

En Pandora FMS existen un total de doce servidores diferentes, especializados, encargados de las tareas antes mencionadas. Los diez servidores estan integrados en una única aplicación, llamada de forma genérica "Pandora Server", que es una aplicación multihilo (multiproceso) que ejecuta en subprocesos (hilos) diferentes cada uno de las instancias o servidores especializados de Pandora FMS. A continuación se describe cada uno de los servidores especializados de Pandora FMS:

Servidor de datos

Procesa la información enviada por los agentes Software. Los agentes Software envían los datos XML al servidor por medio de diferentes formas de envío (FTP, SSH, o Tentacle) y el servidor verifica periódicamente si tiene nuevos ficheros de datos esperando a ser procesados. Este proceso utiliza un directorio del disco como "cola" de elementos a procesar.

Se pueden instalar diferentes servidores de datos en diferentes sistemas o en el mismo anfitrión (que serán diferentes servidores virtuales). Varios servidores pueden trabajar juntos para entornos muy extensos y que necesiten aprovechar mejor el hardware (p.e. en casos de entornos con multiples CPU).

El servidor de datos -como el resto de servidores- accede a la base de datos de Pandora FMS, que se comparte con el servidor Web, y que almacena los paquetes de datos procesados. El servidor se ejecuta como demonio o servicio, y procesa los paquetes almacenados en su sistema de ficheros. A pesar de su sencillez y escasa utilización de recursos, el servidor de datos es uno de los elementos críticos del sistema, ya que procesa toda la información de los agentes y genera alertas y eventos del sistema conforme a esos datos. El servidor de datos sólo trabaja con los datos que llegan en XML desde los agentes software y no realiza ningún tipo de comprobación remota.

Servidor de red

Ejecuta tareas de monitorización remota a través de la red: pruebas ICMP (Ping, tiempos de latencia), peticiones TCP y peticiones SNMP. Cuando se asigna un agente a un servidor, se está asignando a un servidor de red, no a un servidor de datos, así que es muy importante que las máquinas que ejecutan los servidores de red tengan «visibilidad de red» para poder ejecutar las tareas de monitorizacion de red asignadas a los mismos. Es decir, que si va a hacer pings a sistemas de una red determinada, el servidor de red pueda llegar a esa red:

Por ejemplo, si se crea un módulo para hacer una comprobación de ping a 192.168.1.1 y se asigna este agente/módulo a un servidor en una red 192.168.2.0/24 sin acceso a la red 192.168.1.0/24 siempre devolverá DOWN ya que no puede contactar con ella.


Pandora 1.3 Network&DataServer Arch.png

Servidor de SNMP (también conocida como Consola de Traps SNMP)

Este servidor utiliza el demonio standard del sistema de recoleccion de traps, snmptrapd. Este demonio recibe traps SNMP y el servidor SNMP de Pandora FMS los procesa y almacena en la base de datos. Cuando los procesa y analiza, también puede lanzar las alertas asignadas en la consola SNMP de la consola de Pandora FMS.

Servidor de WMI

WMI es un standard de Microsoft para obtener información del sistema operativo y aplicaciones de entornos Microsoft Windows. Pandora FMS tiene un servidor dedicado para realizar llamadas nativas WMI de forma centralizada. Con él se pueden recoger datos de sistemas Windows de forma remota, sin agente.

Servidor de reconocimiento

Utilizado para explorar regularmente la red y detectar nuevos sistemas en funcionamiento. El servidor recon también puede aplicar una plantilla de monitorización para aquellos sistemas detectados recientemente y aplicar automáticamente los módulos por defecto definidos en esa plantilla para que se puedan utilizar para monitorizar inmediatamente el nuevo sistema. Utilizando las aplicaciones de sistema nmap, xprobe y traceroute es capaz además de identificar sistemas por su Sistema Operativo, en función de los puertos que tenga abiertos y establecer la topología de red en funcion de los sistemas que ya conoce.

Servidor de complementos (Plugins)

Realiza comprobaciones complejas de usuario desarrolladas en cualquier lenguaje e integrados en la interfaz de Pandora FMS y gestionados de forma centralizada. Esto permite a un usuario avanzado definir sus propias pruebas complejas, desarrolladas por el mismo, e integrarlas en la aplicación para que se puedan usar de forma cómoda y centralizada desde Pandora FMS.

Servidor de predicción

Es un pequeño componente de Inteligencia Artificial que implementa de forma estadística una previsión de datos en base a datos pasados —con una profundidad de hasta 30 días en cuatro referencias temporales— y que permite predecir los valores de un dato con un intervalo de 10-15 minutos, y conocer si un dato en el momento actual es anómalo respecto a su historial. Básicamente usted tendrá que construir una baseline dinámica con un perfil semanal.

Este servidor, también gestiona el cálculo de la monitorización de servicios (BPM) a partir de la versión 5.0 de Pandora FMS.

Servidor de pruebas WEB (Goliat)

(Sólo versión Enterprise)

El servidor de pruebas WEB sirve para hacer pruebas de carga. Realiza comprobaciones WEB sintéticas, esto es, comprobaciones web completas, desde el proceso de identificación de un usuario, paso de parámetros por formulario, comprobación de contenidos, navegación por menús, etc. Se utiliza para pruebas de comprobación (funciona, no funciona) y para obtener tiempos de latencia (en segundos) de experiencia completa de navegación (incluyendo recursos asociados a la página (imágenes, textos completos, etc).

Servidor de exportación

(Sólo versión Enterprise)

El servidor de exportación de Pandora FMS permite exportar los datos de un dispositivo monitorizado de una instalación de Pandora FMS a otra, y así tener replicados los datos. Esto es especialmente útil cuando se tiene una gran despliegue, con varias instalaciones de Pandora FMS, y se quiere tener cierta información crítica centralizada en uno solo.

Servidor de inventario

(Sólo versión Enterprise)

El servidor de inventario obtiene y visualiza información de inventario de los sistemas: Software instalado, parches instalados, chips de memoria en el hardware, discos duros, servicios corriendo en el sistema, etc. Puede obtener esta información tanto de forma remota como de forma local, a través de los Agentes Software.


Servidor correlador de eventos

(Sólo versión Enterprise)

Este servidor especial sirve para correlar eventos y generar alertas. Es un servidor especial que no "monitoriza", y que al igual que los otros, se puede especificar en la configuración para su arranque o no. Este servidor al contrario que el resto no dispone de configuración de hilos ni de alta disponibilidad.

Servidor de red enterprise SNMP e ICMP

(Sólo versión Enterprise)

Son dos servidores adicionales, sólo de la versión enterprise que utilizan estrategias avanzadas para procesar peticiones ICMP (ping) y SNMP (polling) de forma que producen un rendimiento muy superior a la version opensource, a cambio de unos requisitos bastante delicados (especialmente SNMP), ya que trabajan con OID's previamente validadas por el servidor open.

Utilizan herramientas binarias de bajo nivel que acceder al sistema TCP/IP del servidor de una forma mucho más eficiente, realizando sondeos en bloque.


Servidor Satélite

(Sólo versión Enterprise)

Es un servidor muy especial, una especie de híbrido entre un agente y un servidor. Permite explorar y detectar nuevos sistemas, monitorizar de forma remota con ICMP y SNMP de alta velocidad (incluso más rápido que el servidor enterprise SNMP/ICMP), ejecuta plugins remotos y en el futuro también obtendrá información de inventario remota de los sistemas. No requiere conexión contra la BBDD y a partir de la version 6.0 se puede gestionar de forma centralizada. Envía los datos de monitorización como XMLs a través de una conexión tentacle.

Más adelante hay un capítulo específico dedicado a la monitorización de Topologías distribuidas con Satellite Server

Consola web de Pandora FMS

Es la interfaz de usuario de Pandora FMS. Esta consola de administración y operación permite a diferentes usuarios, con diferentes privilegios, controlar el estado de los agentes, ver información estadística, generar gráficas y tablas de datos así como gestionar incidencias con su sistema integrado. También es capaz de generar informes y definir de forma centralizada nuevos módulos, agentes, alertas y crear otros usuarios y perfiles.

La consola web está programada en PHP y no requiere por parte del usuario final la instalación de ningún software adicional: ni Java, ni ActiveX. No obstante, las gráficas también están disponibles en FLASH y para poder verlas en este formato será necesario el complemento de FLASH para su navegador; puede accederse desde cualquier plataforma moderna que soporte HTML y CSS. Se recomienda Firefox 2.x o IE 7.x. La experiencia de usuario con navegadores como IE6 es muy pobre, y se pierden la mayoría de las ventajas implementadas en la Consola WEB de Pandora FMS 3.0

La consola web a su vez, puede ejecutarse en múltiples servidores, esto es, podemos tener tantas consolas web como queramos, tanto para repartir carga como para facilitar el acceso por problemas logísticos (grandes redes, numerosos grupos de usuarios diferentes, diferencias geográficas, diferencias administrativas, etc.). Su único requisito es poder acceder al contenedor de datos donde Pandora FMS almacena todo: la base de datos y en el caso de la versión Enterprise, acceder al repositorio de configuraciones de los agentes de forma sincronizada (via NFS).

Base de datos de Pandora FMS

Pandora FMS utiliza una base de datos MySQL. Pandora FMS mantiene una base de datos asíncrona con todos los datos recibidos, realizando una cohesión temporal de todo lo que recibe y normalizando todos los datos de las diversas fuentes origen. Cada módulo de datos de cada agente genera una entrada de datos para cada paquete, lo que supone que un sistema real de producción puede tener del orden de diez millones de «datos», o átomos de información.


Arquitectu pando.png
La base de datos es el núcleo de Pandora FMS


Estos datos se gestionan automáticamente desde Pandora FMS, llevando a cabo un mantenimiento periódico y automático de la base de datos, esto permite que Pandora FMS no requiera ningún tipo de administración de base de datos ni proceso manual asistido por un operador o administrador. Esto se realiza por medio de una purga periódica de los datos pasada una fecha (90 días de forma predeterminada), así como una compactación de los datos que tienen más de un número determinado y configurable de días de antigüedad (30 días de forma predeterminada).

Agentes Software de Pandora FMS

Cuando nos referimos a un agente en Pandora FMS, podemos hacer referencia a tres piezas fundamentales en la recolección de datos:

  • Agente
  • Agente Software (Aplicación software, Pandora FMS Agent, que corre en una máquina).
  • Agente Físicos (hardware)

Agente

El agente de Pandora FMS, "a secas" es simplemente un elemento organizativo creado con la consola web de Pandora FMS y que está asociado a un grupo de módulos (o elementos individuales de monitorización). Además, este agente puede tener (opcionalmente) asociadas una o más direcciónes IP.

El agente puede tener asociados módulos remotos, obtenidos a través de servidores de Red, WMI, Plugin, etc.

  • Comprobaciones de si la máquina está conectada o en línea (PING)
  • Comprobación de si un puerto cualquiera está abierto o cerrado
  • Comprobación de si una web hospedada en el equipo, en un puerto específico, responde correctamente.
  • Comprobación de si una web hospedada en el equipo, en un puerto específico, tiene el contenido deseado.
  • Comprobaciones hardware a través de SNMP (conociendo las MIB).
  • Comprobación del tiempo de latencia entre el equipo y los servidores de Pandora FMS.

El agente también puede tener asociados módulos de tipo "local", que son los que están definidos en la configuración del agente Software y que también se deben definir en el "Agente" de la consola WEB. Cuando un paquete de datos llega por primera vez desde el agente, si este está en modo "autoaprendizaje" (viene así por defecto), se crean estos modulos "locales" de forma automática en la consola WEB.

Por tanto, un Agente puede contener módulos de tipo remoto o de tipo local. Los módulos de tipo remoto son ejecutados por aquellos servidores que obtienen información de forma remota (incluido el prediction), y los módulos de tipo local son obtenidos por el servidor de datos (Data Server).

Agente Software


Un agente software, instalado en una máquina remota, diferente por completo a la del servidor o la consola WEB de Pandora. El agente software obtiene información "local" de la máquina donde se está ejecutando, mediante comandos que obtienen información del sistema.

Los agentes de Pandora FMS se pueden desarrollar prácticamente en cualquier lenguaje, siempre que cumpla la API de intercambio de datos con el servidor de datos Pandora FMS (definido por un XML de intercambio de datos). Los agentes Windows se desarrollan en un entorno libre para C++ (Mingw) y emplean la misma interfaz y modularidad que los agentes UNIX, aunque con bastantes particularidades propias.



Ilustración: Recolección de datos en Pandora FMS

RecoleDatospandora.png

Estos scripts están construidos a partir de submódulos que recolectan una «porción» de información cada uno.

Cada agente recolecta varias «porciones» de información. Ésta se organiza en un único paquete y se almacena en un solo fichero que llamaremos paquete de datos.

El proceso de copia del paquete de datos del agente al servidor se realiza de forma regular (Síncrona), es decir, cada x tiempo —definido en el agente— que se puede modificar para no llenar la base de datos con información superflua o para no cargar la red ni resultar perjudicial para el rendimiento del sistema.

El intervalo predeterminado es de 300 (segundos), lo que equivale a cinco minutos. Valores menores de 100 (segundos) no se recomiendan ya que puede afectar al rendimiento del sistema anfitrión además de cargar excesivamente la base de datos y el sistema de proceso central.

Hay que recordar que Pandora FMS no es un sistema de tiempo real, es un sistema de monitorización general de aplicaciones y sistemas en entornos cuya criticidad no sea el tiempo real. No obstante si se puede adaptar Pandora FMS para que opere en entornos de tiempos de respuesta en torno a 3-5 segundos.


Ilustración: Esquema lógico de un agente / agente fisico

PandoraAgent logical schema.png



Las transferencias de paquetes se hacen a través del protocolo Tentacle, si bien se pueden transferir usando SSH o FTP.

Tanto con SSH como con Tentacle se puede hacer que el proceso sea totalmente seguro ya que no viajan contraseñas por la red ni datos confidenciales sin cifrar, se asegura la confidencialidad, integridad y autenticación de las conexiones entre el agente y el servidor. En la documentación sobre la instalación y configuración de los Agentes y el Servidor se detalla el proceso de generación de claves para poder hacer la transferencia SCP (SSH) de forma automática y también mediante el protocolo Tentacle.

También se puede realizar la transferencia mediante FTP o cualquier otro sistema de transferencia de ficheros, aunque se eligió Tentacle por la seguridad que ofrece este sistema, por su facilidad para el usuario y por sus múltiples opciones.

Consultar los anexos a la documentación para configurar transferencias a través de otros protocolos.

Los agentes de Pandora FMS están pensados para su ejecución en el agente desde el cual recolectan datos, aunque los agentes pueden recolectar información de maquinas accesibles desde el anfitrión donde están instaladas, es lo que se llama Agente Satélite

También se puede configurar una máquina para que tenga varios agentes Pandora FMS simultáneamente. Este es un caso poco habitual.Ocurre cuando por ejemplo, tenemos un agente software y un agente satélite. El agente software estándar, monitoriza la máquina donde se ejecuta, mientras que los agentes satélites que tenga instalados (puede tener varios), monitorizan sistemas remotos, mediante Telnet, SNMP u otros comandos propietarios.

Fichero de datos XML


El fichero de datos tiene la siguiente sintaxis:

<nombredehost>.<nº de serie>.data 

Este fichero de datos es una estructura XML y su nombre se forma mediante la combinación del nombre del anfitrión o host donde esta el agente, un numero de serie diferente para cada paquete de datos y la extensión .data que indica que es un paquete de datos.



Ilustración: Estructura lógica de los modulos de un agente software

Xml transfer.png


<nombredehost>.<nº de serie>.checksum

El fichero de datos es el fichero con extensión .data. El fichero de verificación, con extensión .checksum contiene un hash MD5 del fichero de datos. Esto permite hacer una última verificación para asegurarse de que los datos no han sido alterados de ninguna manera antes de ser procesados.

El fichero de datos XML que genera el agente es el corazón de Pandora FMS. En él se contiene un paquete de datos con la información recogida por el Agente. Este paquete de datos tiene un diseño compacto, flexible y ligero que permite que cualquier usuario pueda utilizar los agentes de Pandora FMS o sus propios desarrollos para generar información y que esta sea procesada en Pandora FMS. El fichero de datos es un XML similar al siguiente:

 <agent data os_name=”SunOS” os_version=”5.8” timestamp=”300” agent_name=”pdges01” version=”1.0”>
 <module>
 <name>FTP Daemon</name>
 <type>generic_proc</type>
 <data>0</data>
 </module>
 <module>
 <name>DiskFree</name>
 <type>generic_data</type>
 <data>5200000</data>
 </module>
 <module>
 <name>UsersConnected</name>
 <type>generic_data_inc</type>
 <data>119</data>
 </module>
 <module>
 <name>LastLogin</name>
 <type>generic_data_string</type>
 <data>slerena</data>
 </module>
 </agent_data>

Agente físico


Pandora FMS es compatible con sensores hardware para medir variables ambientales como:

  • Humedad
  • Temperatura
  • Luz ambiental
  • Presencia

Los sensores compatibles son todos aquellos que soporte el protocolo SNMP. En capítulos posteriores se explica más acerca de estos sensores, su instalación y configuración.

Topologías, esquemas y modelos de monitorización

Existen diferentes modelos a la hora de abordar la monitorización, tanto remota como local. Enumeramos los siguientes casos habituales de diferentes topologías con el fin de familiarizar al lector con las posibles problemáticas y las soluciones ofrecidas por Pandora. En sucesivos capítulos se describe el funcionamiento de cada solución.

Redes accesibles

Esto sólo es lo habitual en redes sencillas y de pequeño tamaño o muy centralizadas y organizadas. Es el modelo más fácil de implantación.

  • Red accesible para monitorización remota centralizada. Donde desde el servidor de Pandora podemos acceder a todas las máquinas para sondear remotamente.
  • Red accesible para monitorización basada en agentes. Donde desde los agentes instalados de Pandora, en las máquinas monitorizadas, podemos llegar sin problemas al servidor de Pandora.

Redes con dificultad de acceso

  • Red remota no alcanzable por los chequeos remotos de Pandora. Para ello utilizamos un agente software como "recolector remoto", haciendo pruebas a otros sistemas. Este modo lo llamamos agente satélite (cuando todos los chequeos van dentro del mismo agente, o agente en modo broker, cuando "simula" ser varios agentes, pero todas las pruebas las realiza desde la misma máquina física.



Modelo de despliegue en redes remotas no accesibles en modo broker

Broker example no access.png



  • Agentes software que no tienen acceso al servidor de Pandora. En este caso, utilizaremos la característica de "proxy" de los agentes software, que permite que un agente que no tiene acceso, utilice un agente que si tiene acceso al servidor, para conectarse a través de él.



Modelo de despliegue en redes remotas usando el modo proxy del agente

Proxy agent schema.png



  • Necesidad de monitorizar redes diferentes para monitorización remota con el servidor. En este caso montamos varios servidores diferentes de Pandora, atacando la misma base de datos, un servidor ejecutará un conjunto de chequeos, y otro servidor otro conjunto diferente. Ambos servidores trabajan en el mismo entorno y se gestionan simultáneamente por la consola.

Características especiales organizativas

  • Necesidad de tener varias sedes monitorizadas, con equipos de monitorizacion y configuraciones diferentes. En este caso utilizaremos un servidor de exportación (Export Server), para duplicar parte de la monitorización en un entorno segregado de Pandora, independiente.



Modelo de exportación jerárquica con Export Server

ES1.png



  • Dualidad de reporting. Adicionalmente, podemos configurar agentes para que reporten a dos servidores de Pandora diferentes, aunque sólo podrá ser gestionado por uno de ellos.
  • Gestión fragmentada. Se necesita delegar la administración de parte de los equipos a diferente personal, con diferentes accesos. Esto más que un problema de arquitectura, es un problema de gestión. Se soluciona con los permisos asignados sobre políticas.

Grandes entornos

  • Red numerosa, con miles de chequeos de red que debemos distribuir en diferentes "sondas de monitorizacion remota", ya que por su elevado número (más de 50,000) no podemos centralizarlas todas en un único servidor. Para ello usamos servidores en modo broker, que distribuyen la carga de chequeos remotos.



Modelo de distribución de chequeos remotos con agentes en modo broker

Broker scalation example.png



  • Necesidad de montar un servidor en HA por seguridad, por si falla el hardware primario. Veremos como montar dos servidores, uno "pasivo", esperando a que el activo deje de responder para entrar en funcionamiento. Hay diferentes formas de hacerlo.
  • Necesidad de monitorizar un volumen grande de sistemas y gestionarlas de forma centralizada (más de 2500 agentes). Para ello se configuran diferentes servidores de Pandora coordinados por un mismo sistema, llamado metaconsola. De esta forma se puede escalar linealmente



Modelo de metaconsola

Pandora metaconsole overview2.png




Volver a Indice de Documentacion Pandora FMS