====== Arquitectura ====== {{indexmenu_n>2}} ===== Arquitectura de Pandora FMS ===== El componente vital y donde se almacena casi toda la información es **la base de datos MySQL**. Todos los componentes de Pandora FMS se pueden replicar y funcionar en un entorno de [[:es:documentation:pandorafms:complex_environments_and_optimization:06_ha|HA puro]] (Activo/Pasivo) o en un entorno de grupo o clúster (Activo/Activo con [[:es:documentation:pandorafms:monitoring:02_operations#distribuir_la_carga_de_monitorizacion_con_brokers|balanceo de carga]]). Los **Servidores PFMS**, con la información generada por ellos mismos o por los Agentes, introducen los datos y la información en la base de datos. La Consola web es la parte encargada de mostrar los datos y de interactuar con el usuario final. Los [[:es:documentation:pandorafms:monitoring:02_operations#monitorizacion_con_agentes_software1|Agentes Software]] son aplicaciones que corren en los sistemas monitorizados y recolectan la información para enviarla a los servidores Pandora FMS. ==== Servidores de Pandora FMS ==== Los Servidores están integrados en una única aplicación, llamada de forma genérica **Pandora Server**, que es una aplicación multihilo que ejecuta de forma concurrente diferentes instancias o servidores especializados de Pandora FMS. Estos son los elementos encargados de realizar las comprobaciones existentes pues 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. Pueden existir servidores simultáneos; uno de ellos es el servidor principal y el resto de los servidores son servidores secundarios. **Aunque exista un servidor secundario y uno principal, todos trabajan simultáneamente**. La diferencia entre ambos es que cuando un servidor del mismo tipo va fuera de línea (por ejemplo, un Network Server) el servidor principal se encarga de procesar todos los datos que tenía asociado el servidor que está fuera de línea. 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 [[:es:documentation:pandorafms:installation:03_interface#gestion_de_servidores|sección de estado de servidores]] de la Consola web. === Data server === Solamente procesa la información enviada por los [[:es:documentation:pandorafms:introduction:03_glossary#agente_software|Agentes Software]], los cuales construyen un paquete de información en formato XML y lo entregan en un directorio específico que el servidor de datos procesa primero y luego almacena su resultado en la base de datos. Se pueden instalar diferentes servidores de datos en diferentes sistemas o en el mismo anfitrión mediante servidores virtuales con múltiples CPU. A pesar de su sencillez 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. === Network server === Ejecuta tareas de monitorización remota a través de la red: chequeos ICMP (ej. ping y tiempos de latencia), peticiones TCP y peticiones SNMP. Es muy importante que las máquinas que ejecutan los servidores de red tengan «visibilidad de red» (conexión) a los dispositivos a monitorizar de manera remota. === SNMP trap server === Este servidor utiliza el //daemon// estándar del sistema de recolección de traps, el **snmptrapd:** Recibe traps SNMP y la Consola SNMP de Pandora FMS los procesa y almacena en la base de datos. También se ocupa de lanzar las alertas asociadas a traps SNMP que hayan sido definidas. === WMI server === WMI es un estándar de Microsoft® para obtener información del sistema operativo y aplicaciones de entornos MS Windows®. Este es el servidor dedicado para monitorizar **de forma remota** sistemas MS Windows® mediante el protocolo WMI. * [[:es:documentation:pandorafms:management_and_operation:08_data_presentation_reports#ks3_3|Other common fields]]. === Discovery server === Antes denominado Recon server, el **Discovery server** es empleado para [[:es:documentation:pandorafms:monitoring:17_discovery_2#netscan|explorar regularmente la red]] y detectar nuevos sistemas en funcionamiento y aplicar una plantilla de monitorización y comenzar a monitorizar inmediatamente. Utilizando las aplicaciones GNU de sistema **nmap**, **xprobe** y **traceroute** es capaz de detectar los Sistemas Operativos y establecer una topología de red. El Discovery server se emplea también para lanzar tareas programadas y lanzar monitorización específica contra entornos virtuales, bases de datos o todas aquellas aplicaciones o entornos que requieren explorar lo que existe antes de monitorizar. === Plugin server === Ejecuta chequeos complejos de forma remota mediante //scripts// personalizados, gestionándose de forma centralizada. Esto permite a un usuario avanzado definir sus propias pruebas complejas e integrarlas en la aplicación para que se puedan usar de forma cómoda y centralizada desde Pandora FMS. === Prediction server === Un componente de Inteligencia Artificial que implementa una previsión de datos de forma estadística en base a datos pasados con una antigüedad de hasta 30 días, permitiendo predecir valores de un dato con un intervalo de 10 a 15 minutos, y conocer si un dato en el momento actual es anómalo respecto a su historial. Básicamente construye una línea de base dinámica con un perfil semanal. === Web server === Realiza comprobaciones web completas, como 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 chequeos de disponibilidad verdadero/falso y para obtener tiempos de latencia de experiencia completa de navegación. === Export server === Permite exportar los datos de un dispositivo monitorizado de una instalación de Pandora FMS a otra, y así tener replicados los datos. Especialmente útil en grandes despliegues con varias instalaciones de Pandora FMS y con necesidad de centralizar. === Inventory server === Obtiene y visualiza información de inventario de los sistemas: Software instalado, modelo de elementos hardware, dispositivos de almacenamiento, servicios en ejecución, etcétera. Puede obtener esta información tanto de forma remota como de [[:es:documentation:pandorafms:introduction:03_glossary#agente_software|forma local]]. === Event server === Este servidor especial sirve para correlacionar eventos y generar alertas y no ejecuta tareas de monitorización. Este servidor, al contrario que el resto, no dispone de configuración de hilos ni de alta disponibilidad. === ICMP server === Utilizan estrategias avanzadas para ejecutar chequeos ICMP (ping) trabajando con los OID (//**O**bject **ID**entifier//) previamente validadas, por lo que tiene un rendimiento elevado. === Satellite server === Se instala de forma separada al servidor principal de Pandora FMS y permite el reenvío de ficheros de datos desde los [[:es:documentation:pandorafms:introduction:03_glossary#agente_software|Agentes Software]] hacia el servidor principal, actuando a modo de //proxy// de agentes en [[:es:documentation:pandorafms:complex_environments_and_optimization:05_satellite|topologías distribuidas]]. Envía los datos de monitorización como ficheros XML a través de una conexión Tentacle, por lo que no requiere conexión con la base de datos. === WUX server === Combinado con el [[:es:documentation:pandorafms:monitoring:13_user_monitorization|Grid de Selenium]] permite realizar transacciones web complejas de forma distribuida. Estas transacciones se ejecutan en un navegador real, su salida se captura y procesa para visualizarla paso a paso, incluyendo capturas de los errores y estadísticas detalladas. === Syslog server === Permite analizar el **syslog** de la máquina donde está ubicado, analizando su contenido y almacenando las referencias en el [[:es:documentation:pandorafms:monitoring:09_log_monitoring|servidor OpenSearch]] correspondiente. === Log server === Permite correlacionar [[:es:documentation:pandorafms:management_and_operation:01_alerts#creacion_de_alertas_de_correlacion|logs y ejecutar sus alertas]]. === Alert server === Si se activa se encargará de la ejecución de todas las alertas de monitorización, ya que por defecto cada servidor se encarga de sus propias alertas y en algunos casos concretos se pueden producir retrasos en la monitorización si una alerta debe ejecutar alguna tarea y esta tarda más de lo debido en realizarse. ==== 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. Puede ejecutarse en múltiples servidores 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étera). ==== Base de datos de Pandora FMS ==== Pandora FMS utiliza una base de datos MySQL en la que almacena toda la información recibida en tiempo real, normalizando todos los datos de las diversas fuentes origen. Actualmente Pandora FMS solamente soporta MySQL, MariaDB y Percona. {{ :wiki:arch-schema.png }} ==== Agentes Software de Pandora FMS ==== Es importante diferenciar dos conceptos: **Agente**, o Agente en Consola, como contenedor y **Agente Software**, el cual se ejecuta en un equipo. === Agente (Contenedor) === El Agente de Pandora FMS es un elemento organizativo creado en la Consola web de Pandora FMS, asociado a un grupo de Módulos (o elementos individuales de monitorización). Este agente puede tener (opcionalmente) asociadas una o más direcciones IP. 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 [[:es:documentation:pandorafms:monitoring:03_remote_monitoring|forma remota]] (ej. Network server); los módulos de tipo local son ejecutados por los Agentes Software y recolectados y procesados por el [[#servidor_de_datos|Data Server]]. === Agente Software === Los Agentes Software se instalan en los equipos a monitorizar de manera local, extrayendo la información desde el propio equipo. Se utilizan principalmente en servidores para monitorización de recursos de la máquina (CPU, RAM, discos…) y aplicaciones instaladas (MySQL, Apache, JBoss…). Generalmente, la monitorización de servidores y equipos se llevará a cabo con Agentes Software mientras que la monitorización de equipos de red se hará de forma remota sin la instalación de ningún software. Toda la información de los chequeos realizados se plasma en un único fichero de datos en formato XML, que es enviado a través del protocolo Tentacle al servidor de Pandora FMS en un **intervalo** predeterminado de 300 segundos. También es posible transmitir los paquetes usando SSH o FTP. {{ :wiki:esquema-3.png }} ==== Topologías, esquemas y modelos de monitorización ==== === Redes accesibles === * Red accesible para **monitorización remota centralizada**: donde, desde el servidor de Pandora FMS, se puede acceder a todas las máquinas y/o dispositivos para sondear remotamente. * Red accesible para **monitorización basada en Agentes**: donde, desde los Agentes Software instalados en las máquinas monitorizadas, pueden llegar sin problemas al servidor de Pandora FMS. === Redes con dificultad de acceso === * **Red remota no alcanzable por los chequeos remotos de Pandora FMS**: Utiliza la modalidad //broker agent.// {{ :wiki:modo-broker.png?600 |//Modelo de despliegue en redes remotas no accesibles en modo// broker}} * **Agentes Software que no tienen acceso al servidor de Pandora FMS**: Este caso utiliza la característica de //proxy// de los Agentes Software o un Satellite server como //proxy// de agentes software.{{ :wiki:proxy-mode.png?600 |//Modelo de despliegue en redes remotas usando el modo// proxy //del agente//}} * Necesidad de monitorizar **redes diferentes para monitorización remota con el servidor**: En este caso también se puede hacer uso del //Satellite Server// o varios servidores diferentes de Pandora FMS conectados a la misma base de datos. === Características especiales organizativas === * **Dualidad de reporte**: Adicionalmente, puede configurar Agentes para que reporten a dos servidores de Pandora FMS diferentes, aunque solo 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 [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#sistema_acl_enterprise|permisos asignados sobre políticas]]. === Grandes entornos con Pandora FMS === * **Red numerosa**: Cuando no pueden ser centralizadas en un único servidor se utilizan servidores en modo //broker//, que distribuyen la carga de los chequeos remotos. * **Servidores redundantes**: Por seguridad, dado el caso fallar el hardware primario, [[:es:documentation:pandorafms:complex_environments_and_optimization:06_ha|un servidor en modo HA]] puede automáticamente reubicar y delegar la carga de trabajo de monitorización. [[:es:documentation:start| Volver al índice de documentación de Pandora FMS]]