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:
# ELK Plugin conf file
# Defines ip server and port of ELK server.
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:
# ELK Plugin conf file
# Defines if should be executed as agent or as server plugin, set 0 to execute as
server plugin or set 1 to execute as agent plugin.
as_agent_plugin=1
Remoto:
# ELK Plugin conf file
# Defines if should be executed as agent or as server plugin, set 0 to execute as
server plugin or set 1 to execute as agent plugin.
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:
# If as_agent_plugin is 0, please set the agent configuration:
agent_name=adama
agent_interval=300
agent_group=Servers
# And the transf. options
## Pandora Server configuration
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:
## Set 1 if you want to monitor number of index.
total_index=1
red_index=1
yellow_index=1
## Set 1 if you want to monitor index size.
total_index_size=1
red_index_size=1
yellow_index_size=1
## Set 1 if you want to monitor snapshots.
snapshots=1
## Set 1 if you want to monitor Port connections.
elastic_conections=1
kibana_conections=1
## Set 1 if you want to monitor memory usage of ELK.
memory_usage=1
## Set 1 if you want to monitor cpu usage of ELK.
cpu_usage=1
## Set 1 if you want to monitor disk metrics of ELK.
disk_indices=1
disk_used=1
## Set 1 if you want to monitor documents count of 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