Se devi gestire enormi quantità di dati, un giorno ti ritroverai a desiderare uno strumento che si limiti a segnalare le anomalie o le incongruenze nei dati e ad avvisarti in tempo reale.
Cos'è ElastAlert?
ElastAlert è progettato per fare esattamente questo. È un framework semplice che avvisa quando rileva anomalie, picchi o altri modelli di regole dai dati aggiunti in Elasticsearch.
Ad esempio, potresti impostare un avviso di "frequenza", che ti avviserà quando c'è un numero X di eventi in Y tempo.
Oppure potresti voler essere avvisato immediatamente quando si verifica un evento di "picco", ovvero quando la velocità con cui si verifica un evento improvvisamente aumenta o diminuisce.
Altri tipi di regole inclusi sono:
- 'flatline' – quando ci sono meno di X eventi in Y tempo
- "lista nera/lista bianca":quando un determinato campo corrisponde a "lista nera" o "lista bianca"
- 'qualsiasi':quando si verifica un evento che corrisponde a un determinato filtro
- 'modifica':quando un campo ha due valori diversi entro un periodo di tempo specificato
Tipi di avviso supportati
Attualmente, ElastAlert ha un supporto integrato per i seguenti tipi di avviso.
- Comando
- JIRA
- OpsGenie
- SNS
- HipChat
- Lasco
- Telegramma
- GoogleChat
- Debug
- Calpestare
- l'alveare
Installa ElastAlert con Elasticsearch su Ubuntu
In questo articolo, ti mostriamo come installare ElastAlert su Ubuntu 18.04.
Requisiti
- Ricerca elastica
- Dati con timestamp ISO8601 o Unix
- Python 2.7
- pip, vedi requisiti.txt – (https://github.com/Yelp/elastalert/blob/master/requirements.txt)
- Pacchetti per Ubuntu – python-pip python-dev libffi-dev libssl-dev
Installazione dei prerequisiti
Installa Python 2.7:
sudo apt-get install python-minimal
Controlla la versione di Python:
sudo python --version
Quindi otterrai l'output per Python 2.7.
Installa i pacchetti necessari:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Esistono diversi modi per installare ElastAlert e qui eseguiremo l'installazione clonando il repository git.
Quindi dobbiamo installare "git" prima di procedere. Di solito, Ubuntu 18.04 ha git già installato.
Verifica la versione installata o disponibile di git:
sudo apt-cache policy git
Questo fornirà i dettagli delle versioni git installate e candidate.
Se non riesci a vedere la versione git installata, esegui il comando seguente.
sudo apt-get install git
Cloneremo il repository ElastAlert nella cartella "/opt", quindi cambiamo directory.
sudo cd /opt
Ora clona un repository git.
sudo git clone https://github.com/Yelp/elastalert.git
Ora installa i moduli.
sudo pip install "setuptools>=11.3"
sudo python setup.py install
Potresti ricevere un errore come questo.
Quindi esegui il comando seguente per installare "PyOpenSSL"
sudo pip install PyOpenSSL
Qui ci integreremo con Elastic search 6.x. Quindi Elasticsearch 5.0+ verrà installato qui.
sudo pip install "elasticsearch>=5.0.0"
Configura ElastAlert
Abbiamo clonato il repository ElastAlert nella directory "/opt", quindi cambia directory prima di continuare.
sudo cd /opt/elastalert/
Ora otteniamo una copia del file config.yaml.example come config.yaml
sudo cp config.yaml.example config.yaml
Modifica il file config.yaml.
vim config.yaml
Decommenta le righe seguenti e modifica.
Nome host o IP di ElasticSearch
es_host: elk-server
Porta ElasticServer
es_port: 9200
Decommenta l'autenticazione di base:
es_username: es_password:
Salva e chiudi il file.
Crea l'indice ElastAlert.
sudo elastalert-create-index
Creazione di una regola
Ora modifica il file intitolato "example_frequency.yaml" all'interno della cartella "/opt/elastalert/example_rules/"
sudo vim example_rules/example_frequency.yaml
Decommenta e modifica l'indice come segue:
index: filebeat-*
Ora definisci un filtro per un avviso. Qui filtriamo le parole chiave con la stringa "exception".
filter: - query_string: query: "message:*exception*"
Configura Alter con Slack. Qui devi creare un canale Slack e un webhook in entrata. Quindi aggiungi i dettagli di configurazione come segue.
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"
Puoi seguire i passaggi seguenti per creare un canale Slack.
Configurazione del canale Slack per ElastAlert
Se non hai un account Slack, puoi ottenerne uno semplicemente registrandoti. Vai su "slack.com" e inserisci il tuo indirizzo email e fai clic su "INIZIA".
Quindi fai clic su "crea nuovo spazio di lavoro" e verifica il tuo indirizzo email. Ora puoi accedere e visualizzare la dashboard.
Vai a Sfoglia app -> Integrazioni personalizzate -> Webhook in entrata -> Nuova configurazione
Quindi fai clic su "Crea nuovo canale" per creare un canale per l'invio di avvisi.
Quindi fai clic sul pulsante "Crea canale" e verrai indirizzato alla pagina di integrazione di Webhook.
Fare clic sul pulsante "Aggiungi integrazione WebHook in entrata". Questo creerà le impostazioni di integrazione.
Regola di prova
Cambia Directory in ElastAlert.
sudo cd /opt/elastalert/
Esegui il comando seguente per testare la regola configurata.
sudo elastalert-test-rule example_rules/example_frequency.yaml
Esegui ElastAlert
Inizieremo ElastAlert come servizio in background. Questo comando deve essere eseguito all'interno della cartella "/opt/elastalert/".
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
Ora ElastAlert inizierà a controllare le query su Elasticsearch (su server ELK). Se c'è una corrispondenza, verrà inviato un avviso a Slack.
Avviso attivato.
L'avviso andrà su Slack Channel.
Ecco fatto, abbiamo installato e configurato correttamente ElastAlert con la ricerca elastica e abbiamo anche impostato avvisi per Slack. Ci auguriamo che questo tutorial esauriente ti aiuti a installare ElastAlert e impostare alcune regole per attivare facilmente gli avvisi. Domande e feedback sono i benvenuti nella sezione commenti.