Monitoreo de archivos de registro utilizando Prometheus

Monitoreo de archivos de registro utilizando Prometheus
Puedes usar el exportador de terceros Prometheus grok_exporter para analizar archivos de registro y exportar métricas a Prometheus.

grok_exporter Utiliza expresiones regulares para analizar diferentes datos de los archivos de registro. Los archivos de registro son coincidentes en línea por línea utilizando una expresión regular, y los datos coincidentes se almacenan en diferentes variables. Luego, los datos de estas variables se exportan a través de grok_exporter.

Una vez que agregue el grok_exporter servidor a Prometeo como objetivo, Prometeo puede monitorear los archivos de registro deseados a través de grok_exporter.

En este artículo, le mostraré cómo instalar grok_exporter en Linux (Ubuntu 20.04 LTS en mi caso), genere archivos de registro ficticio, configure grok_exporter para monitorear el archivo de registro ficticio y monitorear el archivo de registro ficticio con Prometheus. Entonces empecemos.

Tabla de contenido:

  1. Cosas que necesitarás
  2. Descargar e instalar grok_exporter
  3. Generando un archivo de registro ficticio con Fakedata
  4. Configuración de grok_exporter
  5. Agregar grok_exporter a Prometeo
  6. Métricas de raspado de Grok_Exporter con Prometeo
  7. A dónde ir después?
  8. Conclusión
  9. Referencias

Cosas que necesitarás:

Debe tener a Prometheus instalado en su computadora para poder monitorear archivos de registro con Prometheus.

Si necesita ayuda para instalar Prometheus en su computadora, lea el artículo sobre cómo instalar Prometheus en Ubuntu 20.04 LTS.

Descarga e instalación de grok_exporter:

En esta sección, le mostraré cómo descargar e instalar grok_exporter en su computadora.

Primero, navegue al ~/Descargas Directorio de la siguiente manera:

$ cd ~/descargas

Descargue la última versión del grok_exporter Archivo con el siguiente comando:

$ wget https: // github.com/fstab/grok_exporter/comunes/download/v1.0.0.RC5/GROK_EXPORTER-1.0.0.RC5.Linux-amd64.cremallera

grok_exporter Se está descargando el archivo. Puede tomar un tiempo completar.

En este punto, el grok_exporter El archivo debe descargarse.

Una vez el grok_exporter Se descarga el archivo, debe encontrar un nuevo archivo grok_exporter-1.0.0.RC5.Linux-amd64.cremallera en el ~/Descargas Directorio como se marca en la captura de pantalla a continuación.

$ ls -lh

Extraer el archivo grok_exporter grok_exporter-1.0.0.RC5.Linux-amd64.cremallera Con el siguiente comando:

$ unzip grok_exporter-1.0.0.RC5.Linux-amd64.cremallera

El archivo grok_exporter debe extraerse.

Un nuevo directorio grok_exporter-1.0.0.RC5.Linux-amd64/ debe crearse en el ~/Descargas directorio.

$ ls -lh

Ahora, cambie el nombre del grok_exporter-1.0.0.RC5.Linux-amd64/ directorio Grok-Exporter/ y muévalo en el /optar Directorio de la siguiente manera:

$ sudo MV -V GROK_EXPORTER -1.0.0.RC5.Linux-Amd64 /Opt /Grok-Exporter

Ahora, cree un archivo de servicio Systemd examinador.servicio en el /Opt/Grok-Exporter Directorio de la siguiente manera:

$ sudo nano/opt/grok-exporter/grok-exporter.servicio

Escriba las siguientes líneas en el examinador.servicio archivo.

[Unidad]
Descripción = Prometheus Grok_Exporter Server
[Servicio]
Reiniciar = siempre
WorkingDirectory =/Opt/Grok-Exporter
Execstart =/opt/grok-examer/grok_exporter --config =/opt/grok-exporter/config.YML
Execreload =/bin/kill -hup $ mainpid
TimeoutStopSec = 20s
Sendsigkill = no
[Instalar]
Wantedby = Multi-user.objetivo

