Pandora: Documentation es: SatelliteServer

From Pandora FMS Wiki
Jump to: navigation, search

Volver a Indice de Documentacion Pandora FMS

Contents

Satellite Server

Introducción

El servidor satélite se emplea para descubrir y monitorizar redes y equipos remotos, bien elementos de red (routers, switches, etc) via SNMP o ICMP, o bien servidores Windows (via WMI) o linux (via SNMP). Este no es un servidor "ordinario" sino que más bien se podría considerar como un Agente en modo broker con funcionalidades extendidas. Es un componente exclusivamente de la version Enterprise. El servidor satélite es especialmente útil para monitorizar redes remotas innaccesibles desde el servidor de Pandora, y donde tampoco podemos instalar agentes.


Esquema-satellite.png


El servidor satélite no requiere una conexión a la base de datos de Pandora, y envía la información recolectada a través de ficheros de datos XML mediante tentacle, como si fuera un agente.

El servidor satélite funciona tanto en Windows como en Linux, aunque su instalación difiere en uno u otro caso.

Este servidor tiene algunas características que lo hacen especial, y más que recomendable en determinados entornos.

  • Puede ejecutar pruebas de red (ICMP, Latencia y SNMP v1 y v2) a una tasa extremadamente alta (500 chequeos por segundo).
  • Sólo envía datos al servidor cada X segundos (por defecto 300), pero puede ejecutar las pruebas de latencia, ICMP y SNMP con un intervalo menor, p.e: 30 segundos, de forma que cuando detecta cambios de estado, notifica inmediatamente al servidor. Estos cambios de estado se han de definir previamente si el tipo de modulo no es un _proc (interfaces de red o conectividad general de red, p.e).
  • Es un servidor autónomo, no requiere conexión a la BBDD. Envía todos los datos como XML de forma que funciona como un servidor independiente, similar a como lo hace un agente en modo broker o a un export server.
  • Tiene un mecanismo de autodiscovery para SNMP y WMI, de forma que crea los agentes detectados (por IP) y detecta los elementos dinámicos (interfaces de red, almacenamiento) y los monitoriza de forma automática.
  • En sistemas Windows detecta discos, CPU, y memoria.
  • En sistemas de red con SNMP, estado de las interfaces, tráfico de entrada y salida por cada interfaz, y el nombre del sistema.
  • Los módulos autogenerados se pueden modificar, como otro módulo más, gestionando el agente desde la consola. Como si fuera un agente ordinario (en la seccion de operaciones masivas -> Satélite).
  • Podemos crear “agentes” directamente, creando un fichero de configuración de agente en el directorio de configuraciones del servidor satélite (ver uno de ejemplo para más pistas sobre su formato).


Capacidad

Es difícil precisar la capacidad máxima del satélite, ya que depende totalmente del servidor donde se ejecuta, y el tipo de chequeos que se quiere realizar. En el mejor de los casos, hemos logrado realizar 500 chequeos ICMP y SNMP por segundo, pero eso depende muchisimo de los tiempos de respuesta del dispositivo remoto (no es lo mismo uno que contesta en 0.5ms que uno que tarda 2sec en responder). En condiciones ideales teóricas podemos hablar de que se pueden monitorizar unos 150,000 monitores con un solo servidor satélite. En condiciones reales, hemos probado en entornos más o menos controlados (redes locales) unos 50,000 modulos con un servidor satélite en un ordenador de hardware muy discreto (Intel i5, 2GHz, 4GB RAM).

Instalación

El satélite server se distribuye en forma de binario, de forma que no hace falta instalar Perl o ninguna librería adicional. El funcionamiento en las versiones Windows o Linux es idéntica. En caso de Windows se instala como servicio, y en el caso de Linux se instala como demonio del sistema. El fichero de configuración y las especificaciones de ambos son idénticas.

La versión de Linux del Servidor Satélite depende de paquetes externos que se especifican en la sección correspondiente de esta documentación.

Instalación de Satellite Server en Linux

