Creazione di un dashboard in Kibana per monitorare i registri

Creazione di un dashboard in Kibana per monitorare i registri

Ciao, mi chiamo Eugene, sono un team leader B2B di Citymobil. Uno dei compiti del nostro team è supportare le integrazioni per ordinare un taxi dai partner e, per garantire un servizio stabile, dobbiamo sempre capire cosa sta succedendo nei nostri microservizi. E per questo è necessario monitorare costantemente i registri.

In Citymobil, utilizziamo lo stack ELK (ElasticSearch, Logstash, Kibana) per lavorare con i log e la quantità di dati in arrivo è enorme. Trovare problemi in questa massa di richieste che possono apparire dopo la distribuzione di nuovo codice è abbastanza difficile. E per la loro identificazione visiva, Kibana ha una sezione Dashboard.

Ci sono parecchi articoli su Habré con esempi su come impostare uno stack ELK per ricevere e archiviare dati, ma non ci sono materiali rilevanti sulla creazione di un dashboard. Pertanto, voglio mostrare come creare una rappresentazione visiva dei dati basata sui log in entrata in Kibana.

registrazione

Per renderlo più chiaro, ho creato un'immagine Docker con ELK e Filebeat. E messo in un contenitore un piccolo программу in Go, che per il nostro esempio genererà registri di test. Non descriverò in dettaglio la configurazione di ELK, c'è abbastanza scritto a riguardo su Habré.

Clona il repository di configurazione docker-compose e impostazioni ELK e avvialo con il comando docker-compose up. Intenzionalmente non aggiungendo una chiave -dper vedere l'avanzamento dello stack ELK.

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

