Práctica ELK plug-in-elastalert2 de alarma, compatible con la versión elk8.0, realiza la alarma del robot Qiwei

Recientemente completé la producción de ELK, que también se presentó en el artículo anterior, y luego estaba pensando en comenzar a monitorear y alarmar registros. Debido a problemas de mano de obra, tengo que lidiar con problemas de producción, así como con algunas operaciones y mantenimiento diarios. trabajo, así que tengo que investigar un poco sobre el monitoreo de registros y terminarlo el fin de semana.

En pocas palabras, el estado actual de operación y mantenimiento es que el departamento de operación y mantenimiento es de reciente creación. Antes, todo era I + D y autogestionado, y cada uno hacía lo suyo, por lo que hay muchos problemas y Hay mucha construcción no estándar. De hecho, esto es muy doloroso. Lo que estoy haciendo recientemente es clasificar diferentes sistemas.

Es básicamente una construcción de 0 a 1. Cuando estaba construyendo alces antes, realmente pensé en cómo hacer el monitoreo de registros posterior. La idea original era escribirlo yo mismo, pero no tenía suficiente tiempo ni tanta energía. para hacerlo Haz estas cosas.

Hace mucho tiempo, hubo algunos complementos, elastalert y sentinl. El primero no se actualizó hace mucho tiempo. El segundo actualmente solo es compatible con la versión 7, así que vi elastalert2 y eché un vistazo a la última actualización. Fue reciente, y la documentación también es muy completa, aunque está toda en inglés.

elastalert2 Referencias:

文档:https://elastalert2.readthedocs.io/en/latest/index.htmlgithub地址:https://github.com/jertel/elastalert2

Este complemento admite la implementación de Docker y la implementación en K8. Se proporcionan los archivos Docker y Helm relevantes y, básicamente, están listos para usar de inmediato.

Lo inicié directamente con Python local. Si necesita Docker o K8, puede comprobarlo usted mismo.

Software y versiones requeridos:

python 3.10opensll 1.1.1 (python 3.10需要)

Si instala Python, no entraré en detalles aquí.

Pasos de instalación:

pip install elastalert2 (可能会有setuptools版本低的情况,自行更新)git clone https://github.com/jertel/elastalert2.gitpython setup.py install

Dos archivos de configuración:

Una es la configuración básica, hay una configuración básica en los ejemplos.

#必须配置项#告警规则目录rules_folder: examples/rulesrun_every:  minutes: 1buffer_time:  minutes: 15es_host: es ipes_port: 9200
#非必须配置#因为我是开启了鉴权的,所有需要开启ssl认证use_ssl: Truees_username: useres_password: passwdca_certs: ./http_ca.crt#会建立一个对应d的索引,后面可以直接去建立writeback_index: elastalert_status#retry window for failed alerts.alert_time_limit:  days: 2

Luego está la configuración de las reglas de alarma.

El valor predeterminado está en la carpeta de reglas en ejemplos. Ya hay bastantes configuraciones básicas, que se pueden configurar según sea necesario. Configuré un tipo de frecuencia aquí como prueba.

El tipo de frecuencia está más en línea con una medida de alerta diaria, y la alerta temprana se puede dar de acuerdo con el número de ocurrencias dentro del rango de tiempo.

Admite bastantes canales de alarma. Puede leer la introducción oficial. Utilizo el canal POST aquí y luego proceso los datos y la alarma a través del robot Qiwei. El Prometheus anterior también usaba esta alarma. El formato de datos es diferente. .

Canales de alarma soportados:

En cuanto a la configuración de reglas, puedes ver:

#可以针对字段做一些添加,这个策略的话,就是30分钟内出现50次404就告警#query 也可以根据一些实际的需求进行调整#而且支持多个rule配置文件name: "Exemple  webhook alert"type: frequencyindex: ng*use_strftime_index: truefilter:- query:    query_string:      query: "status: 404"num_events: 50timeframe:  hours: 0.5realert:  minutes: 0include: ["time_local","fields.host_ip"]alert_text: "Alerts at {0} on the host {1}.\n```"alert_text_args: ["timestamp","status"]alert: posthttp_post_url: "http://192.168.200.9:5001"

Antes de comenzar, debe inicializar el índice y ejecutar directamente:

Si la autenticación está habilitada, también puedes hacer una prueba para ver si puedes conectarte a elasticsearch.

$elastalert-create-indexNew index name (Default elastalert_status)Name of existing index to copy (Default None)New index elastalert_status createdDone!

El archivo de configuración de reglas está listo, también puede hacer una prueba para verificar si el archivo de configuración es normal

Esto se puede lograr con el siguiente comando:

#这个命令也可以通过 -h 然后帮助#这条命令只是检测配置文件是否正常#如果要确认是告警是否能触发的话,需要加 --alertelastalert-test-rule ./examples/rules/exemple_discord_any.yaml --config=./examples/config.yaml

De hecho, al comienzo de mi prueba, seguía informando 0 resultados. De hecho, hay un problema con la configuración del índice. Puede probarlo varias veces usted mismo.

Esa es la pregunta, pero la respuesta es sólo una sugerencia.

Cuando agrega --alert a la prueba, si hay una coincidencia, puede activar una alarma, como esta

El efecto real sobre Qiwei Robot es el siguiente:

Por supuesto, usted mismo puede definir algunos campos en la alarma. Esta es solo la primera versión y el camino es claro.

Para este último, pueden ser algunas palabras clave de registro específicas, agregar una estrategia de recuperación de alarma, etc. Si hay tiempo más tarde, lo actualizaré.

Guess you like

Origin blog.csdn.net/smallbird108/article/details/125462209