Una vez que haya terminado, presione + X seguido por Y y Para salvar el examinador.servicio archivo.

Para instalar el examinador.servicio archivo de servicio systemd en su computadora, cree un enlace simbólico del /Opt/Grok-Exporter/Grok-Exporter.servicio archivo en el /etc/systemd/sistema Directorio de la siguiente manera:

$ sudo ln -s/opt/grok-exporter/grok-exporter.servicio/etc/systemd/system/grok-examer.servicio

Copia el configuración.YML archivo del /Opt/Grok-Exporter/Ejemplo directorio al /Opt/Grok-Exporter Directorio de la siguiente manera:

$ sudo CP -V/Opt/Grok -Exporter/Ejemplo/config.YML/OPT/GROK-EXPORTER/

NOTA: El configuración.YML El archivo se usa para configurar grok_exporter. El ejemplo (predeterminado) configuración.YML El archivo es bueno para probar si grok_exporter está trabajando. Te mostraré cómo configurar grok_exporter En una sección posterior de este artículo.

Para que los cambios de Systemd entren en vigencia, ejecute el siguiente comando:

$ sudo SystemCtl-Daemon-Reload

Ahora comienza el examinador servicio systemd con el siguiente comando:

$ sudo systemctl start grok-exporter.servicio

El examinador El servicio Systemd debe ser activo/en ejecución, Como puede ver en la captura de pantalla a continuación. Significa grok_exporter está funcionando bien.

$ sudo systemctl status grok-examer.servicio

Generando un archivo de registro ficticio con Fakedata:

Para generar archivos de registro falsos, usaré Lucapette/Fakedata en este artículo. Hay muchas otras herramientas que puede usar para generar archivos de registro falsos. Puede usar cualquiera de ellos si lo desea.

Primero, navegue al ~/Descargas Directorio de la siguiente manera:

$ cd ~/descargas

Descargar fakedata, Ejecute el siguiente comando:

$ wget https: // github.com/Lucapette/Fakedata/Lotes/Descargar/V1.1.2/Fakedata_1.1.2_linux_amd64.alquitrán.GZ

Fakedata Archive se debe descargar.

Una vez que se descarga el archivo Fakedata, debería ver un nuevo Fakedata_1.1.2_linux_amd64.alquitrán.GZ en el ~/Descargas directorio.

$ ls -lh

Extraer el archivo de Fakedata Fakedata_1.1.2_linux_amd64.alquitrán.GZ Con el siguiente comando:

$ tar xvzf Fakedata_1.1.2_linux_amd64.alquitrán.GZ

Debe encontrar un nuevo ejecutable fakedata en el ~/Descargas Directorio como se marca en la captura de pantalla a continuación.

$ ls -lh

Mueve el fakedata binario a /usr/local/bin Directorio de la siguiente manera:

$ sudo mv -v Fakedata/usr/local/bin/

Ahora, debería poder acceder fakedata Desde la línea de comando.

$ Fakedata -Versión

Crear un nuevo script de shell hola-http en el /usr/local/bin Directorio de la siguiente manera:

$ sudo nano/usr/local/bin/hello-http

Escriba las siguientes líneas de códigos en el hola-http guion.

#!/bin/bash
LogFile =/tmp/hello-http.registro
mientras que es cierto
hacer
nombre de usuario de Fakedata http.Método enum:/,/login,/logrout,/mensajes ipv4 --limit 1 >> $ logfile
dormir 1
hecho
Salir 0

Una vez que haya terminado, presione + X seguido por Y y Para guardar el script Hello-Http.

Agregar permiso de ejecución al script shell /usr/local/bin/hello-http como sigue:

$ sudo chmod +x/usr/local/bin/hello-http

Para probar el hola-http Script, ejecutarlo de la siguiente manera:

$ Hello-Http

Un archivo de registro /tmp/hello-http.registro debe generarse. Se debe agregar una nueva entrada al archivo de registro cada segundo.

$ tail -f /tmp /hello -http.registro

