Si vous devez gérer d'énormes quantités de données, vous vous retrouverez un jour à souhaiter un outil qui se contenterait de signaler les anomalies ou les incohérences dans les données et de vous alerter en temps réel.
Qu'est-ce qu'ElastAlert ?
ElastAlert est conçu pour faire exactement cela. Il s'agit d'un cadre simple qui alerte lorsqu'il détecte des anomalies, des pics ou d'autres modèles de règles à partir de données ajoutées dans Elasticsearch.
Par exemple, vous pouvez configurer une alerte de "fréquence", qui vous avertira lorsqu'il y aura un nombre X d'événements en un temps Y.
Ou vous voudrez peut-être être immédiatement averti lorsqu'il y a un événement "pic", c'est-à-dire lorsque la vitesse à laquelle un événement se produit soudainement augmente ou diminue.
Les autres types de règles inclus sont :
- 'flatline' - lorsqu'il y a moins de X événements en Y temps
- ‘liste noire/liste blanche’ – lorsqu’un certain champ correspond à ‘liste noire’ ou ‘liste blanche’
- 'any' :lorsqu'un événement correspondant à un filtre donné se produit
- 'change' - lorsqu'un champ a deux valeurs différentes dans une période de temps spécifiée
Types d'alertes pris en charge
Actuellement, ElastAlert a une prise en charge intégrée pour les types d'alertes suivants.
- Commande
- JIRA
- OpsGenie
- SRS
- HipChat
- Lâche
- Télégramme
- Google Chat
- Débogage
- Ecraser
- la Ruche
Installer ElastAlert avec Elasticsearch sur Ubuntu
Dans cet article, nous vous montrons comment installer ElastAlert sur Ubuntu 18.04.
Exigences
- Elasticsearch
- Données horodatées ISO8601 ou Unix
- Python 2.7
- pip, voir requirements.txt – (https://github.com/Yelp/elastalert/blob/master/requirements.txt)
- Packages pour ubuntu – python-pip python-dev libffi-dev libssl-dev
Installation des prérequis
Installez Python 2.7 :
sudo apt-get install python-minimal
Vérifiez la version de Python :
sudo python --version
Ensuite, vous obtiendrez une sortie pour Python 2.7.
Installez les packages nécessaires :
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Il existe différentes manières d'installer ElastAlert et ici, nous allons procéder à l'installation en clonant le référentiel git.
Nous devons donc installer "git" avant de continuer. Habituellement, Ubuntu 18.04 a déjà installé git.
Vérifiez la version installée ou disponible de git :
sudo apt-cache policy git
Cela donnera les détails des versions git installées et candidates.
Si vous ne pouvez pas voir la version de git installée, exécutez la commande suivante.
sudo apt-get install git
Nous allons cloner le référentiel ElastAlert dans le dossier "/opt", donc changer de répertoire.
sudo cd /opt
Maintenant, clonez un dépôt git.
sudo git clone https://github.com/Yelp/elastalert.git
Installez maintenant les modules.
sudo pip install "setuptools>=11.3"
sudo python setup.py install
Vous pouvez obtenir une erreur comme celle-ci.
Ensuite, exécutez la commande ci-dessous pour installer "PyOpenSSL"
sudo pip install PyOpenSSL
Ici, nous allons intégrer Elastic Search 6.x. Ainsi, Elasticsearch 5.0+ sera installé ici.
sudo pip install "elasticsearch>=5.0.0"
Configurer ElastAlert
Nous avons cloné le référentiel ElastAlert dans le répertoire "/opt", alors changez de répertoire avant de continuer.
sudo cd /opt/elastalert/
Nous obtenons maintenant une copie du fichier config.yaml.example en tant que config.yaml
sudo cp config.yaml.example config.yaml
Modifiez le fichier config.yaml.
vim config.yaml
Décommentez les lignes suivantes et modifiez.
Nom d'hôte ou IP ElasticSearch
es_host: elk-server
Port ElasticServer
es_port: 9200
Décommentez l'authentification de base :
es_username: es_password:
Enregistrez et fermez le fichier.
Créer un index ElastAlert.
sudo elastalert-create-index
Créer une règle
Modifiez maintenant le fichier intitulé "example_frequency.yaml" dans le dossier "/opt/elastalert/example_rules/"
sudo vim example_rules/example_frequency.yaml
Décommentez et modifiez l'index comme suit :
index: filebeat-*
Définissez maintenant un filtre pour une alerte. Ici, nous filtrons les mots-clés avec la chaîne "exception".
filter: - query_string: query: "message:*exception*"
Configurez Alter avec Slack. Ici, vous devez créer un canal Slack et un webhook entrant. Ajoutez ensuite les détails de configuration comme suit.
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"
Vous pouvez suivre les étapes ci-dessous pour créer un canal Slack.
Configuration du canal Slack pour ElastAlert
Si vous n'avez pas de compte Slack, vous pouvez en obtenir un en vous inscrivant simplement. Allez sur "slack.com" et entrez votre adresse e-mail et cliquez sur "COMMENCER".
Cliquez ensuite sur "Créer un nouvel espace de travail" et vérifiez votre adresse e-mail. Vous pouvez maintenant vous connecter et afficher le tableau de bord.
Accédez à Parcourir les applications -> Intégrations personnalisées -> Webhooks entrants -> Nouvelle configuration
Cliquez ensuite sur "Créer un nouveau canal" pour créer un canal pour envoyer des alertes.
Cliquez ensuite sur le bouton "Créer une chaîne" et vous serez redirigé vers la page d'intégration Webhook.
Cliquez sur le bouton "Ajouter l'intégration de WebHooks entrants". Cela créera des paramètres d'intégration.
Règle de test
Remplacez le répertoire par ElastAlert.
sudo cd /opt/elastalert/
Exécutez la commande ci-dessous pour tester la règle configurée.
sudo elastalert-test-rule example_rules/example_frequency.yaml
Exécuter ElastAlert
Nous allons démarrer ElastAlert en tant que service d'arrière-plan. Cette commande doit être exécutée dans le dossier "/opt/elastalert/".
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
ElastAlert va maintenant commencer à vérifier les requêtes sur Elasticsearch (sur le serveur ELK). S'il y a une correspondance, une alerte sera envoyée à Slack.
Alerte déclenchée.
L'alerte ira à Slack Channel.
Ça y est, nous avons installé et configuré avec succès ElastAlert avec la recherche élastique, et avons également configuré des alertes sur Slack. Nous espérons que ce tutoriel exhaustif vous aidera à installer ElastAlert et à mettre en place quelques règles pour déclencher facilement des alertes. Les questions et les commentaires sont les bienvenus dans la section des commentaires.