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 Evgenij, sono il team leader della direzione B2B in Citymobil. Uno dei compiti del nostro team è supportare le integrazioni per le prenotazioni di taxi dai partner, e per garantire un servizio stabile dobbiamo sempre capire cosa sta succedendo nei nostri microservizi. E per questo dobbiamo monitorare costantemente i log.

In Citymobil utilizziamo lo stack ELK (ElasticSearch, Logstash, Kibana) per lavorare con i log, e il volume di dati che vi arrivano è enorme. Trovare in questa massa di richieste i problemi che possono sorgere dopo il deploy di nuovo codice è piuttosto difficile. E per la loro visualizzazione chiara in Kibana esiste la sezione Dashboard.

Su Habr ci sono molteplici articoli con esempi su come configurare lo stack ELK per ricevere e memorizzare dati, ma non ci sono materiali attuali su come creare un Dashboard. Pertanto, voglio mostrare come in Kibana creare una rappresentazione visiva dei dati basata sui log in arrivo.

Configurazione

Per rendere tutto più chiaro, ho creato un'immagine Docker con ELK e Filebeat. E ho inserito nel contenitore un piccolo programma programma in Go, che per il nostro esempio genererà log di test. Non descriverò in dettaglio la configurazione di ELK, su Habr è già stato scritto molto al riguardo.

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":"il server http è in esecuzione su 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'Indice Pattern per Kibana con le informazioni su quali dati visualizzare. Per fare ciò, eseguiamo una richiesta curl o facciamo 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 di un'Indice Pattern tramite l'interfaccia grafica
Per la configurazione selezioniamo nella menu a sinistra la sezione Discover, e arriviamo alla pagina di creazione dell'Indice pattern.

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

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

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Di conseguenza apparirà una pagina delle impostazioni dell'indice, ma al momento non sono richieste ulteriori azioni da parte nostra.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Ora possiamo tornare nella sezione Discover, dove vedremo i registri.

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
Clicchiamo su «Create new dashboard» e accediamo alla pagina di aggiunta degli oggetti nel Dashboard.

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

Barra verticale

Per esempio, per la «Vertical Bar» creeremo un istogramma della proporzione degli stati di risposta del nostro servizio e dei casi di errore. Alla fine della configurazione otterremo il seguente grafico:

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

Per creare il grafico «Vertical Bar» dobbiamo scegliere la fonte dei dati. Selezioniamo il Pattern dell'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
Nella sezione «Buckets» clicchiamo il pulsante «Add», scegliamo «X-asis» e configuriamo l'asse X. Rappresenteremo su di esso le marcature temporali degli eventi di registrazione nel log. Nel campo «Aggregation» scegliamo «Date Histogram», e nel campo «Field» selezioniamo «@timestamp», che indica il campo temporale. Lasceremo «Minimum interval» in modalità «Auto», che 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 configureremo le colonne sull'asse Y. Attualmente, viene visualizzato il numero totale di richieste nell'intervallo 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 delle richieste riuscite e problematiche. Nella sezione Bucket -> Aggregation selezioniamo l'aggregazione per «Filters» e imponiamo il filtro su «statusCode >= 400». Nel campo «Custom label» indichiamo il nostro nome per il parametro, per una visualizzazione più chiara nella leggenda del grafico e nell'elenco generale.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Cliccando il pulsante «Update» sotto la sezione di configurazione, otterremo un grafico con le richieste problematiche.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Se si fa clic sul cerchio accanto alla legenda, si aprirà 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 richieste riuscite. Nella sezione «Metrics» facciamo clic sul pulsante «Add» e scegliamo «Y-axis».

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nella metrica creata impostiamo le stesse configurazioni delle richieste errate. Solo nel filtro indichiamo «statusCode < 400».

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

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

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Tabella Dati

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

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Dopo di che, sullo schermo verrà visualizzata una tabella con una sola 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». Facciamo clic sul pulsante «Add» e scegliamo «Split rows».

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

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Specificando nel campo «Custom label» il valore «Url» e facendo clic su «Update», otterremo la tabella desiderata con il numero di richieste per ciascun URL per il periodo scelto.

Creazione di un Dashboard in Kibana per il monitoraggio dei log
Nella parte superiore dello schermo faremo di nuovo clic sul pulsante «Save» e specificheremo il nome della tabella, ad esempio Urls. Torneremo indietro al Dashboard e vedremo entrambe le visualizzazioni create.

Creazione di un Dashboard in Kibana per il monitoraggio dei log

Lavorare con il Dashboard

Creando un Dashboard, nelle impostazioni degli oggetti di visualizzazione abbiamo impostato solo i parametri di base dell'aspetto. Non ha senso indicare nei vari oggetti dati per i filtri, ad esempio, «intervallo di date», «filtro per user agent», «filtro per paese di richiesta» e così via. È molto più comodo specificare l'intervallo di tempo desiderato o impostare il filtro necessario nel pannello delle richieste, che si trova sopra gli oggetti.

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

Conclusione

Kibana è uno strumento potente che consente di visualizzare qualsiasi dato in modo conveniente. Ho cercato di mostrare la configurazione di due dei principali tipi di visualizzazione. Ma anche altri tipi vengono configurati in modo simile. E la varietà di impostazioni che ho lasciato «dietro le quinte» ti permetterà di personalizzare i grafici in modo molto flessibile 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