Una vez descargado el binario que contiene el servidor Satellite seria necesario situarnos dentro de la carpeta de descargas con privilegios de root y desarchivar el binario:



Desarchivar.png



A continuación se generará una carpeta denominada satellite_server. Tenemos que situarnos dentro tecleando:

cd satellite_server/

Antes de proceder con la instalación es necesario dejar claro cuales son las dependencias fundamentales del servidor satellite: fping, nmap, wmic y braa.

En el instalador se adjuntan las dependencias de Braa y Wmic. Es necesario instalar Fping y Nmap de forma independiente.

A continuación para instalar el servidor satellite solamente tendriamos que seguir las instrucciones de la siguiente imagen:



Instalacion linux.png



Una vez terminado sera necesario editar el fichero satellite_server.conf localizado en /etc/pandora/ Para ejecutar el servidor tiene que teclear lo siguiente:

sudo /etc/init.d/satellite_serverd start

En caso de algun error o malfuncionamiento puede revisar el fichero satellite_server.log, localizado en la ruta /var/log/

Instalación en Windows

El proceso de instalación en windows se puede realizar siguiendo las siguientes imagenes:

Empezamos por elegir el idioma de instalación:



Instalacion windows1.png


A continuación pinchamos en siguiente:



Instalacion windows2.png



A continuación podemos elegir el lugar donde queremos instalar el programa y pinchar sobre instalar:



Instalacion windows3.png



Será necesario instalar tambien WinPCap. la ventana de instalación de WinPCap nos aparecerá en este paso de la instalación.



Instalación wincap1.png


A continuación configuramos el encendido de WinPCap al iniciar la maquina:



Instalación wincap2.png



Una vez terminada la instalación de WinCap podra ver la siguiente pantalla:



Instalación wincap3.png


Será necesario introducir la clave de licencia para poder seguir con la instalación:



Instalacion windows4.png


En el siguiente apartado tenemos que configurar las opciones de exploración de red para el servidor satellite.



Instalacion windows5.png


Por último será necesario reinciar la maquina para que se puedan aplicar satisfactoriamente todos los cambios.



Instalacion windows6.png


Una vez terminado desde el menu inicio puede arrancar y parar el servicio de satellite server.

Funcionamiento módulos WMI en algunas versiones de Windows

Por motivos de seguridad de Windows, algunas versiones tienen limitados los usuarios con los que puedes realizar consultas WMI remotas. En el caso de que estas consultas no se lleven a cabo, la solución es ejecutar el servicio del Satélite Server como usuario Administrador.

El proceso a seguir es el siguiente:

Abrimos los servicios:


Instalacion windows7.png


Pinchamos botón derecho sobre el servicio y entramos en Propiedades



Instalacion windows8.png


Sobre la ventana de Iniciar sesión seleccionamos una cuenta con permisos de Administrador y Aplicamos cambios:


Instalacion windows9.png


Tras estos cambios, reiniciamos el servicio.

Configuración

Todos los parámetros que requieren un timeout o tiempo se especifican en segundos, p.e: 300 = 5 minutos.

Es importante destacar que los intervalos de latency y snmp son específicos al cambio de estado. En el caso de chequeos booleanos (estado de un puerto, estado de la máquina) el umbral que define el cambio de estado es automático, en el caso de valores numéricos (latencia, tráfico de red en una interfaz, espacio de disco, CPU, etc), se basa en el umbral. Por defecto no se definen umbrales, esto tiene que hacerse en la definición del módulo.

agent_interval xxx

Por defecto 300 segundos (5 minutos), crea agentes con un intervalo de 5 minutos. Será el tiempo tras el cual enviará datos al servidor. Independientemente de que los chequeos que haga el servidor satélite sean con un intervalo mucho más corto.

agent_theads xxx

Número de hilos que se utilizan para mandar ficheros XML de datos.

xxxxxx_interval xxx