Cada línea del /tmp/hello-http.registro El archivo debe estar en el siguiente formato,

Configuración de grok_exporter:

En esta sección, le mostraré cómo configurar grok_exporter para monitorear el archivo de registro generado /tmp/hello-http.registro.

Abre el grok_exporter archivo de configuración /Opt/Grok-Exporter/config.YML con el editor de texto Nano de la siguiente manera:

$ sudo nano/opt/grok-exporter/config.YML

El archivo de configuración predeterminado debe verse de la siguiente manera.

En el aporte sección, especifica el camino del archivo de registro que desea monitorear.

En este caso, quiero monitorear el archivo de registro /tmp/hello-http.registro.

Lee todo debiera ser verdadero Si desea monitorear todo el archivo de registro y las líneas recientemente agregadas desde el archivo de registro.

Lee todo debiera ser FALSO Si desea monitorear solo las líneas recién agregadas desde el archivo de registro.

Para extraer datos del archivo de registro /tmp/hello-http.registro, Modificar la sección de métricas del configuración.YML Archivo de la siguiente manera:

Aquí, el tipo métrico es contador. Grok_Exporter también admite otros tipos métricos de Prometheus. Si desea utilizar un tipo métrico Prometheus diferente, consulte la documentación oficial de Grok_Exporter. Los enlaces se dan a continuación.

Grok_Exporter - Tipo de combate métrico

GROK_EXPORTER - Tipo de métrica de calibre

Grok_Exporter - Tipo de métrica de histograma

Grok_Exporter - Tipo de métrico resumen

El nombre de la métrica será hola_http_total.

El ayuda La propiedad es una breve descripción de lo que hace la métrica.

El fósforo La propiedad se utiliza para hacer coincidir los datos diferentes de cada línea de archivo de registro y almacenarlos en sus respectivas variables.

La primera columna del /tmp/hello-http.registro El archivo es el . El ; es de la palabra de tipo de patrón, y los datos extraídos con este tipo se almacenarán en la variable de usuario.

De la misma manera, la segunda columna es y también es del tipo de patrón PALABRA, y los datos extraídos se almacenarán en el http_method variable.

La tercera columna del archivo de registro es la ruta de URL. Es del tipo de patrón Uripathparam, y se almacenará en el http_path variable.

La cuarta columna del archivo de registro es la dirección IP. Es del tipo de patrón IP, y se almacenará en la variable ip_addr.

Hay muchos otros tipos de patrones que puede usar para extraer datos del archivo de registro. Puede encontrar todos los tipos de patrones compatibles en el /Opt/Grok-Exporter/Patterns/Grok-Patterns archivo.

$ sudo gat/opt/grok-exporter/patrones/patrones de grok

Una vez que los datos se extraen y almacenan en diferentes variables, puede elegir las variables que desea exportar a través de grok_exporter.

Las variables que desea exportar a través de grok_exporter debe figurarse en el etiquetas Sección marcada en la captura de pantalla a continuación.

También puede crear nuevos tipos de patrones y hacer coincidir los datos de cada línea de registro utilizando los tipos de patrones recién creados.

Para crear nuevos tipos de patrones, agrega los tipos de patrones en el gok_patterns Sección de la configuración.YML archivo.

Por defecto, un tipo de patrón personalizado Exim_message se define y se puede usar para hacer coincidir los datos de los archivos de registro utilizando la expresión regular [A-Za-Z]*.

Para que coincida con el estado http (yo.mi., Conseguir, publicar, poner), puede definir un nuevo tipo de patrón Http_status [a-z] 3,4 y úselo para que coincida con los datos del archivo de registro de la siguiente manera. Espero que captes la idea.

La versión final del configuración.YML El archivo se da en la captura de pantalla a continuación.

Una vez que hayas terminado de hacer cambios en el configuración.YML archivo, presione + X seguido por Y y Para guardarlo.

Para que los cambios entren en vigencia, reinicie el examinador Servicio Systemd de la siguiente manera:

