Se devi gestire enormi quantità di dati allora ti ritroverai un giorno 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 proprio per fare 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 un tempo Y.
Oppure potresti voler essere immediatamente avvisato quando si verifica un evento di "picco", ovvero quando la velocità con cui si verifica un evento aumenta o diminuisce improvvisamente.
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 dato filtro
- 'cambiamento' - quando un campo ha due valori diversi entro un periodo di tempo specificato
Tipi di avvisi supportati
Attualmente, ElastAlert ha il supporto integrato per i seguenti tipi di avviso.
- Comando
- JIRA
- OpsGenie
- SNS
- HipChat
- allentato
- 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 marca temporale 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
Prerequisiti di installazione
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 faremo l'installazione clonando il repository git.
Quindi dobbiamo installare "git" prima di procedere. Di solito, Ubuntu 18.04 è già installato git.
Controlla 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
Stiamo per clonare il repository ElastAlert nella cartella "/opt", quindi cambiare directory.
sudo cd /opt
Ora clona un repository git.
sudo git clone https://github.com/Yelp/elastalert.idiota
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 la ricerca elastica 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 di config.igname.file di esempio come configurazione.igname
sudo cp config.igname.configurazione di esempio.igname
Modifica configurazione.file yaml.
vim config.igname
Decommenta le seguenti righe e modifica.
Nome host o IP di ElasticSearch
es_host: elk-server
Porta ElasticServer
es_port: 9200
Rimuovi l'autenticazione di base:
es_username: es_password:
Salva e chiudi il file.
Crea indice ElastAlert.
sudo elastalert-create-index
Creare una regola Ru
Ora modifica il file intitolato "example_frequency.yaml" all'interno della cartella "/opt/elastalert/example_rules/"
sudo vim regole_esempio/frequenza_esempio.igname
Rimuovere il commento e modificare l'indice come segue:
indice: filebeat-*
Ora definisci un filtro per un avviso. Qui filtriamo le parole chiave con la stringa "eccezione".
filtro: - stringa_query: query: "messaggio:*eccezione*"
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.allentato.com/services/T3YSFN0GL/BFU1HPLKD/BPM2jOlIOzKxbEOHAepu6d26" slack_username_override: "Fosslinux-Elastic-Bot" slack_channel_override: "#fosslinuxalert" slack_":":"ms_color::da"
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 a "allenta".com" e inserisci il tuo indirizzo e-mail 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 sotto il comando per testare la regola configurata.
sudo elastalert-test-rule example_rules/example_frequency.igname
Esegui ElastAlert
Inizieremo ElastAlert come servizio in background. Questo comando dovrebbe essere eseguito all'interno della cartella “/opt/elastalert/”.
sudo python -m elastalert.elastalert --verbose --regola frequenza_esempio.igname &
Ora ElastAlert inizierà a controllare le query su Elasticsearch (sul server ELK). Se c'è una corrispondenza, sparerà un avviso a Slack.
Avviso attivato.
L'avviso andrà a Slack Channel.
Ecco fatto, abbiamo installato e configurato con successo ElastAlert con la ricerca elastica e abbiamo anche impostato avvisi su Slack. Speriamo che questo esauriente tutorial ti aiuti a installare ElastAlert e impostare alcune regole per attivare facilmente gli avvisi. Domande e feedback sono i benvenuti nella sezione commenti.