Monitoraggio dei file di registro utilizzando Prometheus

Monitoraggio dei file di registro utilizzando Prometheus
È possibile utilizzare l'esportatore di terze parti Prometheus GROK_EXPORTER per analizzare i file di registro ed esportare le metriche a Prometheus.

GROK_EXPORTER Utilizza espressioni regolari per analizzare diversi dati dai file di registro. I file di registro sono corrispondenti riga per riga utilizzando un'espressione regolare e i dati abbinati vengono archiviati in diverse variabili. Quindi, i dati di queste variabili vengono esportati tramite GROK_EXPORTER.

Una volta aggiunto il GROK_EXPORTER server a Prometeo come bersaglio, Prometeo può monitorare i file di registro desiderati tramite GROK_EXPORTER.

In questo articolo, ti mostrerò come installare GROK_EXporter su Linux (Ubuntu 20.04 LTS nel mio caso), genera file di registro fittizio, configura GROK_EXPORTER per monitorare il file di registro fittizio e monitorare il file di registro fittizio utilizzando Prometheus. Quindi iniziamo.

Sommario:

  1. Cose di cui avrai bisogno
  2. Download e installazione di GROK_EXPORTER
  3. Generare un file di registro fittizio con faketa
  4. Configurazione di GROK_EXPORTER
  5. Aggiunta di Grok_Exporter a Prometheus
  6. Raschiando le metriche da grok_exporter con Prometheus
  7. Dove andare dopo?
  8. Conclusione
  9. Riferimenti

Cose di cui avrai bisogno:

Devi avere Prometheus installato sul tuo computer per poter monitorare i file di registro con Prometheus.

Se hai bisogno di assistenza sull'installazione di Prometheus sul tuo computer, leggi l'articolo come installare Prometheus su Ubuntu 20.04 LTS.

Download e installazione di GROK_EXPORTER:

In questa sezione, ti mostrerò come scaricare e installare GROK_EXporter sul tuo computer.

Innanzitutto, navigare verso il ~/Download directory come segue:

$ cd ~/download

Scarica l'ultima versione del GROK_EXPORTER Archivio con il seguente comando:

$ wget https: // github.com/fstab/grok_exporter/versioni/download/v1.0.0.RC5/GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.cerniera lampo

GROK_EXPORTER L'archivio viene scaricato. Potrebbe volerci un po 'di tempo per completare.

A questo punto, il GROK_EXPORTER L'archivio dovrebbe essere scaricato.

Una volta il GROK_EXPORTER L'archivio viene scaricato, dovresti trovare un nuovo file GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.cerniera lampo nel ~/Download Directory come contrassegnato nello screenshot seguente.

$ ls -lh

Estrai l'archivio GROK_EXPORTER GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.cerniera lampo con il seguente comando:

$ unzip grok_exporter-1.0.0.RC5.Linux-AMD64.cerniera lampo

L'archivio GROK_EXPORTER dovrebbe essere estratto.

Una nuova directory GROK_EXPORTER-1.0.0.RC5.Linux-Amd64/ dovrebbe essere creato in ~/Download directory.

$ ls -lh

Ora, rinomina il GROK_EXPORTER-1.0.0.RC5.Linux-Amd64/ directory a Grok-Exporter/ e spostalo nel /optare directory come segue:

$ sudo mv -v grok_exporter -1.0.0.RC5.Linux-Amd64 /Opt /Grok-Exporter

Ora, crea un file di servizio SystemD Grok-Exporter.servizio nel /opt/grok-exporter directory come segue:

$ sudo nano/opt/grok-exporter/grok-exporter.servizio

Digitare le seguenti righe in Grok-Exporter.servizio file.

[Unità]
Descrizione = server Prometheus Grok_Exporter
[Servizio]
Riavvia = sempre
WorkingDirectory =/opt/grok-exporter
ExecStart =/opt/grok-exporter/grok_exporter--config =/opt/grok-exporter/config.YML
ExecreLoad =/bin/kill -hup $ mainpid
TimeoutstopSec = 20s
SendSIGKILL = NO
[Installare]
WANTEDBY = Multi-utente.bersaglio

