Si vous devez gérer d'énormes quantités de données, vous vous retrouverez un jour à souhaiter un outil qui signalerait simplement les anomalies ou les incohérences dans les données et vous alerterait 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 des données ajoutées dans Elasticsearch.
Par exemple, vous pouvez configurer une alerte « fréquence », qui vous avertira lorsqu'il y aura un nombre X d'événements dans une période Y.
Ou vous pouvez vouloir être immédiatement averti lorsqu'il y a un événement « pic », c'est-à-dire lorsque la vitesse à laquelle un événement se produit augmente ou diminue soudainement.
Les autres types de règles inclus sont :
- 'flatline' - lorsqu'il y a moins de X événements dans le temps Y
- 'blacklist/whitelist' - lorsqu'un certain champ correspond à 'blacklist' ou 'whitelist'
- 'any' - lorsqu'un événement correspondant à un filtre donné se produit
- 'change' - lorsqu'un champ a deux valeurs différentes au cours d'une période de temps spécifiée
Types d'alertes pris en charge
Actuellement, ElastAlert prend en charge les types d'alertes suivants.
- Commander
- JIRA
- OpsGenie
- SNS
- HipChat
- Mou
- Télégramme
- Google Chat
- Déboguer
- écraser
- La ruche
Installer ElastAlert avec Elasticsearch sur Ubuntu
Dans cet article, nous vous montrons comment installer ElastAlert sur Ubuntu 18.04.
Conditions
- Recherche élastique
- Données horodatées ISO8601 ou Unix
- Python 2.7
- pip, voir les exigences.txt - (https://github.com/Yelp/elastalert/blob/master/requirements.SMS)
- Paquets pour ubuntu - python-pip python-dev libffi-dev libssl-dev
Installation des prérequis
Installer Python 2.7:
sudo apt-get install python-minimal
Vérifiez la version 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 nous allons ici procéder à l'installation en clonant le référentiel git.
Nous devons donc installer "git" avant de continuer. Habituellement, Ubuntu 18.04 a git déjà installé.
Vérifiez la version installée ou disponible de git :
politique sudo apt-cache git
Cela donnera les détails des versions git installées et candidates.
Si vous ne pouvez pas voir la version 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.
cd sudo/opt
Clonez maintenant un dépôt git.
sudo git clone https://github.com/Yelp/elastalert.git
Installez maintenant les modules.
sudo pip install "setuptools>=11.3"
configuration sudo python.py installer
Vous pouvez obtenir une erreur comme celle-ci.
Ensuite, exécutez la commande ci-dessous pour installer "PyOpenSSL"
sudo pip installer PyOpenSSL
Ici, nous allons intégrer avec Elastic search 6.X. Alors 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", donc changez de répertoire avant de continuer.
sudo cd /opt/elastalert/
Nous obtenons maintenant une copie de la configuration.yaml.exemple de fichier en tant que config.yaml
configuration sudo cp.yaml.exemple de configuration.yaml
Modifier la configuration.fichier yaml.
configuration vim.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-créer-index
Création d'une règle
Modifiez maintenant le fichier intitulé "example_fréquence.yaml" dans le dossier "/opt/elastalert/example_rules/"
sudo vim exemple_rules/example_fréquence.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".
filtre : - chaîne_requête : requête : "message:*exception*"
Configurer Alter avec Slack. Ici, vous devez créer un canal Slack et un webhook entrant. Ajoutez ensuite les détails de configuration comme suit.
alerte : - "slack" slack : slack_webhook_url : "https://hooks.mou.com/services/T3YSFN0GL/BFU1HPLKD/BPM2jOlIOzKxbEOHAepu6d26" slack_username_override : "Fosslinux-Elastic-Bot" slack_channel_override : "#fosslinuxalert" slack_emoji" _override : "
Vous pouvez suivre les étapes ci-dessous pour créer une chaîne 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 dans « 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.
Allez dans Parcourir les applications -> Intégrations personnalisées -> Webhooks entrants -> Nouvelle configuration
Cliquez ensuite sur « Créer une nouvelle chaîne » pour créer une chaîne pour l'envoi d'alertes.
Cliquez ensuite sur le bouton « Créer une chaîne » et vous serez redirigé vers la page d'intégration du Webhook.
Cliquez sur le bouton « Ajouter l'intégration des WebHooks entrants ». Cela créera des paramètres d'intégration.
Règle de test
Changer le répertoire en ElastAlert.
sudo cd /opt/elastalert/
Exécutez la commande ci-dessous pour tester la règle configurée.
sudo elastalert-test-rule exemple_rules/example_fréquence.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 exemple_fréquence.yaml &
ElastAlert va maintenant commencer à vérifier les requêtes sur Elasticsearch (sur le serveur ELK). S'il y a un match, il lancera une alerte à 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 pour Slack. Nous espérons que ce tutoriel exhaustif vous aidera à installer ElastAlert et à mettre en place quelques règles pour déclencher des alertes facilement. Les questions et commentaires sont les bienvenus dans la section commentaires.