Ejecuta todos los chequeos (latencia, snmp, etc) cada xxx segundos. Si cambia el dato respecto al anterior lo envía en ese momento. Si es igual, lo enviará cuando el intervalo de ese agente así lo ordene. Es útil para realizar pruebas muy intensivas, y notificar sólo en el caso de cambio de estado.

xxxxx_retries xxx

Número de reintentos en los chequeos (latencia, snmp, ping...)

xxxxx_timeout xxx

Timeout en segundos para las pruebas de tipo SNMP, Latency y Ping.

xxxxx_block xxx

Fuerza al servidor a ejecutar las consultas en bloques de XXX consultas. Cuanto mayor sea el numero (Hasta 500) mas capacidad de proceso tendrá, pero con una latencia ligeramente superior. En algunos casos puede ser conveniente disminuir ese número (Valido para latency, ping y snmp).

xxxxx_threads n

Número de hilos asignados a cada tipo de chequeo para que trabajen concurrentemente. Dependerá de la potencia (CPU y Memoria) de la máquina. Cuantos más hilos mas se cargará el sistema, pero más capacidad de proceso tendrá. Al superar los 20 hilos, dependiendo del sistema, puede empeorar el rendimiento.

log_file /dev/null

Log del servidor satélite. Puede crecer rápido, por lo que es recomendable si no se va a utilizar, redirigirlo a /dev/null. Generalmente es útil activarlo al principio para detectar problemas y comportamientos no esperados, y una vez en produccion, comentarlo.

recon_task xxxxx[,yyyy]

Direcciones/Redes IP empleadas para el autodiscovery, p.e:

192.168.50.0/24,10.0.1.0/22,192.168.70.64/26

server_ip <ip>

Dirección del servidor de Pandora FMS al que queremos enviar la información. La información se envía por Tentacle, de forma que la comunicación hacia el servidor debe ser posible por el puerto de tentacle (41121/tcp).

recon_mode [icmp,snmp,wmi]

Modo de autodescubrimiento. El sistema empleará esos protocolos para descubrir los sistemas:

  • ICMP: Se limitará a hacer verificación de si el host está vivo (ping) y medir el tiempo de latencia.
  • SNMP: Si es capaz de comunicar por SNMP (v1 y v2 únicamente), buscará todas las interfaces de red, y sacará el tráfico de todas ellas, así como su estado operativo, además del nombre del dispositivo y ubicación. Probará con las diferentes comunidades suministradas en el fichero de configuración para conectar.
  • WMI: Similar al caso anterior, en este caso mostrando Carga de CPU, Memoria y Discos (todos los disponibles).

recon_community aaa,bbb,ccc...

Especifica una lista de comunidades SNMP para usar en el discovery de SNMP. Separadas por comas. Utilizará esta lista en la exploración SNMP. Por cada IP encontrada, intentará ver si responde a alguna de estas comunidades.

wmi_auth Administrator%password

Especifica una lista de parejas de Usuario%Password, p.e: admin%1234,super%qwerty. Utilizará esta lista en la exploración WMI. Por cada IP encontrada, intentará ver si responde a alguna de estas combinaciones.

agent_conf_dir <path to agente conf dir>

En este directorio se crean automáticamente los ficheros de configuración de cada agente creado por el servidor satélite. Puede crearlos a mano. su sintaxis es muy parecida a los de un agente real.

group <grupo>

Define el grupo por defecto de los agentes creados por el satélite. Por ejemplo "servers".

daemon 1|0

Si su valor es 1, levanta en demonio en background (por defecto).

hostfile <file>

Es un método alternativo/complementario al de escanear una red para encontrar hosts. Se le pasa un fichero donde en cada línea hay una direccion. Alternativamente se le puede pasar en la misma línea el hostname seguido de la IP de forma que cree que el agente con ese nombre y use esa IP para los módulos.

pandora_license xxxxxxx

Ahi debe escribir la licencia de su servidor Pandora FMS, tal como se muestra en la seccion Setup-> Licencia de su consola Pandora FMS. Puede usar la misma licencia en tantos servidores satélite como necesite, ya que el total de agentes que usan la licencia se verifica en el servidor de Pandora FMS, no en el satélite.

