Conoscere il file di configurazione dell'agente
L'Agent di registrazione utilizza un file di configurazione basato su Fluent Bit per determinare come vengono elaborati i dati in arrivo prima di essere instradati.
Quando si configura il file di configurazione dell'agente, tenere conto delle seguenti informazioni:
- Lo schema è suddiviso in più sezioni.
- È possibile utilizzare i comandi di Fluent Bit per semplificare il file di configurazione e renderlo più leggibile.
- È possibile esporre le variabili di configurazione impostando le variabili d'ambiente della shell o utilizzando il comando @SET.
Sezioni
Lo schema di una configurazione di Fluent Bit è suddiviso in più sezioni.
- Una sezione è definita da un nome all'interno di parentesi.
- È possibile configurare quattro tipi di sezioni:
Service,Input,FiltereOutput. - Una sezione può contenere 1 o più voci.
- Una voce è definita da una riga di testo che contiene una chiave e un valore. La chiave deve essere rientrata e deve contenere un valore che termina con la linea di interruzione. Considerate di utilizzare un rientro di quattro spazi.
Il diagramma seguente mostra l'ordine di applicazione delle sezioni:
Sezione SERVIZIO
È possibile configurare la sezione SERVICE per definire le proprietà globali del servizio.
La tabella seguente elenca alcune chiavi che si possono definire in una sezione SERVICE:
| Chiave | Descrizione | Valore predefinito |
|---|---|---|
flush |
Imposta il tempo in seconds.nanoseconds per il lavaggio dei record ingeriti dai plug-in di input attraverso i plug-in di output. | 5 |
log_file |
Il percorso assoluto per gli altri file di log. | Per impostazione predefinita, i registri vengono reindirizzati all'interfaccia di errore standard (stderr). |
log_level |
Imposta il livello di verbosità del log. I valori validi sono: off, error, warn, info, debug e trace. Si noti che i valori sono cumulativi. Ad esempio, se
viene impostato debug, verranno inclusi error, warning, info e debug. |
info |
parsers_file |
Percorso del file di configurazione di un parser. All'interno di una sezione è possibile definire più voci Parsers_File. |
Per ulteriori informazioni sulle chiavi aggiuntive supportate, vedere Proprietà della sezione del servizio.
Ad esempio, un esempio di sezione SERVICE può essere il seguente:
[SERVICE]
Flush 1
Log_Level info
Daemon off
Parsers_File parsers.conf
plug-ins_File plug-ins.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 8081
Health_Check On
HC_Errors_Count 1
HC_Retry_Failure_Count 1
HC_Period 30
storage.path /fluent-bit/cache
storage.max_chunks_up 192
storage.metrics On
Sezione INPUT
È possibile configurare le sezioni INPUT per definire le fonti da cui Fluent Bit può raccogliere i dati.
La tabella seguente illustra i tasti che è possibile configurare per una sezione INPUT:
| Chiave | Descrizione | Condizione |
|---|---|---|
Name |
Nome del plug-in di ingresso. Determina quale plug-in di input deve essere caricato da Fluent Bit. | Obbligatorio |
Tag |
Tag associato a tutti i record provenienti da questo plug-in. | Richiesto per tutti i plug-in, ad eccezione del plug-in input forward che fornisce tag dinamici. |
Log_Level |
Imposta il livello di verbosità del log. I valori validi sono: off, error, warn, info, debug e trace. Si noti che i valori sono cumulativi. Ad esempio, se
viene impostato debug, verranno inclusi error, warning, info e debug. Se non è impostato, il valore è quello predefinito della sezione SERVICE Log_Level. |
Facoltativo |
Path |
Imposta la posizione in cui vengono letti i registri.
Per i log di Kubernetes, per impostazione predefinita l'applicazione IBM Cloud Logs Agent di registrazione raccoglie i log solo dalla directory |
Facoltativo |
Per ulteriori informazioni sui plug-in INPUT, vedere Play-in di ingresso.
Ogni INPUT plug-in ha le proprie chiavi di configurazione, oltre a quelle indicate nella tabella.
Ad esempio, un esempio di sezione INPUT potrebbe essere il seguente:
[INPUT]
# Comment
Name tail
Tag kube.*
log_level info
Sezione FILTRO
È possibile configurare le sezioni FILTER per trasformare i dati relativi a un plug-in FILTER prima di inviarli alla destinazione.
La tabella seguente illustra i tasti che è possibile configurare per una sezione FILTER:
| Chiave | Descrizione | Condizione |
|---|---|---|
Name |
Nome del plug-in del filtro. Determina quale plug-in di filtro deve essere caricato da Fluent Bit. | Obbligatorio |
Match |
Uno schema utilizzato per confrontare i tag definiti nei record in arrivo. Match è sensibile alle maiuscole e alle minuscole. È possibile utilizzare il carattere asterisco * come carattere jolly. |
Obbligatorio [*] |
Match_Regex |
Un'espressione regolare utilizzata per confrontare i tag definiti nei record in arrivo. Usare questa opzione per utilizzare la sintassi completa della regex. | Obbligatorio [*] |
Log_Level |
Imposta il livello di verbosità del log. I valori validi sono: off, error, warn, info, debug e trace. Si noti che i valori sono cumulativi. Ad esempio, se
viene impostato debug, verranno inclusi error, warning, info e debug. Se non è impostato, il valore è quello predefinito della sezione SERVICE Log_Level. |
Facoltativo |
[*] È possibile configurare il tasto Match, il tasto Match_Regex o entrambi. È necessario configurarne sempre uno. Se si configurano entrambi, Match_Regex ha la precedenza.
Ad esempio, un esempio di sezione FILTRO può essere il seguente:
[FILTER]
Name kubernetes
Match kube.*
log_level info
Sezione di uscita
È possibile configurare le sezioni OUTPUT per definire le destinazioni in cui Fluent Bit deve inviare i dati dopo una corrispondenza di tag.
Fluent Bit può indirizzare fino a 256 OUTPUT plug-in.
La tabella seguente illustra i tasti che è possibile configurare per una sezione OUTPUT:
| Chiave | Descrizione | Condizione |
|---|---|---|
Name |
Nome del plug-in di uscita. Determina quale plug-in di uscita deve essere caricato da Fluent Bit. | Obbligatorio |
Match |
Uno schema utilizzato per confrontare i tag definiti nei record in arrivo. Match è sensibile alle maiuscole e alle minuscole. È possibile utilizzare il carattere asterisco * come carattere jolly. |
Obbligatorio [*] |
Match_Regex |
Un'espressione regolare utilizzata per confrontare i tag definiti nei record in arrivo. Usare questa opzione per utilizzare la sintassi completa della regex. | Obbligatorio [*] |
Log_Level |
Imposta il livello di verbosità del log. I valori validi sono: off, error, warn, info, debug e trace. Si noti che i valori sono cumulativi. Ad esempio, se
viene impostato debug, verranno inclusi error, warning, info e debug. Se non è impostato, il valore è quello predefinito della sezione SERVICE Log_Level. |
Facoltativo |
[*] È possibile configurare il tasto Match, il tasto Match_Regex o entrambi. È necessario configurarne sempre uno. Se si configurano entrambi, Match_Regex ha la precedenza.
Ad esempio, la sezione OUTPUT del file logger-icl-output-plugin è simile alla seguente:
[OUTPUT]
Name logger-icl-output-plugin
Id icl-output-plugin
Match *
Retry_Limit 8
# Connection
Target_Host REPLACE_INGESTER_HOST
Target_Port REPLACE_INGESTER_PORT
Target_Path /logs/v1/singles
# Authentication
Authentication_Mode REPLACE_IAM_AUTH_MODE
IAM_Environment REPLACE_IAM_ENVIRONMENT
REPLACE_TRUSTED_PROFILE_ID
CR_Token_Mount_Path /var/run/secrets/tokens/vault-token
# Logging
Logging_Level info
# Buffer storage
storage.total_limit_size 5G
Il logger-icl-output-plugin utilizza il controllo di salute incorporato in Fluent Bit. Il pod è considerato non sano quando il plug-in lancia almeno un errore o quando i limiti di riprova sono esauriti in un periodo di 30 secondi.
Variabili
In Fluent Bit, è possibile utilizzare le variabili d'ambiente per impostare il valore di una chiave definita nel file di configurazione di Fluent Bit.
Le variabili sono sensibili alle maiuscole e alle minuscole.
Utilizzare il seguente formato per rappresentare le variabili:
${MY_VARIABLE}
Per definire una variabile d'ambiente, si può usare la sintassi di bash.
Per definire le variabili d'ambiente, è possibile scegliere una delle seguenti opzioni:
-
Aprite un terminale e impostate le variabili d'ambiente usando il comando export.
Ad esempio, è possibile definirne uno come segue:
$ export MY_VARIABLE=stdout.All'avvio di Fluent Bit, il lettore di configurazione cerca una variabile d'ambiente con il nome
MY_VARIABLE. -
Quando Fluent Bit viene eseguito sotto systemd utilizzando i pacchetti ufficiali, impostare le variabili d'ambiente in uno dei seguenti file:
/etc/default/fluent-bit(sistema basato su Debian) o/etc/sysconfig/fluent-bit(altri sistemi).
Ad esempio, aprire un terminale e impostare la variabile d'ambiente: $ export MY_OUTPUT=stderr Quindi, creare il seguente file di configurazione:
[INPUT]
Name tail
Tag kube.*
[OUTPUT]
Name ${MY_OUTPUT}
Match kube.*
La chiave Name, definita per essere impostata con la variabile d'ambiente ${MY_OUTPUT}, viene impostata su stderr.
Comandi
È possibile utilizzare i comandi di Fluent Bit per semplificare il file di configurazione e renderlo più leggibile.
La tabella seguente illustra i comandi utilizzabili:
| Comando | Descrizione | Esempio |
|---|---|---|
@INCLUDE |
Includere un file di configurazione. | @INCLUDE <FILE> |
@SET |
Impostare una variabile di configurazione. | @SET KEY=VAL |
INCLUDE comando
Per evitare file di configurazione lunghi e complicati, è possibile dividere il file di configurazione principale di Fluent Bit in più file utilizzando il comando @INCLUDE. Il comando @INCLUDE consente di includere
file esterni.
È possibile includere altri file di configurazione aggiungendo voci conformi al seguente formato:
@INCLUDE <FILE>
Considerate le seguenti informazioni quando utilizzate il comando @INCLUDE:
- È possibile utilizzare il comando
@INCLUDEal livello superiore sinistro della riga di configurazione. - Non è possibile includere il comando
@INCLUDEall'interno di una sezione. - È possibile utilizzare il carattere jolly (
*) per includere più file. Ad esempio, è possibile utilizzare:@INCLUDE input_*.conf. - Quando si includono più file utilizzando il carattere jolly (
*), i file che corrispondono al carattere jolly vengono inclusi senza essere ordinati. Se è necessario mantenere l'ordine tra i file, i file devono essere inclusi esplicitamente nell'ordine desiderato. - Tutti i percorsi definiti vengono letti come relativi dal file di configurazione principale.
Ad esempio,
@INCLUDE somefile.conf
SET comando
È possibile utilizzare il comando @SET per iniettare variabili di configurazione nella configurazione di Fluent Bit.
- È possibile utilizzare il comando
@SETa livello di radice di ogni riga. - Non è possibile utilizzare il comando
@SETall'interno di una sezione.
Ad esempio, è possibile impostare le seguenti variabili e utilizzarle per configurare diverse chiavi:
@SET my_input=abc
@SET my_output=def
[SERVICE]
Flush 1
[INPUT]
Name ${my_input}
[OUTPUT]
Name ${my_output}