ElastAlert es un sistema de Alertas creado por Yelp el cual nos permite monitorizar en Realtime nuetras APIs y así poder detectar comportamientos anómalos y/o errores.
Su arquitctura es muy simple ya que se basa en un sistema de consultas a Elasticsearch y en función del resultado de la misma, lanzar si corresponde una Alerta a nuestro Dashboard o herramienta de bugs, Slack, etc… tiene integración con JIRA y otras herramientas de ésta misma tipología.
Su configuración es muy simple ya que dispone de unos ficheros de configuración donde podremos crear las reglas que se requieran, por ejemplo:
name: Large Number of 500 Responses
es_host: IP-HOST-Elasticsearch
es_port: 9200
index: logstash-*
filter:
- term:
response_code: 500
type: frequency
num_events: 100
timeframe:
hours: 1
alert:
- email
email: example@midominio.com
Por ejemplo podemos configurar que el número de conexiones, en caso que sea superior a 100 en un tiempo determinado, 1h por ejemplo, nos alerte mediante un evento:
type: frequency
num_events: 100
timeframe:
hours: 1
En este caso, la Alerta podría ir dirigida a JIRA o directamente a Slack mediante una configuración como:
alert_text: |
ElastAlert has detected suspicious activity for {0}.
At {1}, an {2} error occured. Do something about it!
alert_text_args:
- username
- timestamp
- error_type
Realmente hay muchas posibilidades de configuraciones, inclusive hay una Wiki de tiplogías de reglas y ejemplos para poder hacerlo: http://elastalert.readthedocs.io/en/latest/ruletypes.html
Autor: Joakim Vivas