Si tiene que administrar grandes cantidades de datos, algún día deseará una herramienta que simplemente señale las anomalías o inconsistencias en los datos y lo alerte en tiempo real.
¿Qué es ElastAlert?
ElastAlert está diseñado exactamente para hacer eso. Es un marco simple que alerta cuando detecta anomalías, picos u otros patrones de reglas de los datos agregados en Elasticsearch.
Por ejemplo, podría estar configurando una alerta de "frecuencia", que le notificará cuando haya una cantidad X de eventos en Y tiempo.
O es posible que desee recibir una advertencia inmediata cuando se produzca un evento de "pico", es decir, cuando la velocidad a la que ocurre un evento aumente o disminuya repentinamente.
Otros tipos de reglas que se incluyen son:
- 'línea plana':cuando hay menos de X eventos en Y tiempo
- 'lista negra/lista blanca':cuando un determinado campo coincide con 'lista negra' o 'lista blanca'
- 'cualquiera':cuando ocurre un evento que coincide con un filtro determinado
- 'cambio':cuando un campo tiene dos valores diferentes dentro de un período de tiempo específico
Tipos de alerta admitidos
Actualmente, ElastAlert tiene soporte integrado para los siguientes tipos de alerta.
- Comando
- Correo electrónico
- JIRA
- OpsGenie
- Redes sociales
- HipChat
- Slack
- Telegrama
- Chat de Google
- Depurar
- Pisotón
- la colmena
Instalar ElastAlert con Elasticsearch en Ubuntu
En este artículo, le mostramos cómo instalar ElastAlert en ubuntu 18.04.
Requisitos
- Búsqueda elástica
- ISO8601 o datos con marca de tiempo de Unix
- Python 2.7
- pip, ver requisitos.txt – (https://github.com/Yelp/elastalert/blob/master/requirements.txt)
- Paquetes para ubuntu: python-pip python-dev libffi-dev libssl-dev
Instalación de requisitos previos
Instale Python 2.7:
sudo apt-get install python-minimal
Compruebe la versión de Python:
sudo python --version
Luego obtendrá resultados para python 2.7.
Instale los paquetes necesarios:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Hay algunas formas diferentes de instalar ElastAlert y aquí vamos a hacer la instalación clonando el repositorio de git.
Entonces necesitamos instalar "git" antes de continuar. Por lo general, Ubuntu 18.04 ya tiene git instalado.
Verifique la versión instalada o disponible de git:
sudo apt-cache policy git
Esto dará los detalles de las versiones de git instaladas y candidatas.
Si no puede ver la versión de git instalada, ejecute el siguiente comando.
sudo apt-get install git
Vamos a clonar el repositorio de ElastAlert a la carpeta “/opt”, por lo tanto cambie de directorio.
sudo cd /opt
Ahora clona un repositorio git.
sudo git clone https://github.com/Yelp/elastalert.git
Ahora instala los módulos.
sudo pip install "setuptools>=11.3"
sudo python setup.py install
Es posible que obtenga un error como este.
Luego ejecute el siguiente comando para instalar "PyOpenSSL"
sudo pip install PyOpenSSL
Aquí vamos a integrar con Elastic search 6.x. Entonces, Elasticsearch 5.0+ se instalará aquí.
sudo pip install "elasticsearch>=5.0.0"
Configurar ElastAlert
Clonamos el repositorio de ElastAlert en el directorio “/opt”, así que cambie el directorio antes de continuar.
sudo cd /opt/elastalert/
Ahora obtenemos una copia del archivo config.yaml.example como config.yaml
sudo cp config.yaml.example config.yaml
Modifica el archivo config.yaml.
vim config.yaml
Descomente las siguientes líneas y modifíquelas.
Nombre de host o IP de ElasticSearch
es_host: elk-server
Puerto de ElasticServer
es_port: 9200
Descomente la autenticación básica:
es_username: es_password:
Guarde y cierre el archivo.
Crear índice ElastAlert.
sudo elastalert-create-index
Crear una regla
Ahora edite el archivo titulado “example_frequency.yaml” dentro de la carpeta “/opt/elastalert/example_rules/”
sudo vim example_rules/example_frequency.yaml
Descomente y modifique el índice de la siguiente manera:
index: filebeat-*
Ahora defina un filtro para una alerta. Aquí filtramos las palabras clave con la cadena "excepción".
filter: - query_string: query: "message:*exception*"
Configure Alter con Slack. Aquí debe crear un canal de Slack y un webhook entrante. Luego agregue los detalles de configuración de la siguiente manera.
alert: - "slack" slack: slack_webhook_url: "https://hooks.slack.com/services/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" slack_username_override: "Fosslinux-Elastic-Bot" slack_channel_override: "#fosslinuxalert" slack_emoji_override: ":robot_face:" slack_msg_color: "danger"
Puede seguir los pasos a continuación para crear un canal de Slack.
Configuración del canal Slack para ElastAlert
Si no tiene una cuenta de Slack, puede obtener una simplemente registrándose. Vaya a "slack.com", ingrese su dirección de correo electrónico y haga clic en "COMENZAR".
Luego haga clic en 'crear nuevo espacio de trabajo' y verifique su dirección de correo electrónico. Ahora puede iniciar sesión y ver el tablero.
Vaya a Explorar aplicaciones -> Integraciones personalizadas -> Webhooks entrantes -> Nueva configuración
A continuación, haga clic en "Crear nuevo canal" para crear un canal para enviar alertas.
A continuación, haga clic en el botón "Crear canal" y accederá a la página de integración de Webhook.
Haga clic en el botón 'Agregar integración entrante de WebHooks'. Esto creará la configuración de integración.
Regla de prueba
Cambiar Directorio a ElastAlert.
sudo cd /opt/elastalert/
Ejecute el siguiente comando para probar la regla configurada.
sudo elastalert-test-rule example_rules/example_frequency.yaml
Ejecutar ElastAlert
Iniciaremos ElastAlert como un servicio en segundo plano. Este comando debe ejecutarse dentro de la carpeta “/opt/elastalert/”.
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
Ahora ElastAlert comenzará a verificar las consultas en Elasticsearch (en el servidor ELK). Si hay una coincidencia, disparará una alerta a Slack.
Alerta activada.
La alerta irá a Slack Channel.
Eso es todo, instalamos y configuramos con éxito ElastAlert con la búsqueda elástica, y también configuramos alertas para Slack. Esperamos que este tutorial exhaustivo lo ayude a instalar ElastAlert y configurar algunas reglas para activar alertas fácilmente. Las preguntas y los comentarios son bienvenidos en la sección de comentarios.