remote_config 1|0

Activa por defecto la configuracion remota en los agentes detectados. Necesario si quiere gestionarlos desde la consola después de detectarlos. También activa la configuración remota del propio Satellite Server.

temporal_min_size

Si el espacio libre (en mega bytes) de la partición en la que se encuentra el directorio temporal es menor que este valor, no se siguen generando paquetes de datos. De este modo se evita que se llene el disco si por alguna razón se pierde la conexión con el servidor durante un intervalo de tiempo prolongado.

xml_buffer

Por defecto 0. Estando a 1 el agente guardará los XML de datos que no haya podido enviar para intentarlo de nuevo más adelante.

En Unix, si está en un entorno seguro debería considerar cambiar el directorio temporal, ya que /tmp tiene permisos de escritura para todos los usuarios.


snmp_version

Versión de SNMP que se utilizará por defecto (sólo 1 y 2c están soportadas). 1 por defecto.

Template warning.png

Algunos módulos podrían dejar de funcionar si se cambia este valor.

 


braa <path a braa>

Path al binario de braa (/usr/bin/braa por defecto).

fping <path a fping>

Path al binario de fping (/usr/sbin/fping por defecto).

latency_packets xxx

Número de paquetes ICMP que se envían por petición de latencia.

nmap <path a nmap>

Path al binario de nmap (/usr/bin/nmap por defecto).

nmap_timing_template xxx

Un valor que especifica cómo de agresivo debe ser nmap de 1 a 5. 1 significa más lento pero más fiable, 5 significa más rápido pero menos fiable. 2 por defecto.

ping_packets xxx

Number of ICMP packets to send per ping request.

recon_enabled 0|1

Habilita (1) o deshabilita (0) el autodescubrimiento de equipos.

recon_timing_template xxx

Como nmap_timing_template, pero aplicado a los escaneos de red.

server_port xxxxx

Puerto del servidor de Tentacle.

Servidor Secundario (Versión >= 5.1)

Un tipo especial de parámetro de configuración general es la definición de un servidor secundario. Esto permite definir un servidor al que se le envían los datos, de forma complementaria al servidor definido de forma estándar. El modo de servidor secundario funciona de dos formas:

  • on_error: Envía datos al servidor secundario solo si no puede enviarlas al primario.
  • always: Siempre envía datos al servidor secundario, independientemente si puede contactar o no con el servidor principal.

Ejemplo de configuración:

secondary_server_ip     192.168.1.123
secondary_server_path   /var/spool/pandora/data_in
secondary_mode          on_error
secondary_transfer_mode tentacle
secondary_server_port   41121

snmp_verify 0|1

Habilita (1) o deshabilita (0) la comprobación de módulos SNMPv1 que rompen braa en tiempo real. Estos módulos serán descartados y dejarán de ejecutarse.

snmp2_verify 0|1

Habilita (1) o deshabilita (0) la comprobación de módulos SNMPv2 que rompen braa en tiempo real. Estos módulos serán descartados y dejarán de ejecutarse.

Template warning.png

Comprobar módulos SNMP versión 2 puede ser muy lento!

 


startup_delay xxx

Espera xxx segundos antes de enviar ficheros de datos por primera vez.

temporal /tmp

Directorio temporal donde se crean los ficheros XML.

tentacle_client <path a tentacle_client>

Path al binario del cliente de Tentacle (/usr/bin/tentacle_client por defecto).

wmi_client <path a wmic>

Path al binario de wmic (/usr/bin/wmic por defecto).

snmp_blacklist <path to the blacklist>

Path a la lista negra de módulos SNMP (/etc/pandora/satellite_server.blacklist por defecto).

add_host <dirección IP> [nombre del agente] (Versión >= 6.0)

Añade el host dado a la lista de agentes monitorizados. Se puede especificar el nombre del agente después de la dirección IP. Se pueden añadir múltiples hosts, uno por línea. Por ejemplo:

add host 192.168.0.1
add host 192.168.0.2 localhost.localdomain

ignore_host <nombre del agente> (Versión >= 6.0)

Elimina el host dado de la lista de agentes monitorizados, incluso si es encontrado en un escaneo de red por una tarea recon. El host debe identificarse por el nombre del agente. Se pueden ignorar múltiples hosts, uno por línea. Por ejemplo:

ignore host 192.168.0.1
ignore host localhost.localdomain

keepalive xxx (Versión >= 6.0)

El Satellite Server informa de su estado y comprueba cambios en la configuración remota (de los agentes y de él mismo) cada keepalive segundos. Por defecto es igual a 30 segundos.

credential_pass xxx (Version >= 6.0)

Contraseña utilizada para cifrar las contraseñas de las cajas de credenciales. Debe ser la misma que se defina en la Consola de Pandora FMS. Por defecto se utiliza el nombre de host.

timeout_bin <path a timeout> (Versión > 6.0SP3)

Si está definido, el programa timeout (normalmente /usr/bin/timeout) se utilizará para llamar al cliente de Tentacle.

timeout_seconds xxx (Versión > 6.0SP3)

Timeout en segundos para el programa timeout. timeout_bin debe estar configurado.

proxy_traps_to <dirección[:puerto]> (Versión > 6.0SP3)

Redirige los traps SNMP recibidos por el Servidor Satélite a la dirección (y puerto) especificados. Por defecto se utiliza el puerto 162.

proxy_tentacle_to <dirección[:puerto]> (Versión > 6.0SP3)

Redirige las peticiones de clientes de Tentacle recibidas por el Servidor Satélite a la dirección (y puerto) especificados. Por defecto se utiliza el puerto 41121.

dynamic_inc 0|1 (Versión > 6.0SP4)

Poner a 1 para mover los módulos dinámicos descubiertos de forma automática (SNMP, WMI...) a ficheros separados para que no interfieran con la configuración remota de agentes.

Configuraciones personalizadas (por agente)

Adicionalmente a los módulos "automonitorizados", se podrán agregar a la monitorización cualquier chequeo TCP, SNMP o WMI remoto que esté disponible, usando una sintaxis similar a los módulos locales para dicho propósito en los agentes. A continuación vemos algunos ejemplos de modulos válidos para el satellite server, tal como se autogeneran después de detectar el sistema.

Template warning.png

¡Asegúrese de que los OID empiezan con un punto o los módulos SNMP no funcionarán!

 


Estado de la interfaz via SNMP. El servidor satélite detecta automáticamente cada interfaz:

module_begin
module_name if eth1 OperStatus
module_description IP address N/A. Description: The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed.
module_type remote_snmp_string
module_snmp 192.168.70.225
module_oid .1.3.6.1.2.1.2.2.1.8.3
module_community artica06
module_end

Para obligar al módulo a utilizar SNMP versión 2c añada la línea:

module_version 2c

Para obligar al módulo a utilizar SNMP versión 1 añada la línea:

module_version 1

Por ejemplo:

module_begin
module_name if eth1 OperStatus
module_description IP address N/A. Description: The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed.
module_type remote_snmp_string
module_snmp 192.168.70.225
module_version 2c
module_oid .1.3.6.1.2.1.2.2.1.8.3
module_community artica06
module_end

Conectividad a una máquina (via PING)

module_begin
module_name ping
module_type generic_data
module_ping 192.168.70.225
module_end

Consulta genérica SNMP. en este caso el servidor satélite, saca automáticamente el tráfico de cada interfaz, con su nombre "real" descriptivo.

module_begin
module_name if eth0 OutOctets
module_description The total number of octets transmitted out of the interface, including framing characters.
module_type remote_snmp_inc
module_snmp 192.168.70.225
module_oid .1.3.6.1.2.1.2.2.1.16.2
module_community artica06
module_end

Consulta WMI para uso de CPU (porcentaje).