$ sudo systemctl reiniciar Grok-Exporter.servicio

Si todo está bien (no ha cometido ningún error en el archivo de configuración configuración.YML), el examinador El servicio Systemd debe ser activo/en ejecución.

$ sudo systemctl status grok-examer.servicio

Agregar grok_exporter a Prometheus:

Ahora tienes que agregar grok_exporter a Prometeo como objetivo.

Primero, debe conocer la dirección IP de la computadora donde ha instalado grok_exporter.

En mi caso, la dirección IP es 192.168.3.149. Será diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.

$ hostname -i

Luego, abra el archivo de configuración de Prometheus Prometeo.YML con el editor de texto Nano de la siguiente manera:

$ sudo nano/opt/prometheus/prometheus.YML

En el scrape_configs Sección de la Prometeo.YML Archivo, agregue las líneas marcadas en la captura de pantalla a continuación.

NOTA: No olvide reemplazar la dirección IP de destino del examinador trabajo con la dirección IP de la computadora donde tiene grok_exporter instalado.

Para que los cambios entren en vigencia, reinicie el Prometeo Servicio Systemd de la siguiente manera:

$ sudo systemctl reiniciar Prometheus.servicio

NOTA: He instalado Prometeo en la misma computadora que grok_exporter. Entonces, la dirección IP de la computadora donde he instalado Prometheus es la misma que Grok_Exporter. En mi caso, es 192.168.3.149. Asegúrese de reemplazarlo con el suyo de ahora en adelante.

Ahora, visite la página de objetivos de Prometeo en la URL http: // 192.168.3.149: 9090/objetivos, y deberías ver que el examinador El objetivo está en el ARRIBA estado.

Métricas de raspado de Grok_Exporter con Prometheus:

Antes de comenzar a raspar las métricas de grok_exporter Con Prometheus, inicie el generador de archivos de registro ficticio hola-http Con el siguiente comando:

$ Hello-Http

Ahora, visite la página del gráfico Prometheus en http: // 192.168.3.149: 9090/gráfico y ejecute la expresión hola_http_total.

Como puede ver, los datos se extraen del archivo de registro /tmp/hello-http.registro. Cada línea del archivo de registro es una entrada separada en Prometheus.

También puede filtrar los datos. Por ejemplo, supongamos que desea enumerar solo las entradas donde el http_method es obtener. Para hacer eso, ejecute la expresión hello_http_total http_method = "get".

También puede contar el número de entradas que coinciden con ciertos criterios. Por ejemplo, para contar el número de solicitudes HTTP GET, puede ejecutar la expresión Count (hello_http_total http_method = "get".

Como puede ver, el número de solicitudes de obtención de HTTP es 30.

Si ejecuta la misma expresión después de unos segundos, el número de solicitudes de obtención de HTTP debería aumentar.

A dónde ir después?

Para obtener más información sobre la configuración grok_exporter, Lea la página oficial de documentación de configuración GROK_EXPORTER.

Conclusión:

En este artículo, le he mostrado cómo instalar grok_exporter en Ubuntu 20.04 LTS. También le he mostrado cómo generar archivos de registro ficticio con Fakedata y configurar Grok_Exporter para monitorear el archivo de registro generado. Le he mostrado cómo agregar grok_exporter como objetivo en Prometheus y monitorear los archivos de registro con Prometheus también.

Referencias:

  1. FSTAB/GROK_EXPORTER: Exportar métricas de Prometheus a partir de datos de registro arbitrarios no estructurados.
  2. Lucapette/Fakedata: Utilidad CLI para la generación de datos falsos
  3. Complemento de filtro de grok | Referencia de Logstash [7.15] | Elástico
  4. Logstash-Patterns/Grok-Patterns en Master · HPCugent/Logstash-Patterns
  5. https: // github.com/logstash-plugins/logstash-paterns-core/tree/master/patrones/ecs-v1
  6. Logstash: recopilar, analizar, transformar registros | Elástico
  7. grok_exporter/config.MD en Master · Fstab/Grok_Exporter