Pokud musíte spravovat obrovské množství dat, pak zjistíte, že jednoho dne budete chtít nástroj, který by jednoduše poukázal na anomálie nebo nesrovnalosti v datech a upozornil vás v reálném čase.
Co je ElastAlert?
ElastAlert je navržen přesně k tomu. Je to jednoduchý rámec, který upozorní, když zjistí anomálie, špičky nebo jiné vzorce pravidel z dat přidaných do Elasticsearch.
Můžete například nastavit upozornění na frekvenci, které vás upozorní, když dojde k X počtu událostí v čase Y.
Nebo možná budete chtít být okamžitě varováni, když dojde k „špičkové“ události, to znamená, když rychlost, s jakou k události dojde, se náhle zvýší nebo sníží.
Další typy pravidel, které jsou zahrnuty, jsou:
- „rovná čára“ – když je za Y čas méně než X událostí
- ‘blacklist/whitelist‘ – když určité pole odpovídá ‚blacklist‘ nebo ‚whitelist‘
- „jakýkoli“ – když dojde k události, která odpovídá danému filtru
- „změna“ – když má pole dvě různé hodnoty v určeném časovém období
Podporované typy výstrah
V současné době má ElastAlert vestavěnou podporu pro následující typy výstrah.
- Příkaz
- JIRA
- OpsGenie
- SNS
- HipChat
- Uvolněnost
- Telegram
- GoogleChat
- Ladění
- Stomp
- theHive
Nainstalujte ElastAlert s Elasticsearch na Ubuntu
V tomto článku vám ukážeme, jak nainstalovat ElastAlert na ubuntu 18.04.
Požadavky
- Elasticsearch
- Data s časovým razítkem ISO8601 nebo Unix
- Python 2.7
- pip, viz requirements.txt – (https://github.com/Yelp/elastalert/blob/master/requirements.txt)
- Balíčky pro ubuntu – python-pip python-dev libffi-dev libssl-dev
Předpoklady instalace
Nainstalujte Python 2.7:
sudo apt-get install python-minimal
Zkontrolujte verzi Pythonu:
sudo python --version
Poté získáte výstup pro python 2.7.

Nainstalujte potřebné balíčky:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Existuje několik různých způsobů, jak nainstalovat ElastAlert a zde provedeme instalaci klonováním git repozitáře.
Než budeme pokračovat, musíme nainstalovat „git“. Obvykle má Ubuntu 18.04 již nainstalovaný git.
Zkontrolujte nainstalovanou nebo dostupnou verzi git:
sudo apt-cache policy git
Tím získáte podrobnosti o nainstalovaných a kandidátských verzích git.

Pokud nevidíte nainstalovanou verzi git, spusťte následující příkaz.
sudo apt-get install git
Chystáme se naklonovat úložiště ElastAlert do složky „/opt“, proto změňte adresář.
sudo cd /opt
Nyní naklonujte úložiště git.
sudo git clone https://github.com/Yelp/elastalert.git
Nyní nainstalujte moduly.
sudo pip install "setuptools>=11.3"
sudo python setup.py install
Může se vám zobrazit podobná chyba.

Poté spusťte níže uvedený příkaz a nainstalujte „PyOpenSSL“
sudo pip install PyOpenSSL
Zde se chystáme integrovat s Elastic search 6.x. Zde se tedy nainstaluje Elasticsearch 5.0+.
sudo pip install "elasticsearch>=5.0.0"
Nakonfigurujte ElastAlert
Naklonovali jsme repo ElastAlert do adresáře „/opt“, takže před pokračováním změňte adresář.
sudo cd /opt/elastalert/
Nyní získáme kopii souboru config.yaml.example jako config.yaml
sudo cp config.yaml.example config.yaml
Upravte soubor config.yaml.
vim config.yaml
Odkomentujte následující řádky a upravte.
Název hostitele nebo IP adresa ElasticSearch
es_host: elk-server
Port ElasticServer
es_port: 9200
Odebrat komentář základní autentizace:
es_username: es_password:

Uložte a zavřete soubor.
Vytvořte index ElastAlert.
sudo elastalert-create-index
Vytvoření pravidla
Nyní upravte soubor s názvem „example_frequency.yaml“ ve složce „/opt/elastalert/example_rules/“
sudo vim example_rules/example_frequency.yaml
Odkomentujte a upravte index následovně:
index: filebeat-*
Nyní definujte filtr pro upozornění. Zde filtrujeme klíčová slova pomocí řetězce „exception“.
filter: - query_string: query: "message:*exception*"
Nakonfigurujte Alter pomocí Slack. Zde musíte vytvořit kanál Slack a příchozí webhook. Poté přidejte podrobnosti o konfiguraci následovně.
"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"
Chcete-li vytvořit kanál Slack, postupujte podle níže uvedených kroků.
Konfigurace kanálu Slack pro ElastAlert
Pokud nemáte nevyužitý účet, můžete si jej pořídit jednoduchou registrací. Přejděte na „slack.com“, zadejte svou e-mailovou adresu a klikněte na „ZAČÍT“.

Poté klikněte na „vytvořit nový pracovní prostor“ a ověřte svou e-mailovou adresu. Nyní se můžete přihlásit a zobrazit řídicí panel.
Přejděte na Procházet aplikace -> Vlastní integrace -> Příchozí webhooky -> Nová konfigurace

Poté klikněte na ‚Vytvořit nový kanál‘ a vytvořte kanál pro zasílání upozornění.

Poté klikněte na tlačítko „Vytvořit kanál“ a budete přesměrováni na stránku integrace Webhooku.

Klikněte na tlačítko „Přidat integraci příchozích WebHooks“. Tím vytvoříte nastavení integrace.

Testovací pravidlo
Změňte adresář na ElastAlert.
sudo cd /opt/elastalert/
Spusťte níže uvedený příkaz a otestujte nakonfigurované pravidlo.
sudo elastalert-test-rule example_rules/example_frequency.yaml

Spusťte ElastAlert
Spustíme ElastAlert jako službu na pozadí. Tento příkaz by měl být spuštěn ve složce „/opt/elastalert/“.
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &

Nyní ElastAlert začne kontrolovat dotazy na Elasticsearch (na ELK serveru). Pokud dojde ke shodě, vystřelí upozornění na Slacka.
Spuštěno upozornění.

Upozornění přejde na kanál Slack.

To je vše, úspěšně jsme nainstalovali a nakonfigurovali ElastAlert s elastickým vyhledáváním a také jsme nastavili upozornění na Slack. Doufáme, že vám tento vyčerpávající návod pomůže nainstalovat ElastAlert a nastavit některá pravidla pro snadné spouštění výstrah. Dotazy a názory jsou vítány v sekci komentářů.