Wenn Sie riesige Datenmengen verwalten müssen, dann wünschen Sie sich eines Tages ein Tool, das einfach auf Anomalien oder Inkonsistenzen in den Daten hinweist und Sie in Echtzeit alarmiert.
Was ist ElastAlert?
ElastAlert wurde entwickelt, um genau das zu tun. Es ist ein einfaches Framework, das eine Warnung ausgibt, wenn es Anomalien, Spitzen oder andere Regelmuster aus Daten erkennt, die in Elasticsearch . hinzugefügt wurden.
Du könntest zum Beispiel einen „Häufigkeitsalarm“ einrichten, der dich benachrichtigt, wenn es X Ereignisse in Y-Zeit gibt.
Oder Sie möchten sofort gewarnt werden, wenn ein „Spike“-Ereignis auftritt, d. h. wenn die Rate, mit der ein Ereignis eintritt, plötzlich zu- oder abnimmt.
Andere enthaltene Regeltypen sind:
- 'flatline' - wenn es weniger als X Ereignisse in Y-Zeit gibt
- 'blacklist/whitelist' - wenn ein bestimmtes Feld mit 'blacklist' oder 'whitelist' übereinstimmt
- 'any' - wenn ein Ereignis eintritt, das einem bestimmten Filter entspricht
- 'ändern' - wenn ein Feld innerhalb eines bestimmten Zeitraums zwei verschiedene Werte hat
Unterstützte Benachrichtigungstypen
Derzeit bietet ElastAlert integrierte Unterstützung für die folgenden Benachrichtigungstypen.
- Befehl
- JIRA
- OpsGenie
- SNS
- HipChat
- Locker
- Telegramm
- Google-Chat
- Debuggen
- Stampfen
- der Bienenstock
Installieren Sie ElastAlert mit Elasticsearch unter Ubuntu
In diesem Artikel zeigen wir Ihnen, wie Sie ElastAlert unter Ubuntu 18 installieren.04.
Bedarf
- Elasticsearch
- ISO8601- oder Unix-Zeitstempeldaten
- Python 2.7
- pip, siehe Anforderungen.txt - (https://github.com/Yelp/elastalert/blob/master/requirements.TXT)
- Pakete für Ubuntu - python-pip python-dev libffi-dev libssl-dev
Voraussetzungen installieren
Python 2 installieren.7:
sudo apt-get install python-minimal
Überprüfen Sie die Python-Version:
sudo python --version
Dann erhalten Sie eine Ausgabe für Python 2.7.
Benötigte Pakete installieren:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Es gibt einige verschiedene Möglichkeiten, ElastAlert zu installieren, und hier werden wir die Installation durch Klonen des Git-Repositorys durchführen.
Also müssen wir „git“ installieren, bevor wir fortfahren können. Normalerweise Ubuntu 18.04 hat git bereits installiert.
Suchen Sie nach der installierten oder verfügbaren Version von git:
sudo apt-cache richtlinie git
Dies gibt die Details der installierten und Kandidaten-Git-Versionen an.
Wenn Sie die installierte Git-Version nicht sehen können, führen Sie den folgenden Befehl aus.
sudo apt-get install git
Wir werden das ElastAlert-Repository in den Ordner „/opt“ klonen, also das Verzeichnis wechseln.
sudo cd /opt
Klonen Sie nun ein Git-Repository.
sudo git-klon https://github.com/Yelp/elastalert.git
Jetzt Module installieren.
sudo pip install "setuptools>=11.3"
sudo python einrichten.py installieren
Sie können einen solchen Fehler erhalten.
Führen Sie dann den folgenden Befehl aus, um "PyOpenSSL" zu installieren
sudo pip installieren PyOpenSSL
Hier werden wir in Elastic Search 6 integrieren.x. Also Elasticsearch 5.0+ wird hier installiert.
sudo pip install "elasticsearch>=5.0.0"
ElastAlert konfigurieren
Wir haben das ElastAlert-Repository in das Verzeichnis „/opt“ geklont, also wechseln Sie das Verzeichnis, bevor Sie fortfahren.
sudo cd /opt/elastalert/
Jetzt erhalten wir eine Kopie der Konfiguration.yaml.Beispieldatei als config.yaml
sudo cp config.yaml.Beispielkonfiguration.yaml
Konfiguration ändern.yaml-Datei.
vim-Konfiguration.yaml
Entkommentieren Sie die folgenden Zeilen und ändern Sie.
ElasticSearch-Hostname oder -IP
es_host: elk-server
ElasticServer-Port
es_port: 9200
Entkommentieren Basic-Authentifizierung:
es_Benutzername: es_Passwort:
Speichern und schließen Sie die Datei.
ElastAlert-Index erstellen.
sudo elastalert-create-index
Erstellen einer Regel
Bearbeiten Sie nun die Datei mit dem Titel "example_frequency".yaml“ im Ordner „/opt/elastalert/example_rules/“
sudo vim example_rules/example_frequency.yaml
Entkommentieren und ändern Sie den Index wie folgt:
Index: filebeat-*
Definieren Sie nun einen Filter für eine Warnung. Hier filtern wir Keywords mit der Zeichenfolge „Exception“.
filter: - query_string: query: "message:*Exception*"
Alter mit Slack konfigurieren. Hier müssen Sie einen Slack-Kanal und einen eingehenden Webhook erstellen. Fügen Sie dann Konfigurationsdetails wie folgt hinzu.
alert: - "slack" slack: slack_webhook_url: "https://hooks.locker.com/services/T3YSFN0GL/BFU1HPLKD/BPM2jOlIOzKxbEOHAepu6d26" slack_username_override: "Fosslinux-Elastic-Bot" slack_channel_override: "#fosslinuxalert" slack_g"g":anger_color_face: ":anger_color_face:
Sie können die folgenden Schritte ausführen, um einen Slack-Kanal zu erstellen.
Konfigurieren des Slack-Kanals für ElastAlert
Wenn du kein Slack-Konto hast, kannst du dir einfach eines erstellen, indem du dich anmeldest. Gehe zu „locker“.com“ und geben Sie Ihre E-Mail-Adresse ein und klicken Sie auf „ERSTE SCHRITTE“.
Klicken Sie dann auf "Neuen Arbeitsbereich erstellen" und bestätigen Sie Ihre E-Mail-Adresse. Jetzt können Sie sich anmelden und das Dashboard anzeigen.
Gehen Sie zu Apps durchsuchen -> Benutzerdefinierte Integrationen -> Eingehende Webhooks -> Neue Konfiguration
Klicken Sie dann auf "Neuen Kanal erstellen", um einen Kanal zum Senden von Benachrichtigungen zu erstellen.
Klicken Sie dann auf die Schaltfläche "Kanal erstellen" und Sie werden zur Webhook-Integrationsseite weitergeleitet.
Klicken Sie auf die Schaltfläche "Integration von eingehenden WebHooks hinzufügen"'. Dadurch werden Integrationseinstellungen erstellt.
Testregel
Ändern Sie das Verzeichnis in ElastAlert.
sudo cd /opt/elastalert/
Führen Sie den folgenden Befehl aus, um die konfigurierte Regel zu testen.
sudo elastalert-test-rule example_rules/example_frequency.yaml
ElastAlert ausführen
Wir werden ElastAlert als Hintergrunddienst starten. Dieser Befehl sollte im Ordner „/opt/elastalert/“ ausgeführt werden.
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
Jetzt beginnt ElastAlert mit der Überprüfung von Abfragen auf Elasticsearch (auf dem ELK-Server). Wenn es eine Übereinstimmung gibt, wird Slack alarmiert.
Warnung ausgelöst.
Die Benachrichtigung wird an den Slack-Kanal gesendet.
Das war's, wir haben ElastAlert erfolgreich mit der elastischen Suche installiert und konfiguriert und auch Benachrichtigungen an Slack eingerichtet. Wir hoffen, dass dieses ausführliche Tutorial Ihnen hilft, ElastAlert zu installieren und einige Regeln einzurichten, um Warnungen einfach auszulösen. Fragen und Feedback sind im Kommentarbereich willkommen.