Elasticsearch monitoring

Plugin para la monitorización de servidores ELK, última revisión 17/04/2019.

ELK es un conjunto de herramientas compuesto por Elasticsearch (servidor de búsqueda basado en Lucene), Logctash (herramienta de administración de logs) y Kibana (herramienta para visualizar y explorar datos). Un potente motor de búsqueda de texto, una herramienta de administración de logs y otra para visualizar y explorar datos.

Introducción

Plugin para la monitorización de servidores ELK, última revisión 17/04/2019.

ELK es un conjunto de herramientas compuesto por Elasticsearch (servidor de búsqueda basado en Lucene), Logctash (herramienta de administración de logs) y Kibana (herramienta para visualizar y explorar datos).

Un potente motor de búsqueda de texto, una herramienta de administración de logs y otra para visualizar y explorar datos.

Matriz de compatibilidad

Desarrollado contra Kibana 6.2.4.

Prerrequisitos

Se requiere

El despliegue de este plugin por binarios no requiere ningún requisito especial.

Requiere la librería PandoraFMS::PluginTools.pm

Esta librería está disponible con la instalación del paquete Pandora FMS OpenSource.

Puede descargar la última versión de:

https://github.com/pandorafms/pandorafms/blob/develop/pandora_server/lib/PandoraFMS/PluginTools.pm

Configuración

Conexión:
# Archivo de configuración del complemento ELK
# Define la dirección IP y el puerto del servidor ELK.
elastic_server=127.0.0.1
elastic_port=9200


elastic_server
           Dirección IP o FQDN del servidor ELK.
elastic_port
          Puerto donde escucha el servidor ELK (9200 por defecto).

El fichero de configuración del plugin Pandora FMS para ELK permite ejecutarlo de dos maneras:

Agente:
# Archivo de configuración del complemento ELK
# Define si se debe ejecutar como complemento de agente o como complemento de servidor. Establezca 0 para ejecutarlo como complemento de servidor o 1 para ejecutarlo como complemento de agente.
as_agent_plugin=1

Remoto:
# Archivo de configuración del complemento ELK
# Define si se debe ejecutar como complemento de agente o como complemento de servidor. Establezca 0 para ejecutarlo como complemento de servidor o 1 para ejecutarlo como complemento de agente.
as_agent_plugin=0


as_agent_plugin
           1 para ejecutar como plugin de agente.
           0 para ejecutar como plugin remoto.

Si la ejecución del plugin se va a realizar de manera remota es necesario configurar los siguientes parámetros:

# Si as_agent_plugin es 0, configure el agente:
agent_name=adama
agent_interval=300
agent_group=Servers
# Y las opciones de transferencia
## Configuración del servidor Pandora
mode=tentacle
tentacle_ip=127.0.0.1
tentacle_port=41121
tentacle_opts
tentacle_client="tentacle_client"
local_folder=/var/spool/pandora/data_in
temporal=/tmp


agent_name
           Nombre del agente donde se entregará la información.

agent_interval
           Intervalo en seg. de ejecución del agente.

agent_group
           Grupo al que va a pertenecer el agente en Pandora FMS.
mode
           Modo de transferencia de ficheros XML, puede ser:
                local: copia los ficheros a local_folder.
                tentacle: transfiere los ficheros a tentacle_ip por tentacle_port.

tentacle_ip
            Dirección IP o FQDN donde Pandora FMS está trabajando.

tentacle_port
            Puerto donde el servicio Tentacle asociado a su servidor Pandora FMS está escuchando.

tentacle_opts
           Opciones extra para el cliente Tentacle.

tentacle_client
           Path donde encontrar el binario del cliente tentacle.

local_folder
           Ubicación donde mover los archivos en el modo local.

temp
           Ubicación temporal donde almacenar los archivos antes de enviarlos.

Módulos:

## Establezca 1 si desea supervisar el número de índices.
total_index=1
red_index=1
yellow_index=1
## Establezca 1 si desea supervisar el tamaño del índice.
total_index_size=1
red_index_size=1
yellow_index_size=1
## Establezca 1 si desea supervisar las instantáneas.
snapshots=1
## Establezca 1 si desea supervisar las conexiones de puerto.
elastic_conections=1
kibana_conections=1
## Establezca 1 si desea supervisar el uso de memoria de ELK.
memory_usage=1
## Establezca 1 si desea supervisar el uso de la CPU de ELK.
cpu_usage=1
## Establezca 1 si desea supervisar las métricas del disco de ELK.
disk_indices=1
disk_used=1
## Establezca 1 si desea supervisar el recuento de documentos de ELK.
document_count=1
## Check ELK services, 1 enabled 0 disabled.
nginx_status=1
elastic_status=1
logstash_status=1
kibana_status=1

0 → Deshabilita la monitorización.
1 → Habilita la monitorización.


total_index
          Cantidad de índices generados.

red_index
          Cantidad de índices en estado rojo.

yellow_index
          Cantidad de índices en estado amarillo.

total_index_size
          Tamaño total de índices en mb.

red_index_size
          Tamaño de índices en estado rojo en mb.

yellow_index_size
          Tamaño de índices en estado amarillo en mb.

snapshots
          Cantidad de capturats generadas.

elastic_connections
           Número de conexiones al puerto donde escucha elastic (puerto 9200).
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

kibana_connections
           Número de conexiones al puerto donde escucha kibana (puerto 5601).
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

memory_usage
           Uso de memoria del servidor ELK.
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

cpu_usage
          Uso de cpu del servidor ELK.
          Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

disk_used
          Uso de disco en porcentaje del servidor ELK.

disk_indices
          Tamaño de disco usado por los índices del servidor ELK.

document_count
           Cuenta el número de documentos usado por el servidor ELK.

nginx_status
           Estado del servicio nginx, 0 down, 1 up.
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

elastic_status
           Estado del servicio elastic, 0 down, 1 up.
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

logstash_status
           Estado del servicio logstash, 0 down, 1 up.
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

kibana_status
           Estado del servicio kibana, 0 down, 1 up.
           Este módulo SOLO ESTÁ DISPONIBLE en la ejecución como plugin de agente.

Ejecución manual

Para ejecutar el plugin configure el archivo de configuración según las instrucciones precedentes.

Ejecución del plugin:

Versión binaria:

./pandora_elk.64 pandora_elk.conf


Versión código sin librerías desplegadas:

perl -I ./lib pandora_elk.pl pandora_elk.conf


Donde, lib es un directorio que contiene la carpeta PandoraFMS, donde se almacena la librería PluginTools.pm

**Se recomienda la ejecución binaria**

Módulos generados por el plugin

La ejecución estándar de este plugin devolverá los siguientes módulos por defecto (con todos los bloques opcionales habilitados):}