Kibana - Introduzione a Elk Stack
Kibana è uno strumento di visualizzazione open source utilizzato principalmente per analizzare un grande volume di log sotto forma di grafico a linee, grafico a barre, grafici a torta, mappe di calore ecc. Kibana funziona in sincronia con Elasticsearch e Logstash che insieme formano il cosiddetto ELK pila.
ELK sta per Elasticsearch, Logstash e Kibana. ELK è una delle popolari piattaforme di gestione dei registri utilizzata in tutto il mondo per l'analisi dei registri.
Nello stack ELK -
Logstashestrae i dati di registrazione o altri eventi da diverse sorgenti di input. Elabora gli eventi e successivamente li memorizza in Elasticsearch.
Kibana è uno strumento di visualizzazione, che accede ai log da Elasticsearch ed è in grado di visualizzarli all'utente sotto forma di grafico a linee, grafico a barre, grafici a torta ecc.
In questo tutorial, lavoreremo a stretto contatto con Kibana ed Elasticsearch e visualizzeremo i dati in diverse forme.
In questo capitolo, vediamo come lavorare insieme allo stack ELK. Inoltre, vedrai anche come:
- Carica i dati CSV da Logstash a Elasticsearch.
- Utilizza gli indici di Elasticsearch in Kibana.
Carica i dati CSV da Logstash a Elasticsearch
Utilizzeremo i dati CSV per caricare i dati utilizzando Logstash su Elasticsearch. Per lavorare sull'analisi dei dati, possiamo ottenere dati dal sito web kaggle.com. Il sito Kaggle.com ha tutti i tipi di dati caricati e gli utenti possono utilizzarli per lavorare sull'analisi dei dati.
Abbiamo preso i dati di countries.csv da qui: https://www.kaggle.com/fernandol/countries-of-the-world. Puoi scaricare il file csv e usarlo.
Il file csv che useremo ha i seguenti dettagli.
Nome file: countriesdata.csv
Colonne: "Paese", "Regione", "Popolazione", "Area"
Puoi anche creare un file csv fittizio e usarlo. Useremo logstash per scaricare questi dati da countriesdata.csv a elasticsearch.
Avvia elasticsearch e Kibana nel tuo terminale e mantienilo in esecuzione. Dobbiamo creare il file di configurazione per logstash che avrà i dettagli sulle colonne del file CSV e anche altri dettagli come mostrato nel file logstash-config fornito di seguito -
input {
file {
path => "C:/kibanaproject/countriesdata.csv"
start_position => "beginning"
sincedb_path => "NUL"
}
}
filter {
csv {
separator => ","
columns => ["Country","Region","Population","Area"]
}
mutate {convert => ["Population", "integer"]}
mutate {convert => ["Area", "integer"]}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
=> "countriesdata-%{+dd.MM.YYYY}"
}
stdout {codec => json_lines }
}
Nel file di configurazione, abbiamo creato 3 componenti:
Ingresso
Dobbiamo specificare il percorso del file di input che nel nostro caso è un file csv. Il percorso in cui è memorizzato il file csv viene fornito al campo del percorso.
Filtro
Avrà il componente csv con separatore utilizzato che nel nostro caso è virgola, e anche le colonne disponibili per il nostro file csv. Poiché logstash considera tutti i dati in arrivo come stringa, nel caso in cui si desidera utilizzare qualsiasi colonna come numero intero, float deve essere specificato utilizzando mutate come mostrato sopra.
Produzione
Per l'output, dobbiamo specificare dove dobbiamo mettere i dati. Qui, nel nostro caso, stiamo usando elasticsearch. I dati che devono essere forniti a elasticsearch sono gli host su cui è in esecuzione, lo abbiamo menzionato come localhost. Il campo successivo in è index a cui abbiamo dato il nome come paesi -currentdate. Dobbiamo utilizzare lo stesso indice in Kibana una volta che i dati sono stati aggiornati in Elasticsearch.
Salva il file di configurazione sopra come logstash_countries.config . Nota che dobbiamo fornire il percorso di questa configurazione al comando logstash nel passaggio successivo.
Per caricare i dati dal file csv a elasticsearch, dobbiamo avviare il server elasticsearch -
Adesso corri http://localhost:9200 nel browser per confermare se elasticsearch funziona correttamente.
Abbiamo elasticsearch in esecuzione. Ora vai al percorso in cui è installato logstash ed esegui il seguente comando per caricare i dati su elasticsearch.
> logstash -f logstash_countries.conf
La schermata sopra mostra il caricamento dei dati dal file CSV a Elasticsearch. Per sapere se abbiamo l'indice creato in Elasticsearch possiamo controllare come segue:
Possiamo vedere l'indice countriesdata-28.12.2018 creato come mostrato sopra.
I dettagli dell'indice - paesi-28.12.2018 sono i seguenti -
Tieni presente che i dettagli della mappatura con le proprietà vengono creati quando i dati vengono caricati da logstash a elasticsearch.
Utilizza i dati di Elasticsearch in Kibana
Attualmente, abbiamo Kibana in esecuzione su localhost, porta 5601 - http://localhost:5601. L'interfaccia utente di Kibana è mostrata qui -
Nota che abbiamo già Kibana connesso a Elasticsearch e dovremmo essere in grado di vedere index :countries-28.12.2018 dentro Kibana.
Nell'interfaccia utente di Kibana, fare clic sull'opzione del menu Gestione sul lato sinistro -
Ora, fai clic su Gestione indice -
Gli indici presenti in Elasticsearch vengono visualizzati nella gestione degli indici. L'indice che utilizzeremo in Kibana è countriesdata-28.12.2018.
Quindi, poiché abbiamo già l'indice elasticsearch in Kibana, in seguito capiremo come utilizzare l'indice in Kibana per visualizzare i dati sotto forma di grafico a torta, grafico a barre, grafico a linee ecc.