Om du måste hantera stora mängder data kommer du att hitta dig själv en dag som önskar ett verktyg som helt enkelt skulle påpeka avvikelser eller inkonsekvenser i data och varna dig i realtid.
Vad är ElastAlert?
ElastAlert är utformad för att exakt göra det. Det är ett enkelt ramverk som varnar när det upptäcker avvikelser, spikar eller andra reglermönster från data som läggs till i Elasticsearch.
Du kan till exempel ställa in en "frekvens" -varning, som kommer att meddela dig när det finns X-antal händelser under Y-tiden.
Eller du kanske vill bli omedelbart varnad när det finns en "spik" -händelse, det vill säga när hastigheten med vilken en händelse inträffar plötsligt ökar eller minskar.
Andra reglerstyper som ingår är:
- 'flatline' - när det finns färre än X-händelser under Y-tiden
- 'svartlista / vitlista' - när ett visst fält matchar 'svartlista' eller 'vitlista'
- 'any' - när en händelse som matchar ett visst filter inträffar
- 'ändra' - när ett fält har två olika värden inom en angiven tidsperiod
Stödda varningstyper
För närvarande har ElastAlert inbyggt stöd för följande varningstyper.
- Kommando
- E-post
- JIRA
- OpsGenie
- SNS
- HipChat
- Slak
- Telegram
- GoogleChat
- Felsöka
- Stampa
- kupan
Installera ElastAlert med Elasticsearch på Ubuntu
I den här artikeln visar vi hur du installerar ElastAlert på ubuntu 18.04.
Krav
- Elasticsearch
- ISO8601 eller Unix tidsstämplad data
- Python 2.7
- pip, se krav.txt - (https: // github.com / Yelp / elastalert / blob / master / krav.Text)
- Paket för ubuntu - python-pip python-dev libffi-dev libssl-dev
Installera förutsättningar
Installera Python 2.7:
sudo apt-get install python-minimal
Kontrollera Python-versionen:
sudo python --version
Då får du utdata för python 2.7.
Installera nödvändiga paket:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Det finns få olika sätt att installera ElastAlert och här ska vi göra installationen genom att klona git-arkivet.
Så vi måste installera "git" innan vi fortsätter. Vanligtvis är Ubuntu 18.04 har redan installerat git.
Sök efter den installerade eller tillgängliga versionen av git:
sudo apt-cache policy git
Detta kommer att ge information om de installerade och kandidat-git-versionerna.
Om du inte kan se den installerade git-versionen kör du följande kommando.
sudo apt-get install git
Vi kommer att klona ElastAlert-förvaret till "/ opt" -mappen, därför ändra katalog.
sudo cd / opt
Klon nu ett git-arkiv.
sudo git klon https: // github.com / Yelp / elastalert.git
Installera nu moduler.
sudo pip installera "setuptools> = 11.3 "
sudo python-installation.py installera
Du kan få ett sådant fel.
Kör sedan under kommandot för att installera “PyOpenSSL”
sudo pip installera PyOpenSSL
Här ska vi integreras med elastisk sökning 6.x. Så Elasticsearch 5.0+ kommer att installeras här.
sudo pip installera "elasticsearch> = 5.0.0 "
Konfigurera ElastAlert
Vi klonade ElastAlert repo till “/ opt” -katalogen, så byt katalog innan du fortsätter.
sudo cd / opt / elastalert /
Nu får vi en kopia av konfigurationen.yaml.exempelfil som en konfiguration.yaml
sudo cp config.yaml.exempel konfiguration.yaml
Ändra konfiguration.yaml-fil.
vim config.yaml
Avmarkera följande rader och ändra.
ElasticSearch värdnamn eller IP
es_host: älgserver
ElasticServer-port
es_port: 9200
Avkommentera grundläggande autentisering:
es_username: es_password:
Spara och stäng filen.
Skapa ElastAlert-index.
sudo elastalert-create-index
Skapa en regel
Redigera nu filen med titeln “exempel_frekvens.yaml ”i mappen“ / opt / elastalert / exempel_regler / ”
sudo vim exempel_regler / exempel_frekvens.yaml
Avkommentera och ändra index enligt följande:
index: filbeat- *
Definiera nu ett filter för en varning. Här filtrerar vi nyckelord med strängen "undantag".
filter: - query_string: fråga: "meddelande: * undantag *"
Konfigurera Alter med Slack. Här måste du skapa en Slack-kanal och inkommande webbhook. Lägg sedan till konfigurationsdetaljer enligt följande.
alert: - "slack" slack: slack_webhook_url: "https: // hooks.slak.com / tjänster / T3YSFN0GL / BFU1HPLKD / BPM2jOlIOzKxbEOHAepu6d26 "slack_username_override:" Fosslinux-Elastic-Bot "slack_channel_override:" #fosslinuxalert "slack_emoji_override:": robot_face: "
Du kan följa stegen nedan för att skapa Slack-kanal.
Konfigurera Slack-kanal för ElastAlert
Om du inte har ett slackt konto kan du få ett genom att helt enkelt registrera dig. Gå till “slack.com ”och ange din e-postadress och klicka på” KOMMA IGÅNG ”.
Klicka sedan på "skapa ny arbetsyta" och verifiera din e-postadress. Nu kan du logga in och visa instrumentpanelen.
Gå till Bläddra bland appar -> Anpassade integrationer -> Inkommande webbhooks -> Ny konfiguration
Klicka sedan på 'Skapa ny kanal' för att skapa en kanal för att skicka varningar.
Klicka sedan på knappen 'Skapa kanal' så kommer du till integrationssidan för Webhook.
Klicka på 'Lägg till inkommande WebHooks-integration'. Detta skapar integrationsinställningar.
Testregel
Ändra katalog till ElastAlert.
sudo cd / opt / elastalert /
Kör under kommandot för att testa konfigurerad regel.
sudo elastalert-test-rule exempel_regler / exempel_frekvens.yaml
Kör ElastAlert
Vi startar ElastAlert som en bakgrundstjänst. Detta kommando ska köras i mappen "/ opt / elastalert /".
sudo python -m elastalert.elastalert --verbose --rule exempel_frekvens.yaml &
Nu kommer ElastAlert att börja kontrollera frågor på Elasticsearch (på ELK-servern). Om det finns en match kommer den att skjuta alert till Slack.
Varning utlöst.
Varning går till Slack Channel.
Det är det, vi installerade och konfigurerade ElastAlert med den elastiska sökningen och ställde också in varningar till Slack. Vi hoppas att denna uttömmande handledning hjälper dig att installera ElastAlert och ställa in några regler för att enkelt utlösa varningar. Frågor och feedback är välkomna i kommentarsektionen.