Creazione di un Dashboard in Kibana per il monitoraggio dei log

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Ciao, mi chiamo Evgeny, sono il team leader della divisione B2B di Citymobil. Uno dei compiti del nostro team è supportare le integrazioni per le ordinazioni di taxi dai partner e per garantire un servizio stabile dobbiamo sempre capire cosa sta succedendo nei nostri microservizi. Per questo motivo, dobbiamo monitorare costantemente i log.

In Citymobil utilizziamo il stack ELK (ElasticSearch, Logstash, Kibana) per lavorare con i log, e il volume dei dati in arrivo è enorme. Trovare tra questa massa di richieste le problematiche che possono sorgere dopo il deployment di nuovo codice è piuttosto difficile. Per una loro visualizzazione chiara, in Kibana esiste una sezione chiamata Dashboard.

Su Habr ci sono molti articoli con esempi su come configurare il stack ELK per ricevere e memorizzare dati, ma non ci sono materiali aggiornati sulla creazione di Dashboard. Pertanto, voglio mostrare come creare rappresentazioni visive dei dati in Kibana basate sui log in arrivo.

Impostazione

Per renderlo più chiaro, ho creato un'immagine Docker con ELK e Filebeat. E ho inserito nel contenitore un piccolo programma scritto in Go, che per il nostro esempio genererà log di test. Non entrerò nei dettagli della configurazione di ELK, ci sono già molte informazioni al riguardo su Habr.

Cloniamo il repository con la configurazione docker-compose e le impostazioni di ELK, e lo avviamo con il comando docker-compose up. Non aggiungo intenzionalmente la chiave -d, per vedere il processo di funzionamento dello stack ELK.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Se tutto è configurato correttamente, nei log vedremo una registrazione (forse non subito, il processo di avvio del container con tutto lo stack può richiedere alcuni minuti):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

All'indirizzo localhost:5061 dovrebbe aprirsi Kibana.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Creazione di un Dashboard in Kibana per il monitoraggio dei log
L'unica cosa che dobbiamo configurare è creare un Index Pattern per Kibana con informazioni su quali dati visualizzare. Per farlo, eseguiremo una richiesta curl o faremo una serie di azioni nell'interfaccia grafica.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Creazione dell'Index Pattern tramite interfaccia grafica
Per la configurazione, scegliamo nella menu a sinistra la sezione Discover, e arriviamo alla pagina di creazione dell'Index pattern.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cliccando sul pulsante «Crea index pattern», arriviamo alla pagina di creazione dell'indice. Nel campo «Nome del pattern dell'indice» inseriamo «logstash-*». Se tutto è configurato correttamente, sotto Kibana mostrerà gli indici corrispondenti alla regola.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nella pagina successiva scegliamo il campo chiave con il timestamp; nel nostro caso è @timestamp.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Così si aprirà la pagina delle impostazioni dell'indice, ma al momento non sono necessarie ulteriori azioni da parte nostra.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Ora possiamo tornare alla sezione Discover, dove vedremo le registrazioni dei log.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Dashboard

Nel menu a sinistra clicchiamo sulla sezione di creazione del Dashboard e accediamo alla pagina corrispondente.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Facciamo clic su «Create new dashboard» e accederemo alla pagina per aggiungere oggetti al Dashboard.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Clicchiamo sul pulsante «Create new», e il sistema ci chiederà di selezionare il tipo di visualizzazione dei dati. In Kibana ce ne sono molti, ma esamineremo la creazione della visualizzazione grafica «Vertical Bar» e della tabella «Data Table». Gli altri tipi di visualizzazione si configurano in modo simile. 
Creazione di un Dashboard in Kibana per il monitoraggio dei log
Alcuni oggetti disponibili hanno le etichette B ed E — questo significa che il formato è sperimentale o in fase di beta testing. Nel tempo, il formato potrebbe cambiare o scomparire del tutto da Kibana.

Vertical Bar

Per esempio, con «Vertical Bar» creeremo un istogramma che mostra il rapporto tra stati di risposta riusciti e non riusciti del nostro servizio. Alla fine delle impostazioni otterremo il seguente grafico:

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Considereremo come riusciti tutte le richieste con uno stato di risposta = 400.

