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
- Matriz de compatibilidad
- Prerrequisitos
- Configuración
- Ejecución manual
- Módulos generados por el plugin
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
- Conexión con el servicio Tentacle asociado a su servidor de Pandora FMS (para la ejecución remota del plugin) para así enviar los datos (ficheros XML) generados por el plugin.
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):}
- Disk_indices.
- Disk_used.
- Document_count.
- Elasticsearch_status (sólo en ejecución como plugin de agente).
- Elastic_port_Connections (sólo en ejecución como plugin de agente).
- ELK_Cpu_use (solo en ejecución como plugin de agente).
- ELK_Memory_use (solo en ejecución como plugin de agente).
- Index_size.
- Kibana_Port_Connections (sólo en ejecución como plugin de agente).
- Kibana_status (sólo en ejecución como plugin de agente).
- Logstash_status (sólo en ejecución como plugin de agente).
- Nginx_status (sólo en ejecución como plugin de agente).
- Red_Index.
- Red_Index_size.
- Snapshots.
- Total_index.
- Yellow_index.
- Yellow_inex_size.