Una volta che hai finito, premere + X seguito da Y E per salvare il Grok-Exporter.servizio file.

Per installare il Grok-Exporter.servizio File di servizio SystemD sul tuo computer, crea un collegamento simbolico del /opt/grok-exporter/grok-exporter.servizio file in /etc/systemd/system directory come segue:

$ sudo ln -s/opt/grok-exporter/grok-exporter.Servizio/etc/systemd/system/grok-exporter.servizio

Copia il configurazione.YML file da /opt/grok-esporter/esempio directory al /opt/grok-exporter directory come segue:

$ sudo cp -v/opt/grok -exporter/esempio/config.yml/opt/grok-exporter/

NOTA: IL configurazione.YML Il file viene utilizzato per configurare GROK_EXPORTER. L'esempio (impostazione predefinita) configurazione.YML Il file è buono per il test se GROK_EXPORTER sta lavorando. Ti mostrerò come configurare GROK_EXPORTER In una sezione successiva di questo articolo.

Per le modifiche SystemD per avere effetto, eseguire il seguente comando:

$ sudo systemctl demone-ricaricamento

Ora, inizia il Grok-Exporter Servizio SystemD con il seguente comando:

$ sudo systemctl avvia Grok-Exporter.servizio

IL Grok-Exporter Il servizio SystemD dovrebbe essere attivo/in esecuzione, Come puoi vedere nello screenshot qui sotto. Significa GROK_EXPORTER sta funzionando bene.

$ sudo systemctl status grok-exporter.servizio

Generare un file di registro fittizio con faketa:

Per generare file di registro falsi, userò Lucapette/Faketa in questo articolo. Ci sono molti altri strumenti che puoi utilizzare per generare file di registro falsi. Puoi usarne uno se vuoi.

Innanzitutto, navigare verso il ~/Download directory come segue:

$ cd ~/download

Scaricare faketa, Esegui il seguente comando:

$ wget https: // github.com/Lucapette/Faketata/Releases/Download/V1.1.2/FADEDATA_1.1.2_linux_amd64.catrame.Gz

L'archivio Faketa dovrebbe essere scaricato.

Una volta scaricato l'archivio Faketa, dovresti vedere un nuovo faketa_1.1.2_linux_amd64.catrame.Gz nel ~/Download directory.

$ ls -lh

Estrai l'archivio Faketa faketa_1.1.2_linux_amd64.catrame.Gz con il seguente comando:

$ tar xvzf faketa_1.1.2_linux_amd64.catrame.Gz

Dovresti trovare un nuovo eseguibile faketa nel ~/Download Directory come contrassegnato nello screenshot seguente.

$ ls -lh

Muovi il faketa binario a /usr/locale/cestino directory come segue:

$ sudo mv -v faketa/usr/locale/bin/

Ora dovresti essere in grado di accedere faketa Dalla riga di comando.

$ FADEDATA -VERSION

Crea un nuovo script di shell ciao-http nel /usr/locale/cestino directory come segue:

$ sudo nano/usr/locale/bin/hello-http

Digitare le seguenti righe di codici in ciao-http sceneggiatura.

#!/Bin/Bash
Logfile =/tmp/hello-http.tronco d'albero
mentre è vero
Fare
FADEDATA Nome utente http.Metodo enum:/,/login,/logout,/messaggi ipv4 -limit 1 >> $ logfile
Sonno 1
Fatto
uscita 0

Una volta che hai finito, premere + X seguito da Y E Per salvare lo script Hello-Http.

Aggiungi eseguire l'autorizzazione allo script shell /usr/local/bin/hello-http come segue:

$ sudo chmod +x/usr/local/bin/hello-http

Per testare il ciao-http Script, eseguilo come segue:

$ Hello-Http

Un file di registro /tmp/hello-http.tronco d'albero dovrebbe essere generato. Una nuova voce dovrebbe essere aggiunta al file di registro ogni secondo.

$ tail -f /tmp /hello -http.tronco d'albero

Ogni riga del /tmp/hello-http.tronco d'albero Il file dovrebbe trovarsi nel seguente formato,

Configurazione di GROK_Exporter:

In questa sezione, ti mostrerò come configurare GROK_EXPORTER Per monitorare il file di registro generato /tmp/hello-http.tronco d'albero.

Apri il GROK_EXPORTER file di configurazione /opt/grok-exporter/config.YML con il nano Editor di testo come segue:

$ sudo nano/opt/grok-exporter/config.YML

Il file di configurazione predefinito dovrebbe apparire come segue.

Nel ingresso sezione, si specifica il sentiero del file di registro che si desidera monitorare.

In questo caso, voglio monitorare il file di registro /tmp/hello-http.tronco d'albero.

leggi tutto dovrebbe essere VERO Se si desidera monitorare l'intero file di registro e le righe appena aggiunte dal file di registro.

leggi tutto dovrebbe essere falso Se si desidera monitorare solo le righe appena aggiunte dal file di registro.

Per estrarre i dati dal file di registro /tmp/hello-http.tronco d'albero, modificare la sezione metrica del configurazione.YML file come segue:

Qui, il tipo metrico è contatore. GROK_EXporter supporta anche altri tipi metrici Prometheus. Se si desidera utilizzare un diverso tipo di metrica Prometheus, controlla la documentazione ufficiale di GROK_Exporter. I collegamenti sono riportati di seguito.

GROK_EXPORTER - Tipo di contatore

GROK_EXPORTER - Tipo di metrica calibro

GROK_EXPORTER - Tipo metrico dell'istogramma

GROK_EXPORTER - Tipo di metrica di riepilogo

IL nome della metrica sarà ciao_http_total.

IL aiuto La proprietà è una breve descrizione di ciò che fa la metrica.

IL incontro La proprietà viene utilizzata per abbinare dati diversi da ciascuna riga del file di registro e archiviarli nelle rispettive variabili.

La prima colonna del /tmp/hello-http.tronco d'albero Il file è il . IL ; è della parola tipo modello e i dati estratti con questo tipo verranno archiviati nella variabile utente.

Allo stesso modo, la seconda colonna è ed è anche del tipo di pattern PAROLA, e i dati estratti verranno archiviati in http_method variabile.

La terza colonna del file di registro è il percorso URL. È del tipo di pattern UripathParam, e sarà conservato in http_path variabile.

La quarta colonna del file di registro è l'indirizzo IP. È del tipo di pattern IP, e sarà memorizzato nella variabile ip_addr.

Esistono molti altri tipi di pattern che è possibile utilizzare per estrarre dati dal file di registro. Puoi trovare tutti i tipi di pattern supportati in /opt/grok-exporter/patterns/grok-patterns file.

$ sudo cat/opt/grok-esporter/patterns/grok-patterns

Una volta estratti e memorizzati i dati in diverse variabili, è possibile scegliere le variabili che si desidera esportare tramite GROK_EXPORTER.

Le variabili che si desidera esportare tramite GROK_EXPORTER deve essere elencato in Etichette sezione come contrassegnato nello screenshot seguente.

È inoltre possibile creare nuovi tipi di pattern e abbinare i dati da ciascuna riga del file di registro utilizzando i tipi di pattern appena creati.

Per creare nuovi tipi di pattern, si aggiungono i tipi di pattern in grok_patterns sezione del configurazione.YML file.

Per impostazione predefinita, un tipo di pattern personalizzato Exim_message è definito e può essere utilizzato per abbinare i dati dai file di registro utilizzando l'espressione normale [a-za-z]*.

Per abbinare lo stato HTTP (i.e., Ottieni, post, metti), puoi definire un nuovo tipo di pattern Http_status [a-z] 3,4 e usarlo per abbinare i dati dal file di registro come segue. Spero che tu abbia l'idea.

La versione finale del configurazione.YML Il file è riportato nello screenshot di seguito.

Una volta che hai finito di apportare modifiche al configurazione.YML File, premere + X seguito da Y E per salvarlo.

Affinché le modifiche abbiano effetto, riavvia il Grok-Exporter SystemD Service come segue:

$ sudo systemctl riavvio grok-esporter.servizio

Se tutto va bene (non hai commesso errori nel file di configurazione configurazione.YML), IL Grok-Exporter Il servizio SystemD dovrebbe essere attivo/in esecuzione.

$ sudo systemctl status grok-exporter.servizio

Aggiunta di Grok_Exporter a Prometheus:

Ora devi aggiungere GROK_EXPORTER a Prometeo come bersaglio.

Innanzitutto, devi conoscere l'indirizzo IP del computer in cui è stato installato GROK_EXPORTER.

Nel mio caso, l'indirizzo IP è 192.168.3.149. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

$ hostname -i

Quindi, apri il file di configurazione Prometheus Prometeo.YML con il nano Editor di testo come segue:

$ sudo nano/opt/prometheus/prometeo.YML

Nel rash_configs sezione del Prometeo.YML File, aggiungi le righe contrassegnate nello screenshot seguente.

NOTA: Non dimenticare di sostituire l'indirizzo IP target del Grok-Exporter lavoro con l'indirizzo IP del computer in cui hai GROK_EXPORTER installato.

Affinché le modifiche abbiano effetto, riavvia il Prometeo SystemD Service come segue:

$ sudo systemctl riavvia Prometeo.servizio

NOTA: Ho installato Prometeo sullo stesso computer di GROK_EXPORTER. Quindi, l'indirizzo IP del computer in cui ho installato Prometheus è lo stesso di GROK_EXPORTER. Nel mio caso, lo è 192.168.3.149. Assicurati di sostituirlo con il tuo da ora in poi.

Ora visita la pagina degli obiettivi di Prometeo all'URL http: // 192.168.3.149: 9090/obiettivi e dovresti vedere che il Grok-Exporter Target è nel SU stato.

Raschiatura metriche da grok_exporter con Prometeo:

Prima di iniziare a raschiare le metriche da GROK_EXPORTER Con Prometheus, avviare il generatore di file di registro fittizio ciao-http con il seguente comando:

$ Hello-Http

Ora visita la pagina del grafico Prometheus su http: // 192.168.3.149: 9090/grafico ed eseguire l'espressione ciao_http_total.

Come puoi vedere, i dati vengono estratti dal file di registro /tmp/hello-http.tronco d'albero. Ogni riga del file di registro è una voce separata in Prometeo.

Puoi anche filtrare i dati. Ad esempio, supponiamo che tu voglia elencare solo le voci in cui il http_method è GET. Per fare ciò, eseguire l'espressione Hello_http_total http_method = "get".

Puoi anche contare il numero di voci che corrispondono a determinati criteri. Ad esempio, per contare il numero di richieste HTTP, è possibile eseguire l'espressione Count (Hello_http_total http_method = ”get”.

Come puoi vedere, il numero di richieste HTTP Get è 30.

Se si esegue la stessa espressione dopo pochi secondi, il numero di richieste HTTP GET dovrebbe aumentare.

Dove andare dopo?

Per saperne di più sulla configurazione GROK_EXPORTER, Leggi la pagina della documentazione di configurazione GROXPORTER ufficiale.

Conclusione:

In questo articolo, ti ho mostrato come installare GROK_EXporter su Ubuntu 20.04 LTS. Ti ho anche mostrato come generare file di registro fittizio con faketa e configurare Grok_exporter per monitorare il file di registro generato. Ti ho mostrato come aggiungere GROK_EXporter come target su Prometheus e monitorare i file di registro anche con Prometheus.

Riferimenti:

  1. fstab/grok_exporter: esporta metriche Prometheus da dati di registro non strutturati arbitrari.
  2. Lucapette/Faketata: utilità CLI per la generazione di dati falsi
  3. Plug -in filtro Grok | Riferimento di logstash [7.15] | Elastico
  4. Logstash-patterns/Grok-patterns presso Master · Hpcugent/Logstash-patterns
  5. https: // github.com/logstash-plugins/logstash-patterns-core/albero/master/patterns/ECS-V1
  6. Logstash: raccogli, analizza, trasforma registri | Elastico
  7. GROK_EXPORTER/config.MD su Master · Fstab/Grok_Exporter