Se tutto è configurato correttamente, vedremo una voce nei log (forse non immediatamente, il processo di avvio di un container con l'intero stack potrebbe richiedere diversi minuti):

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

A localhost:5061 Kibana dovrebbe aprirsi.

Creazione di un dashboard in Kibana per monitorare i registri
Creazione di un dashboard in Kibana per monitorare i registri
L'unica cosa che dobbiamo configurare è creare un modello di indice per Kibana con informazioni su quali dati visualizzare. Per fare ciò, eseguiremo una richiesta curl o eseguiremo 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 modello di indice tramite la GUI
Per configurare, seleziona la sezione Scopri nel menu a sinistra e accedi alla pagina di creazione del modello di indice.

Creazione di un dashboard in Kibana per monitorare i registri
Cliccando sul pulsante "Crea pattern indice", arriviamo alla pagina di creazione dell'indice. Nel campo "Index pattern name", inserisci "logstash-*". Se tutto è configurato correttamente, sotto Kibana verranno mostrati gli indici che rientrano nella regola.

Creazione di un dashboard in Kibana per monitorare i registri
Nella pagina successiva, seleziona il campo chiave con un timestamp, nel nostro caso lo è @timestamp.

Creazione di un dashboard in Kibana per monitorare i registri
Verrà visualizzata la pagina delle impostazioni dell'indice, ma al momento non sono richieste ulteriori azioni da parte nostra.

Creazione di un dashboard in Kibana per monitorare i registri

Ora possiamo andare di nuovo alla sezione Scopri, dove vedremo le voci di registro.

Creazione di un dashboard in Kibana per monitorare i registri

Performance modelli/hostess

Nel menu a sinistra, fai clic sulla sezione Creazione dashboard e accedi alla pagina corrispondente.

Creazione di un dashboard in Kibana per monitorare i registri
Fai clic su "Crea nuova dashboard" e accedi alla pagina per l'aggiunta di oggetti alla dashboard.

Creazione di un dashboard in Kibana per monitorare i registri
Fai clic sul pulsante "Crea nuovo" e il sistema ti chiederà di selezionare il tipo di visualizzazione dei dati. Kibana ne ha un gran numero, ma cercheremo di creare una rappresentazione grafica della "Barra verticale" e una "Tabella dati" tabulare. Altri tipi di presentazione sono configurati in modo simile. 
Creazione di un dashboard in Kibana per monitorare i registri
Alcuni oggetti disponibili sono etichettati B ed E, il che significa che il formato è sperimentale o in beta testing. Nel tempo, il formato potrebbe cambiare o scomparire completamente da Kibana.

Barra verticale

Per l'esempio "Barra verticale", creiamo un istogramma del rapporto tra stati di risposta riusciti e non riusciti del nostro servizio. Al termine delle impostazioni, otteniamo il seguente grafico:

Creazione di un dashboard in Kibana per monitorare i registri
Classificheremo tutte le richieste con uno stato di risposta < 400 come riuscite e >= 400 come problematiche.

Per creare un grafico a "barre verticali", dobbiamo selezionare un'origine dati. Seleziona il modello di indice che abbiamo creato in precedenza.

Creazione di un dashboard in Kibana per monitorare i registri
Per impostazione predefinita, dopo aver selezionato un'origine dati viene visualizzato un singolo grafico a tinta unita. Sistemiamolo.

Creazione di un dashboard in Kibana per monitorare i registri
Nel blocco "Buckets", premi il pulsante "Add", seleziona "X-asis" e imposta l'asse X. Mettiamo da parte i timestamp delle voci nel registro lungo di esso. Nel campo "Aggregation", selezionare "Date Histogram", e nel "Field" selezionare "@timestamp", indicando il campo dell'ora. Lasciamo "Intervallo minimo" nello stato "Auto" e si adatterà automaticamente al nostro display. 

Creazione di un dashboard in Kibana per monitorare i registri
Cliccando sul pulsante "Aggiorna", vedremo un grafico con il numero di richieste ogni 30 secondi.

Creazione di un dashboard in Kibana per monitorare i registri
Ora impostiamo le colonne lungo l'asse Y. Ora stiamo visualizzando il numero totale di richieste nell'intervallo di tempo selezionato.

Creazione di un dashboard in Kibana per monitorare i registri
Modifichiamo il valore "Aggregation" in "Sum Bucket", che ci consentirà di combinare i dati per le richieste riuscite e non riuscite. Nel blocco Bucket -> Aggregation selezionare l'aggregazione per "Filtri" e impostare il filtro per "statusCode >= 400". E nel campo "Etichetta personalizzata", indichiamo il nostro nome dell'indicatore per una visualizzazione più comprensibile nella legenda sul grafico e nell'elenco generale.

Creazione di un dashboard in Kibana per monitorare i registri
Facendo clic sul pulsante "Aggiorna" sotto il blocco delle impostazioni, otterremo un grafico con le richieste problematiche.

Creazione di un dashboard in Kibana per monitorare i registri
Se fai clic sul cerchio accanto alla legenda, verrà visualizzata una finestra in cui puoi modificare il colore delle colonne.

Creazione di un dashboard in Kibana per monitorare i registri
Ora aggiungiamo i dati sulle richieste riuscite al grafico. Nella sezione "Metriche", fai clic sul pulsante "Aggiungi" e seleziona "Asse Y".

Creazione di un dashboard in Kibana per monitorare i registri
Nella metrica creata, eseguiamo le stesse impostazioni delle richieste errate. Solo nel filtro specifichiamo "statusCode < 400".

Creazione di un dashboard in Kibana per monitorare i registri
Modificando il colore della nuova colonna, otteniamo una visualizzazione del rapporto tra richieste problematiche e riuscite.

Creazione di un dashboard in Kibana per monitorare i registri
Facendo clic sul pulsante "Salva" nella parte superiore dello schermo e specificando il nome, vedremo il primo grafico sulla Dashboard.

Creazione di un dashboard in Kibana per monitorare i registri

Tabella dati

Consideriamo ora la vista tabulare "Tabella dati". Creiamo una tabella con un elenco di tutti gli URL richiesti e il numero di tali richieste. Come per l'esempio della barra verticale, selezioniamo prima un'origine dati.

Creazione di un dashboard in Kibana per monitorare i registri
Successivamente, 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 monitorare i registri
Cambieremo solo il blocco "Secchi". Fare clic sul pulsante "Aggiungi" e selezionare "Dividi righe".

Creazione di un dashboard in Kibana per monitorare i registri
Nel campo "Aggregazione", seleziona "Termini". E nel campo apparso "Campo" seleziona "url.keyword".

Creazione di un dashboard in Kibana per monitorare i registri
Specificando il valore "Url" nel campo "Etichetta personalizzata" e cliccando su "Aggiorna", otterremo la tabella desiderata con il numero di richieste per ciascuno degli URL per il periodo di tempo selezionato.

Creazione di un dashboard in Kibana per monitorare i registri
Nella parte superiore dello schermo, fai nuovamente clic sul pulsante "Salva" e specifica il nome della tabella, ad esempio URL. Torniamo alla Dashboard e vediamo entrambe le visualizzazioni create.

Creazione di un dashboard in Kibana per monitorare i registri

Lavorare con Dashboard

Durante la creazione del dashboard, impostiamo solo i parametri della vista principale nelle impostazioni dell'oggetto di visualizzazione. Non ha senso specificare i dati per i filtri negli oggetti, ad esempio "intervallo di date", "filtro per agente utente", "filtro per paese della richiesta", ecc. È molto più conveniente specificare il periodo di tempo desiderato o impostare il filtro necessario nel pannello delle query, che si trova sopra gli oggetti.

Creazione di un dashboard in Kibana per monitorare i registri
I filtri aggiunti in questo pannello verranno applicati all'intero dashboard e tutti gli oggetti di visualizzazione verranno ricostruiti in base ai dati effettivi filtrati.

conclusione

Kibana è un potente strumento che ti consente di visualizzare qualsiasi dato in modo conveniente. Ho provato a mostrare l'impostazione dei due principali tipi di display. Ma altri tipi sono configurati in modo simile. E l'abbondanza di impostazioni che ho lasciato "dietro le quinte" ti consentirà di personalizzare in modo molto flessibile i grafici in base alle tue esigenze.

Fonte: habr.com

Aggiungi un commento