module_begin
module_name CPU
module_type generic_data
module_wmicpu 192.168.30.3
module_wmiauth admin%none
module_end

Consulta WMI para memoria libre (porcentaje).

module_begin
module_name FreeMemory
module_type generic_data
module_wmimem 192.168.30.3
module_wmiauth admin%none
module_end

Consulta genérica WMI

module_begin
module_name GenericWMI
module_type generic_data_string
module_wmi 192.168.30.3
module_wmiquery SELECT Name FROM Win32_ComputerSystem
module_wmiauth admin%none
module_end


Comando genérico SSH (versión > 6.0)

module_begin
module_name GenericSSH
module_type generic_data
module_ssh 192.168.30.3
module_command ls /tmp | wc -l
module_end

Para introducir un umbral hay que hacerlo tanto en la definición de texto del modulo (module_min_warning, module_min_critical) como en la definición de umbrales mediante la interfaz web. Por ejemplo:

module_begin
module_name latency
module_type generic_data
module_latency 192.168.70.225
module_min_warning 80
module_min_critical 120
module_end

Manualmente podemos crear módulos de ejecución. Los scripts o comandos que ejecute el satélite server, deben estar previamente desplegados y accesibles por el mismo. En este sentido funciona igual que un module_exec de un agente. El uso de module_exec hace que el rendimiento del servidor satélite disminuya.

module_begin
module_name Sample_Remote_Exec
module_type generic_data
module_exec /usr/share/test/test.sh 192.168.50.20
module_min_warning 90
module_min_critical 95
module_end

Cajas de credenciales (Versión > 6.0)

Salvo que la autenticación basada en claves esté configurada, los módulos SSH necesitan un nombre de usuario y una contraseña para funcionar. Éstos se configuran en el fichero de configuración principal, satellite_server.conf, utilizando cajas de credenciales con el siguiente formato:

credential_box red/máscara,usuario,contraseña
credential_box red/máscara,usuario,[[contraseña cifrada]]

Por ejemplo:

credential_box 192.168.1.1/32,user,pass1
credential_box 192.168.1.0/24,user,pass2

Las búsquedas en las cajas de credenciales se hacen de máscaras más restrictivas a menos.

Las contraseñas se pueden cifrar utilizando Blowfish en modo ECB. Asegúrese de que credential_pass está definido, de otro modo el nombre del host se utilizará como contraseña de cifrado por defecto. La representación hexadecimal del texto cifrado se debe rodear de corchetes dobles:

credential_box 192.168.1.0/24,user,[[80b51b60786b3de2]]

Vista en la consola de todos los agentes

Si la configuración del servidor satellite ha sido correcta deberiamos obtener una vista de agentes parecida a esta:



Selección 146.png


Generalmente en todas las maquinas se crearan modulos de tipo ICMP (Ping y Latencia) pero en algunas maquinas tambien se pueden generar modulos de tipo SNMP y WMI.

En las maquinas que tienen habilitado wmi se pueden generar los siguientes modulos:



Modulos.png


En las maquinas con SNMP habilitado se pueden generar los siguientes modulos:



Modulos1.png


En el apartado de operaciones masivas de la consola de pandora hay una sección especial dedicada al servidor satellite donde se pueden realizar diversas acciones de edición y borrado de agentes y modulos de forma massiva:



Operación massivas.png

Lista negra de SNMP

Al monitorizar redes grandes los módulos SNMP que devuelven datos inválidos pueden afectar al rendimiento del Servidor Satélite y muchos módulos pueden ponerse en desconocido. El Servidor Satélite puede leer una lista negra de módulos SNMP que serán descartados en el arranque antes de la ejecución.

Para crear una lista negra nueva edite el fichero de configuración /etc/pandora/satellite_server.conf y asegúrese de que snmp_blacklist está configurado. A continuación ejecute:

   satellite_server -v /etc/pandora/satellite_server.conf

Y reinicie el Servidor Satélite. La lista negra se puede regenerar tantas veces como sea necesario.