Arquitectura de servidores (versión 784)
Introducción
En el último cambio de arquitectura por el que se pasó de hilos a procesos, se hizo evidente el consumo excesivo y la complejidad de optimizar el entorno al existir demasiados subtipos de servidor disponibles.
En este tema se expone un cambio de modelo que utiliza la misma base, unificando en menos servidores, de manera que al tener más hilos para múltiples tareas se utilizarán mejor los recursos de hardware y tiempo.
Nueva arquitectura y equivalencias
Servidores de Pandora FMS (versión 783)
Los Servidores están integrados en una única aplicación, llamada de forma genérica Pandora Server, la cual es una aplicación multihilo que ejecuta de forma concurrente diferentes instancias o servidores especializados de Pandora FMS. Para la versión 783 y anteriores se contaba con los siguientes servidores:
- Data Server.
- SNMP Console.
- Syslog Server.
- Export Server (raramente utilizado).
- Sync Server (poco uso).
- Discovery Server.
- WEB Server.
- Network Server.
- WMI Server.
- Plugins Server.
- Inventory Server.
- ICMP Server.
- SNMP Server (distinto de los traps SNMP).
- Event Server.
- Log Server.
- SIEM Server.
- NetFlow Server (incluye sFlow).
- NCM Server.
- Policy Manager Server.
- WUX Server.
- MADE Server.
Dada esta panorámica, y en un entorno con la mitad de los servidores iniciados, se detectó un uso alto de memoria sin haber comenzado realmente a trabajar.
Agrupación de servidores
En la versión 784 se han agrupado los diferentes servidores en un grupo más reducido, esto significa que un productor podrá generar tareas de diferentes tipos, p.e: un ping y un WMI check, que ahora son procesados por un mismo consumidor. Este consumidor ejecutará una tarea para WMI y otra diferente para el PING, haciendo esencialmente lo mismo de siempre.
Los tiempos de espera (timeouts) siguen siendo individuales para cada tipo de ejecución.
Network Server
Asume las tareas de los siguientes servidores:
- Network Server.
- Prediction Server.
- WMI Server.
- MADE Server.
- WEB Server.
Heavy Server
Se encarga las tareas de los siguientes servidores:
- Plugin Server.
- NCM Server
- Export Server (desactivado por defecto).
- Inventory Server.
Network High Performance Server
Maneja las cargas de trabajo del ICMP Server y el SNMP Server.
Servidores dependientes de un servidor principal
- Policy Manager (depende del Master Server de un nodo).
- Migration Server (depende del Master Server de un Command Center).
- Autoprovision Server (depende del Master Server de un Command Center).
- Sync Server (desactivado por defecto).
Configuración predeterminada
Servidores activados por defecto:
- Data Server.
- Heavy Server.
- Network Server.
- Discovery Server.
- Network High Performance Server.
Servidores desactivados por defecto:
- MADE Server.
- SNMP Console.
- Mainframe Server.
- NetFlow Server.
- Syslog Server.
- WUX Server.
- SIEM Server.
- SIEM Event Server.
- Event Server.
- Log Server.
- Alert Server.
Fichero de configuración pandora_server.conf
La configuración principal del Pandora FMS Server se encuentra en el fichero pandora_server.conf, en la ruta por defecto /etc/pandora.
A partir de la versión 784 se incorporan dos principales nuevos tokens (y sus configuraciones de hilos):
Fueron retirados los siguientes tokens:
| Token | Sustituido por |
|---|---|
exportserver | heavyserver |
export_threads | heavyserver_threads |
icmpserver | networkhpserver |
icmp_threads | networkhpserver_threads |
inventoryserver | heavyserver |
inventory_threads | heavyserver_threads |
ncmserver | heavyserver |
ncmserver_threads | heavyserver_threads |
pluginserver | heavyserver |
plugin_threads | heavyserver_threads |
predictionserver | networkserver |
prediction_threads | network_threads |
snmpserver | networkhpserver |
snmp_threads | networkhpserver_threads |
webserver | networkserver |
web_threads | network_threads |
wmiserver | networkserver |
wmi_threads | network_threads |
Cambios menores
Ejecución de chequeos en cortos intervalos
El valor predeterminado para el intervalo de chequeos es de 300 segundos (5 minutos). Sin embargo desde hace tiempo se necesitaba de una solución definitiva para poder ejecutar tiempos de muestreo en pruebas de red inferiores a esa cifra, concretamente cercanos a los 30 segundos o incluso menos.
Por ello a partir de la versión 784 se puede habilitar, solamente en algunos módulos, la ejecución de módulos con hasta 15 segundos de intervalo:
- ICMP Latency.
- ICMP Boolean (ping)
- SNMP numérico y numérico incremental.
En los módulos de tipo asíncronos no se podrá elegir un intervalo inferior a 5 minutos en ningún caso. En la interfaz visual de PFMS se mostrará un mensaje indicando si el módulo editado no soporta un intervalo menor a ese valor.
Al ejecutar chequeos con intervalos iguales o menores a 5 minutos, la precisión de datos cambia a un decimal (p.e: 2.22 → 2.2) para evitar que se cargue la BB.DD. con fluctuaciones pequeñas de valores.
La generación de estado desconocido se ignora para módulos (de cualquier tipo) con intervalo inferior a 300 segundos. Con 300 segundos o más se seguirán generando estados de tipo desconocido.
Compactación de datos
Borrado de datos independiente para intervalos cortos
En la versión 784 existe una nueva categoría en los parámetros de borrado que afecta especialmente a los datos con tiempos de intervalo menores a 300 segundos. Por defecto no se deja guardar más de una semana de ese tipo de datos y son movidos a histórico a partir de ese punto.
Nueva compactación de datos
Esta nueva compactación de datos se utiliza en el momento de pasar los datos a la BB.DD. de histórico, de manera de que sea cual sea el dato no se guarda más de X muestras por hora en la BB.DD. de histórico (p.e. de 12 que es lo normal pueden pasar a 5 por defecto).
Configuración por defecto: no se usa este tipo de compactación.
De usarla, se utilizará por defecto el valor 5 muestras por hora. El control de la configuración general no permite dejar un valor inferior a 1 ni superior a 12. La compactación no se realiza en los casos de que la cantidad de muestras sea inferior al valor establecido.