Per creare un grafico a barre verticali, dobbiamo selezionare la fonte dei dati. Selezioniamo il Pattern di Indice che abbiamo creato in precedenza.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Per impostazione predefinita, dopo aver selezionato la fonte dei dati, apparirà un grafico continuo. Configuriamolo.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nel blocco 'Buckets', facciamo clic sul pulsante 'Add', selezioniamo 'X-axis' e configuriamo l'asse X. Vi riporteremo le etichette temporali della registrazione dei log. Nella casella 'Aggregation' scegliamo 'Date Histogram' e nel campo 'Field' selezioniamo '@timestamp', che indica il campo temporale. Lasceremo 'Minimum interval' su 'Auto', e si adatterà automaticamente alla nostra visualizzazione. 

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cliccando sul pulsante 'Update', vedremo un grafico con il numero di richieste ogni 30 secondi.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Ora configurate le colonne lungo l'asse Y. Attualmente visualizziamo il numero totale di richieste nel periodo di tempo selezionato.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Modifichiamo il valore di 'Aggregation' in 'Sum Bucket', che ci permetterà di combinare i dati sulle richieste riuscite e non riuscite. Nel blocco Bucket -> Aggregation selezioniamo l'aggregazione per 'Filters' e impostiamo il filtro su 'statusCode >= 400'. Nel campo 'Custom label' indichiamo il nome del nostro indicatore per una visualizzazione più chiara nella legenda del grafico e nell'elenco generale.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cliccando il pulsante «Update» sotto il blocco delle impostazioni, otterremo un grafico con le query problematiche.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Se si fa clic sul cerchio accanto alla legenda, apparirà una finestra in cui è possibile cambiare il colore delle colonne.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Ora aggiungiamo al grafico i dati sulle query di successo. Nella sezione «Metrics» premiamo il pulsante «Add» e scegliamo «Y-axis».

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nella metrica creata facciamo le stesse impostazioni come per le query errate. Solo nel filtro indichiamo «statusCode < 400».

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cambiando il colore della nuova colonna, otterremo una visualizzazione del rapporto tra query problematiche e di successo.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cliccando nella parte superiore dello schermo sul pulsante «Save» e specificando un nome, vedremo il primo grafico nel Dashboard.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Data Table

Ora consideriamo la rappresentazione tabellare «Data Table». Creiamo una tabella con l'elenco di tutti gli URL a cui sono state effettuate le richieste e il numero di queste richieste. Come nell'esempio con il Vertical Bar, iniziamo scegliendo la fonte dei dati.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Dopo di ciò, sullo schermo verrà visualizzata una tabella con una colonna che mostra il numero totale di richieste per l'intervallo di tempo selezionato.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Modificheremo solo il blocco «Buckets». Premi il pulsante «Add» e scegli «Split rows».

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nel campo «Aggregation» scegliamo «Terms». E nel campo «Field» che appare, selezioniamo «url.keyword».

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Inserendo nel campo «Custom label» il valore «Url» e cliccando su «Update», otteniamo la tabella desiderata con il numero di richieste per ciascun URL nel periodo di tempo selezionato.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nella parte superiore dello schermo, premiamo di nuovo il pulsante «Save» e indichiamo il nome della tabella, per esempio Urls. Torniamo indietro al Dashboard e vediamo entrambe le visualizzazioni create.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Lavorare con il Dashboard

Quando creiamo un Dashboard, nelle impostazioni degli oggetti di visualizzazione abbiamo impostato solo i parametri fondamentali. Non ha senso fornire nei dati degli oggetti informazioni per i filtri, ad esempio, «intervallo di date», «filtraggio per user agent», «filtraggio per paese della richiesta», ecc. È molto più comodo specificare il periodo di tempo desiderato o impostare la filtrazione necessaria nel pannello delle richieste, che si trova sopra gli oggetti.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
I filtri aggiunti in questo pannello verranno applicati all'intero Dashboard e tutti gli oggetti di visualizzazione si ristrutturano in base ai dati filtrati attuali.

Conclusione

Kibana è uno strumento potente che consente di visualizzare qualsiasi dato in modo intuitivo. Ho cercato di mostrare la configurazione di due principali tipi di visualizzazione. Tuttavia, anche altri tipi possono essere configurati in modo simile. E la varietà di impostazioni, che ho lasciato "fuori campo", ti permetterà di personalizzare i grafici in base alle tue esigenze.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster