Logstash - Plugin
Logstash offre vari plugin per tutte e tre le fasi della sua pipeline (Input, Filter e Output). Questi plugin aiutano l'utente ad acquisire i log da varie fonti come server web, database, protocolli su rete, ecc.
Dopo l'acquisizione, Logstash può analizzare e trasformare i dati in informazioni significative come richiesto dall'utente. Infine, Logstash può inviare o archiviare tali informazioni significative a varie fonti di destinazione come Elasticsearch, AWS Cloudwatch, ecc.
Plugin di input
I plug-in di input in Logstash aiutano l'utente a estrarre e ricevere i log da varie fonti. La sintassi per l'utilizzo del plug-in di input è la seguente:
Input {
Plugin name {
Setting 1……
Setting 2……..
}
}
È possibile scaricare il plug-in di input utilizzando il seguente comando:
>Logstash-plugin install Logstash-input-<plugin name>
L'utility del plugin Logstash è presente nel file bin folderdella directory di installazione di Logstash. La tabella seguente contiene un elenco dei plug-in di input offerti da Logstash.
Sr.No. | Nome e descrizione del plugin |
---|---|
1 | beats Per ottenere i dati di registrazione o gli eventi dal framework dei battiti elastici. |
2 | cloudwatch Per estrarre eventi da CloudWatch, un'offerta API di Amazon Web Services. |
3 | couchdb_changes Eventi dall'URI _chages di couchdb spediti utilizzando questo plugin. |
4 | drupal_dblog Per estrarre i dati di registrazione del watchdog di drupal con DBLog abilitato. |
5 | Elasticsearch Per recuperare i risultati delle query eseguite nel cluster Elasticsearch. |
6 | eventlog Per ottenere gli eventi dal registro eventi di Windows. |
7 | exec Per ottenere l'output del comando della shell come input in Logstash. |
8 | file Per ottenere gli eventi da un file di input. Ciò è utile quando Logstash è installato localmente con la sorgente di input e si ha accesso ai log della sorgente di input. |
9 | generator Viene utilizzato a scopo di test, che crea eventi casuali. |
10 | github Cattura gli eventi dal webhook GitHub. |
11 | graphite Per ottenere i dati delle metriche dallo strumento di monitoraggio della grafite. |
12 | heartbeat Viene anche utilizzato per i test e produce eventi simili a battiti cardiaci |
13 | http Per raccogliere gli eventi di registro su due protocolli di rete e quelli sono http e https. |
14 | http_poller Viene utilizzato per decodificare l'output dell'API HTTP in un evento. |
15 | jdbc Converte le transazioni JDBC in un evento in Logstash. |
16 | jmx Per estrarre le metriche dalle applicazioni Java remote utilizzando JMX. |
17 | log4j Cattura eventi dall'oggetto socketAppender di Log4j su socket TCP. |
18 | rss All'output degli strumenti della riga di comando come evento di input in Logstash. |
19 | tcp Cattura eventi su socket TCP. |
20 | Raccogli eventi dall'API di streaming di Twitter. |
21 | unix Raccogli eventi su socket UNIX. |
22 | websocket Cattura eventi tramite protocollo websocket. |
23 | xmpp Legge gli eventi sui protocolli Jabber / xmpp. |
Impostazioni plugin
Tutti i plugin hanno le loro impostazioni specifiche, che aiutano a specificare i campi importanti come Porta, Percorso, ecc. In un plugin. Discuteremo le impostazioni di alcuni dei plugin di input.
File
Questo plug-in di input viene utilizzato per estrarre gli eventi direttamente dai file di registro o di testo presenti nella sorgente di input. Funziona in modo simile al comando tail in UNIX e salva l'ultimo cursore letto e legge solo i nuovi dati aggiunti dal file di input, ma può essere modificato utilizzando l'impostazione star_position. Di seguito sono riportate le impostazioni di questo plug-in di input.
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
add_field | {} | Aggiungi un nuovo campo all'evento di input. |
close_older | 3600 | I file con l'ora dell'ultima lettura (in secondi) superiore a quella specificata in questo plugin vengono chiusi. |
codec | "Semplice" | Viene utilizzato per decodificare i dati prima di entrare nella pipeline Logstash. |
delimitatore | "\ N" | Viene utilizzato per specificare un nuovo delimitatore di riga. |
discover_interval | 15 | È l'intervallo di tempo (in secondi) tra la scoperta di nuovi file nel percorso specificato. |
enable_metric | vero | Viene utilizzato per abilitare o disabilitare il reporting e la raccolta di metriche per il plug-in specificato. |
escludere | Viene utilizzato per specificare il nome del file oi modelli, che dovrebbero essere esclusi dal plug-in di input. | |
Id | Per specificare un'identità univoca per quell'istanza di plug-in. | |
max_open_files | Specifica il numero massimo di file di input da Logstash in qualsiasi momento. | |
sentiero | Specifica il percorso dei file e può contenere i modelli per il nome del file. | |
posizione di partenza | "fine" | Puoi cambiare in "inizio", se lo desideri; inizialmente Logstash dovrebbe iniziare a leggere i file dall'inizio e non solo il nuovo evento di log. |
start_interval | 1 | Specifica l'intervallo di tempo in secondi, dopo il quale Logstash verifica i file modificati. |
tag | Per aggiungere qualsiasi informazione aggiuntiva, come Logstash, aggiunge "_grokparsefailure" nei tag, quando un evento di log non è conforme al filtro grok specificato. | |
genere | Questo è un campo speciale, che puoi aggiungere a un evento di input ed è utile nei filtri e nella kibana. |
Elasticsearch
Questo particolare plugin viene utilizzato per leggere i risultati delle query di ricerca in un cluster Elasticsearch. Di seguito sono riportate le impostazioni utilizzate in questo plugin:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
add_field | {} | Come nel plugin file, viene utilizzato per aggiungere un campo nell'evento di input. |
ca_file | Viene utilizzato per specificare il percorso del file dell'autorità di certificazione SSL. | |
codec | "Semplice" | Viene utilizzato per decodificare gli eventi di input da Elasticsearch prima di entrare nella pipeline Logstash. |
docinfo | "Falso" | Puoi cambiarlo in true, se desideri estrarre le informazioni aggiuntive come indice, tipo e ID dal motore di Elasticsearch. |
docinfo_fields | ["_index", "_type", "_id"] | Puoi eliminare qualsiasi campo che non desideri inserire nel tuo Logstash. |
enable_metric | vero | Viene utilizzato per abilitare o disabilitare il reporting e la raccolta di metriche per quell'istanza di plug-in. |
host | Viene utilizzato per specificare gli indirizzi di tutti i motori di ricerca elastica, che saranno l'origine di input di quell'istanza di Logstash. La sintassi è host: porta o IP: porta. | |
Id | Viene utilizzato per fornire un numero di identità univoco a quella specifica istanza del plug-in di input. | |
indice | "logstash- *" | Viene utilizzato per specificare il nome dell'indice o un modello, che Logstash monitorerà da Logstash per l'input. |
parola d'ordine | Per scopi di autenticazione. | |
query | "{\" ordina \ ": [\" _ doc \ "]}" | Domanda per l'esecuzione. |
ssl | falso | Abilita o disabilita il secure socket layer. |
tag | Per aggiungere ulteriori informazioni negli eventi di input. | |
genere | Viene utilizzato per classificare i moduli di input in modo che sia facile cercare in tutti gli eventi di input nelle fasi successive. | |
utente | Per scopi autentici. |
registro eventi
Questo plug-in di input legge i dati dall'API win32 dei server Windows. Di seguito sono riportate le impostazioni di questo plugin:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
add_field | {} | Come nel plugin file, viene utilizzato per aggiungere un campo nell'evento di input |
codec | "Semplice" | Viene utilizzato per decodificare gli eventi di input da Windows; prima di entrare nella pipeline Logstash |
file di log | ["Applicazione", "Sicurezza", "Sistema"] | Eventi richiesti nel file di registro di input |
intervallo | 1000 | È in millisecondi e definisce l'intervallo tra due controlli consecutivi di nuovi registri eventi |
tag | Per aggiungere ulteriori informazioni negli eventi di input | |
genere | Viene utilizzato per classificare l'input da un plug-in specifico per un determinato tipo, in modo che sia facile cercare tutti gli eventi di input nelle fasi successive |
Questo plug-in di input viene utilizzato per raccogliere il feed di Twitter dalla sua Streaming API. La tabella seguente descrive le impostazioni di questo plugin.
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
add_field | {} | Come nel plugin file, viene utilizzato per aggiungere un campo nell'evento di input |
codec | "Semplice" | Viene utilizzato per decodificare gli eventi di input da Windows; prima di entrare nella pipeline Logstash |
consumer_key | Contiene la chiave utente dell'app Twitter. Per maggiori informazioni, visitahttps://dev.twitter.com/apps/new | |
consumer_secret | Contiene la chiave segreta del consumatore dell'app Twitter. Per maggiori informazioni, visitahttps://dev.twitter.com/apps/new | |
enable_metric | vero | Viene utilizzato per abilitare o disabilitare il reporting e la raccolta di metriche per quell'istanza di plug-in |
segue | Specifica gli ID utente separati da virgole e LogStash controlla lo stato di questi utenti su Twitter. Per maggiori informazioni, visita |
|
full_tweet | falso | Puoi cambiarlo in true, se desideri che Logstash legga l'intero oggetto restituito dall'API di Twitter |
id | Viene utilizzato per fornire un numero di identità univoco a quella specifica istanza del plug-in di input | |
ignore_retweets | Falso | Puoi modificare l'impostazione true per ignorare i retweet nel feed Twitter di input |
parole chiave | È un array di parole chiave, che devono essere tracciate nel feed di input di twitter | |
linguaggio | Definisce la lingua dei tweet necessari a LogStash dal feed di Twitter di input. Questo è un array di identificatori, che definisce una lingua specifica in Twitter | |
posizioni | Per filtrare i tweet dal feed di input in base alla posizione specificata. Questo è un array, che contiene la longitudine e la latitudine della posizione | |
oauth_token | È un campo obbligatorio, che contiene il token oauth dell'utente. Per ulteriori informazioni, visitare il seguente collegamentohttps://dev.twitter.com/apps | |
oauth_token_secret | È un campo obbligatorio, che contiene il token segreto oauth dell'utente. Per ulteriori informazioni, visitare il seguente collegamentohttps://dev.twitter.com/apps | |
tag | Per aggiungere ulteriori informazioni negli eventi di input | |
genere | Viene utilizzato per classificare l'input da un plug-in specifico per un determinato tipo, in modo che sia facile cercare tutti gli eventi di input nelle fasi successive |
TCP
TCP viene utilizzato per ottenere gli eventi sul socket TCP; può leggere dalle connessioni utente o dal server, specificato nelle impostazioni della modalità. La tabella seguente descrive le impostazioni di questo plugin:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
add_field | {} | Come nel plugin file, viene utilizzato per aggiungere un campo nell'evento di input |
codec | "Semplice" | Viene utilizzato per decodificare gli eventi di input da Windows; prima di entrare nella pipeline Logstash |
enable_metric | vero | Viene utilizzato per abilitare o disabilitare il reporting e la raccolta di metriche per quell'istanza di plug-in |
ospite | "0.0.0.0" | L'indirizzo del sistema operativo del server da cui dipende il client |
id | Contiene la chiave utente dell'app Twitter | |
modalità | "server" | Viene utilizzato per specificare che la sorgente di input è server o client. |
porta | Definisce il numero di porta | |
ssl_cert | Viene utilizzato per specificare il percorso del certificato SSL | |
ssl_enable | falso | Abilita o disabilita SSL |
ssl_key | Per specificare il percorso del file di chiavi SSL | |
tag | Per aggiungere ulteriori informazioni negli eventi di input | |
genere | Viene utilizzato per classificare l'input da un plug-in specifico per un determinato tipo, in modo che sia facile cercare tutti gli eventi di input nelle fasi successive |
Logstash - Plugin di output
Logstash supporta varie origini di output e in diverse tecnologie come database, file, e-mail, output standard, ecc.
La sintassi per l'utilizzo del plug-in di output è la seguente:
output {
Plugin name {
Setting 1……
Setting 2……..
}
}
È possibile scaricare il plug-in di output utilizzando il seguente comando:
>logstash-plugin install logstash-output-<plugin name>
Il Logstash-plugin utilityè presente nella cartella bin della directory di installazione di Logstash. La tabella seguente descrive i plugin di output offerti da Logstash.
Sr.No. | Nome e descrizione del plugin |
---|---|
1 | CloudWatch Questo plug-in viene utilizzato per inviare dati metrici aggregati a CloudWatch dei servizi Web di Amazon. |
2 | csv Viene utilizzato per scrivere gli eventi di output in modo separato da virgole. |
3 | Elasticsearch Viene utilizzato per memorizzare i log di output nell'indice Elasticsearch. |
4 | Viene utilizzato per inviare un'e-mail di notifica, quando viene generato l'output. L'utente può aggiungere informazioni sull'output nell'email. |
5 | exec Viene utilizzato per eseguire un comando, che corrisponde all'evento di output. |
6 | ganglia Scrive le metriche a gmond of Gangila. |
7 | gelf Viene utilizzato per produrre output per Graylog2 in formato GELF. |
8 | google_bigquery Invia gli eventi a Google BigQuery. |
9 | google_cloud_storage Memorizza gli eventi di output su Google Cloud Storage. |
10 | graphite Viene utilizzato per memorizzare gli eventi di output in Graphite. |
11 | graphtastic Viene utilizzato per scrivere le metriche di output su Windows. |
12 | hipchat Viene utilizzato per memorizzare gli eventi del registro di output su HipChat. |
13 | http Viene utilizzato per inviare gli eventi del registro di output agli endpoint http o https. |
14 | influxdb Viene utilizzato per memorizzare l'evento di output in InfluxDB. |
15 | irc Viene utilizzato per scrivere gli eventi di output su irc. |
16 | mongodb Memorizza i dati di output in MongoDB. |
17 | nagios Viene utilizzato per notificare a Nagios i risultati del controllo passivo. |
18 | nagios_nsca Viene utilizzato per notificare a Nagios i risultati del controllo passivo tramite il protocollo NSCA. |
19 | opentsdb Memorizza gli eventi di output di Logstash in OpenTSDB. |
20 | pipe Trasmette gli eventi di output allo standard input di un altro programma. |
21 | rackspace Viene utilizzato per inviare gli eventi del registro di output al servizio di accodamento di Rackspace Cloud. |
22 | redis Utilizza il comando rpush per inviare i dati di registrazione dell'output alla coda Redis. |
23 | riak Viene utilizzato per memorizzare gli eventi di output nella coppia chiave / valore distribuita Riak. |
24 | s3 Memorizza i dati di registrazione dell'output su Amazon Simple Storage Service. |
25 | sns Viene utilizzato per inviare gli eventi di output al Simple Notification Service di Amazon. |
26 | solr_http Indicizza e memorizza i dati di registrazione in uscita in Solr. |
27 | sps Viene utilizzato per inviare gli eventi a Simple Queue Service di AWS. |
28 | statsd Viene utilizzato per inviare i dati delle metriche al demone di rete di statsd. |
29 | stdout Viene utilizzato per mostrare gli eventi di output sull'output standard della CLI come il prompt dei comandi. |
30 | syslog Viene utilizzato per inviare gli eventi di output al server syslog. |
31 | tcp Viene utilizzato per inviare gli eventi di output al socket TCP. |
32 | udp Viene utilizzato per inviare gli eventi di output su UDP. |
33 | websocket Viene utilizzato per eseguire il push degli eventi di output sul protocollo WebSocket. |
34 | xmpp Viene utilizzato per eseguire il push degli eventi di output sul protocollo XMPP. |
Tutti i plugin hanno le loro impostazioni specifiche, che aiutano a specificare i campi importanti come Porta, Percorso, ecc. In un plugin. Discuteremo le impostazioni di alcuni dei plugin di output.
Elasticsearch
Il plug-in di output di Elasticsearch consente a Logstash di memorizzare l'output nei cluster specifici del motore di Elasticsearch. Questa è una delle famose scelte degli utenti perché è inclusa nel pacchetto di ELK Stack e quindi fornisce soluzioni end-to-end per Devops. La tabella seguente descrive le impostazioni di questo plugin di output.
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
azione | indice | Viene utilizzato per definire l'azione eseguita nel motore Elasticsearch. Altri valori per queste impostazioni sono Elimina, Crea, Aggiorna, ecc. |
cacert | Contiene il percorso del file con .cer o .pem per la convalida del certificato del server. | |
codec | "Semplice" | Viene utilizzato per codificare i dati di registrazione in uscita prima di inviarli all'origine di destinazione. |
doc_as_upset | falso | Questa impostazione viene utilizzata in caso di azione di aggiornamento. Crea un documento nel motore di Elasticsearch, se l'ID del documento non è specificato nel plug-in di output. |
tipo di documento | Viene utilizzato per memorizzare lo stesso tipo di eventi nello stesso tipo di documento. Se non è specificato, il tipo di evento viene utilizzato per lo stesso. | |
flush_size | 500 | Viene utilizzato per migliorare le prestazioni del caricamento collettivo in Elasticsearch |
host | ["127.0.0.1"] | È un array di indirizzi di destinazione per i dati di registrazione in uscita |
idle_flush_time | 1 | Definisce il limite di tempo (secondo) tra i due scaricamenti, Logstash forza lo scaricamento dopo il limite di tempo specificato in questa impostazione |
indice | "logstash -% {+ YYYY.MM.dd}" | Viene utilizzato per specificare l'indice del motore Elasticsearch |
manage_temlpate | vero | Viene utilizzato per applicare il modello predefinito in Elasticsearch |
genitore | zero | Viene utilizzato per specificare l'ID del documento principale in Elasticsearch |
parola d'ordine | Viene utilizzato per autenticare la richiesta in un cluster protetto in Elasticsearch | |
sentiero | Viene utilizzato per specificare il percorso HTTP di Elasticsearch. | |
tubatura | zero | Viene utilizzato per impostare la pipeline di acquisizione, che l'utente desidera eseguire per un evento |
proxy | Viene utilizzato per specificare il proxy HTTP | |
retry_initial_interval | 2 | Viene utilizzato per impostare l'intervallo di tempo iniziale (secondi) tra i tentativi di massa. Ottiene il doppio dopo ogni tentativo fino a raggiungere retry_max_interval |
retry_max_interval | 64 | Viene utilizzato per impostare l'intervallo di tempo massimo per retry_initial_interval |
retry_on_conflict | 1 | È il numero di tentativi effettuati da Elasticsearch per aggiornare un documento |
ssl | Per abilitare o disabilitare SSL / TLS protetto su Elasticsearch | |
modello | Contiene il percorso del template personalizzato in Elasticsearch | |
Nome modello | "logstash" | Viene utilizzato per denominare il modello in Elasticsearch |
tempo scaduto | 60 | È il timeout per le richieste di rete a Elasticsearch |
upsert | "" | Aggiorna il documento o, se document_id non esiste, crea un nuovo documento in Elasticsearch |
utente | Contiene l'utente per autenticare la richiesta Logstash nel cluster Elasticsearch protetto |
Il plug-in di output della posta elettronica viene utilizzato per notificare all'utente quando Logstash genera l'output. La tabella seguente descrive le impostazioni per questo plugin.
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
indirizzo | "Localhost" | È l'indirizzo del server di posta |
allegati | [] | Contiene i nomi e le posizioni dei file allegati |
corpo | "" | Contiene il corpo dell'email e dovrebbe essere testo normale |
cc | Contiene gli indirizzi di posta elettronica separati da virgole per il cc di posta elettronica | |
codec | "Semplice" | Viene utilizzato per codificare i dati di registrazione in uscita prima di inviarli all'origine di destinazione. |
tipo di contenuto | "text / html; charset = UTF-8" | Viene utilizzato per il tipo di contenuto dell'email |
debug | falso | Viene utilizzato per eseguire l'inoltro della posta in modalità debug |
dominio | "localhost" | Viene utilizzato per impostare il dominio per inviare i messaggi di posta elettronica |
a partire dal | "[email protected]" | Viene utilizzato per specificare l'indirizzo e-mail del mittente |
htmlbody | "" | Viene utilizzato per specificare il corpo dell'email in formato html |
parola d'ordine | Viene utilizzato per autenticarsi con il server di posta | |
porta | 25 | Viene utilizzato per definire la porta per comunicare con il server di posta |
rispondi a | Viene utilizzato per specificare l'ID e-mail per il campo di risposta dell'e-mail | |
soggetto | "" | Contiene la riga dell'oggetto dell'email |
use_tls | falso | Abilita o disabilita TSL per la comunicazione con il server di posta |
nome utente | Contiene il nome utente per l'autenticazione con il server | |
attraverso | "Smtp" | Definisce i metodi di invio di e-mail tramite Logstash |
Http
Questa impostazione viene utilizzata per inviare gli eventi di output su http alla destinazione. Questo plugin ha le seguenti impostazioni:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
automatic_retries | 1 | Viene utilizzato per impostare il numero di tentativi di richiesta http tramite logstash |
cacert | Contiene il percorso del file per la convalida del certificato del server | |
codec | "Semplice" | Viene utilizzato per codificare i dati di registrazione in uscita prima di inviarli all'origine di destinazione. |
tipo di contenuto | Specifica il tipo di contenuto della richiesta http al server di destinazione | |
biscotti | vero | Viene utilizzato per abilitare o disabilitare i cookie |
formato | "json" | Viene utilizzato per impostare il formato del corpo della richiesta http |
intestazioni | Contiene le informazioni dell'intestazione http | |
http_method | "" | Viene utilizzato per specificare il metodo http utilizzato nella richiesta da logstash e i valori possono essere "put", "post", "patch", "delete", "get", "head" |
request_timeout | 60 | Viene utilizzato per autenticarsi con il server di posta |
url | È un'impostazione richiesta per questo plug-in per specificare l'endpoint http o https |
stdout
Il plugin di output stdout viene utilizzato per scrivere gli eventi di output sull'output standard dell'interfaccia della riga di comando. È il prompt dei comandi in Windows e il terminale in UNIX. Questo plugin ha le seguenti impostazioni:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
codec | "Semplice" | Viene utilizzato per codificare i dati di registrazione in uscita prima di inviarli all'origine di destinazione. |
lavoratori | 1 | Viene utilizzato per specificare il numero di worker per l'output |
statsd
È un demone di rete utilizzato per inviare i dati delle matrici su UDP ai servizi di backend di destinazione. È il prompt dei comandi in Windows e il terminale in UNIX. Questo plugin ha le seguenti impostazioni:
Nome dell'impostazione | Valore predefinito | Descrizione |
---|---|---|
codec | "Semplice" | Viene utilizzato per codificare i dati di registrazione in uscita prima di inviarli all'origine di destinazione. |
contare | {} | Viene utilizzato per definire il conteggio da utilizzare nelle metriche |
decremento | [] | Viene utilizzato per specificare i nomi delle metriche di decremento |
ospite | "Localhost" | Contiene l'indirizzo del server di statsd |
incremento | [] | Viene utilizzato per specificare i nomi delle metriche di incremento |
porta | 8125 | Contiene il port del server statsd |
frequenza di campionamento | 1 | Viene utilizzato per specificare la frequenza di campionamento della metrica |
mittente | "%{ospite}" | Specifica il nome del mittente |
impostato | {} | Viene utilizzato per specificare una metrica impostata |
tempismo | {} | Viene utilizzato per specificare una metrica di temporizzazione |
lavoratori | 1 | Viene utilizzato per specificare il numero di worker per l'output |
Plugin di filtro
Logstash supporta vari plugin di filtri per analizzare e trasformare i log di input in un formato più strutturato e facile da interrogare.
La sintassi per l'utilizzo del plug-in del filtro è la seguente:
filter {
Plugin name {
Setting 1……
Setting 2……..
}
}
Puoi scaricare il plugin del filtro utilizzando il seguente comando:
>logstash-plugin install logstash-filter-<plugin name>
L'utilità del plug-in Logstash è presente nella cartella bin della directory di installazione di Logstash. La tabella seguente descrive i plugin di output offerti da Logstash.
Sr.No. | Nome e descrizione del plugin |
---|---|
1 | aggregate Questo plugin raccoglie o aggrega i dati da vari eventi dello stesso tipo e li elabora nell'evento finale |
2 | alter Consente all'utente di modificare il campo degli eventi di registro, che il filtro di mutazioni non gestisce |
3 | anonymize Viene utilizzato per sostituire i valori dei campi con un hash coerente |
4 | cipher Viene utilizzato per crittografare gli eventi di output prima di archiviarli nell'origine di destinazione |
5 | clone Viene utilizzato per creare duplicati degli eventi di output in Logstash |
6 | collate Unisce gli eventi di diversi registri in base al loro tempo o conteggio |
7 | csv Questo plugin analizza i dati dai log di input in base al separatore |
8 | date Analizza le date dai campi nell'evento e le imposta come timestamp per l'evento |
9 | dissect Questo plugin aiuta l'utente a estrarre i campi da dati non strutturati e rende facile per il filtro grok analizzarli correttamente |
10 | drop Viene utilizzato per eliminare tutti gli eventi dello stesso tipo o qualsiasi altra somiglianza |
11 | elapsed Viene utilizzato per calcolare il tempo tra gli eventi di inizio e di fine |
12 | Elasticsearch Viene utilizzato per copiare i campi degli eventi di log precedenti presenti in Elasticsearch in quello corrente in Logstash |
13 | extractnumbers Viene utilizzato per estrarre il numero dalle stringhe negli eventi del registro |
14 | geoip Aggiunge un campo nell'evento, che contiene la latitudine e la longitudine della posizione dell'IP presente nel registro dell'evento |
15 | grok È il plug-in di filtro comunemente utilizzato per analizzare l'evento per ottenere i campi |
16 | i18n Elimina i caratteri speciali da un evento archiviato nel registro |
17 | json Viene utilizzato per creare un oggetto Json strutturato in un evento o in un campo specifico di un evento |
18 | kv Questo plugin è utile per confrontare coppie di valori chiave nei dati di registrazione |
19 | metrics Viene utilizzato per aggregare metriche come il conteggio della durata del tempo in ogni evento |
20 | multiline È anche uno dei plugin di filtro di uso comune, che aiuta l'utente in caso di conversione di dati di registrazione multilinea in un singolo evento. |
21 | mutate Questo plugin viene utilizzato per rinominare, rimuovere, sostituire e modificare i campi nei tuoi eventi |
22 | range Utilizzato per controllare i valori numerici dei campi negli eventi rispetto a un intervallo previsto e la lunghezza della stringa all'interno di un intervallo. |
23 | ruby Viene utilizzato per eseguire codice Ruby arbitrario |
24 | sleep In questo modo Logstash rimane inattivo per un periodo di tempo specificato |
25 | split Viene utilizzato per dividere un campo di un evento e inserire tutti i valori di divisione nei cloni di quell'evento |
26 | xml Viene utilizzato per creare eventi parando i dati XML presenti nei log |
Plugin codec
I plugin del codec possono essere una parte dei plugin di input o output. Questi plugin vengono utilizzati per modificare o formattare la presentazione dei dati di registrazione. Logstash offre più plug-in di codec e quelli sono i seguenti:
Sr.No. | Nome e descrizione del plugin |
---|---|
1 | avro Questo plugin codifica serializzare eventi Logstash in datum avro o decodificare record avro in eventi Logstash |
2 | cloudfront Questo plug-in legge i dati codificati dal cloudfront AWS |
3 | cloudtrail Questo plugin viene utilizzato per leggere i dati da AWS cloudtrail |
4 | collectd Questo legge i dati dal protocollo binario chiamato raccolti su UDP |
5 | compress_spooler Viene utilizzato per comprimere gli eventi di registro in Logstash in batch di spool |
6 | dots Viene utilizzato il monitoraggio delle prestazioni impostando un punto per ogni evento su stdout |
7 | es_bulk Viene utilizzato per convertire i dati di massa da Elasticsearch in eventi Logstash, inclusi i metadati di Elasticsearch |
8 | graphite Questo codec legge i dati dalla grafite in eventi e modifica l'evento in record formattati in grafite |
9 | gzip_lines Questo plugin viene utilizzato per gestire i dati codificati in gzip |
10 | json Viene utilizzato per convertire un singolo elemento nell'array Json in un singolo evento Logstash |
11 | json_lines Viene utilizzato per gestire i dati Json con delimitatore di nuova riga |
12 | line Il plugin leggerà e scriverà eventi in un unico live, il che significa che dopo il delimitatore di nuova riga ci sarà un nuovo evento |
13 | multiline Viene utilizzato per convertire i dati di registrazione multilinea in un singolo evento |
14 | netflow Questo plugin viene utilizzato per convertire i dati di nertflow v5 / v9 in eventi di logstash |
15 | nmap Analizza i dati dei risultati di nmap in un formato XML |
16 | plain Questo legge il testo senza delimitatori |
17 | rubydebug Questo plugin scriverà gli eventi Logstash di output usando la fantastica libreria di stampa di Ruby |
Crea il tuo plugin
Puoi anche creare i tuoi plugin in Logstash, che soddisfano le tue esigenze. L'utilità del plug-in Logstash viene utilizzata per creare plug-in personalizzati. Qui creeremo un plugin di filtro, che aggiungerà un messaggio personalizzato negli eventi.
Genera la struttura di base
Un utente può generare i file necessari utilizzando l'opzione di generazione dell'utilità logstash-plugin oppure è disponibile anche su GitHub.
>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib
Qui, typeviene utilizzata per specificare che il plug-in è Input, Output o Filter. In questo esempio, stiamo creando un plugin di filtro denominatomyfilter. L'opzione percorso viene utilizzata per specificare il percorso in cui si desidera creare la directory del plug-in. Dopo aver eseguito il comando sopra menzionato, vedrai che viene creata una struttura di directory.
Sviluppa il plugin
Puoi trovare il file di codice del plugin nel file \lib\logstash\filterscartella nella directory dei plugin. L'estensione del file sarà.rb.
Nel nostro caso, il file di codice si trovava nel seguente percorso:
C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb
Modifichiamo il messaggio in - predefinito ⇒ "Ciao, lo stai imparando su tutorialspoint.com" e salviamo il file.
Installa il plugin
Per installare questo plugin, è necessario modificare il Gemfile di Logstash. È possibile trovare questo file nella directory di installazione di Logstash. Nel nostro caso, sarà inC:\tpwork\logstash. Modifica questo file utilizzando qualsiasi editor di testo e aggiungi il seguente testo al suo interno.
gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"
Nel comando precedente, specifichiamo il nome del plugin insieme a dove possiamo trovarlo per l'installazione. Quindi, esegui l'utilità del plugin Logstash per installare questo plugin.
>logstash-plugin install --no-verify
Test
Qui stiamo aggiungendo myfilter in uno degli esempi precedenti -
logstash.conf
Questo file di configurazione Logstash contiene myfilter nella sezione dei filtri dopo il plug-in del filtro grok.
input {
file {
path => "C:/tpwork/logstash/bin/log/input1.log"
}
}
filter {
grok {
match => [
"message", "%{LOGLEVEL:loglevel} - %{NOTSPACE:taskid} -
%{NOTSPACE:logger} - %{WORD:label}( - %{INT:duration:int})?" ]
}
myfilter{}
}
output {
file {
path => "C:/tpwork/logstash/bin/log/output1.log"
codec => rubydebug
}
}
Run logstash
Possiamo eseguire Logstash utilizzando il seguente comando.
>logstash –f logsatsh.conf
input.log
Il blocco di codice seguente mostra i dati del registro di input.
INFO - 48566 - TRANSACTION_START - start
output.log
Il blocco di codice seguente mostra i dati del registro di output.
{
"path" => "C:/tpwork/logstash/bin/log/input.log",
"@timestamp" => 2017-01-07T06:25:25.484Z,
"loglevel" => "INFO",
"logger" => "TRANSACTION_END",
"@version" => "1",
"host" => "Dell-PC",
"label" => "end",
"message" => "Hi, You are learning this on tutorialspoint.com",
"taskid" => "48566",
"tags" => []
}
Pubblicalo su Logstash
Uno sviluppatore può anche pubblicare il suo plug-in personalizzato su Logstash caricandolo su GitHub e seguendo i passaggi standardizzati definiti da Elasticsearch Company.
Fare riferimento al seguente URL per ulteriori informazioni sulla pubblicazione:
https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html