Comprender el archivo de configuración del agente
Agente de registro utiliza un archivo de configuración basado en Fluent Bit para determinar cómo se procesan los datos entrantes antes de enrutarlos.
Al configurar el archivo de configuración del agente, tenga en cuenta la siguiente información:
- El esquema se divide en varias secciones.
- Puede utilizar comandos de Fluent Bit para simplificar el archivo de configuración y hacerlo más legible.
- Puede exponer variables de configuración configurando variables de entorno de shell o utilizando el comando @SET.
Secciones
El esquema para una configuración de Fluent Bit se divide en varias secciones.
- Una sección se define mediante un nombre entre corchetes.
- Hay cuatro tipos de secciones que puedes configurar:
Service,Input,FilteryOutput. - Una sección puede contener una o más entradas.
- Una entrada se define mediante una línea de texto que contiene una clave y un valor. La clave debe estar sangrada y debe contener un valor que termine en la línea de salto. Considere utilizar una sangría de cuatro espacios.
El siguiente diagrama muestra el orden en que se aplican las secciones:
Sección de SERVICIO
Puede configurar la sección SERVICE para definir propiedades globales del servicio.
La siguiente tabla enumera algunas claves que puedes definir en una sección SERVICE:
| Clave | Descripción | Valor predeterminado |
|---|---|---|
flush |
Establezca el tiempo en seconds.nanoseconds para vaciar los registros que se ingieren mediante los complementos de entrada a través de los complementos de salida. | 5 |
log_file |
La ruta absoluta para otros archivos de registro. | De forma predeterminada, los registros se redirigen a la interfaz de error estándar (stderr). |
log_level |
Establezca el nivel de verbosidad del registro. Los valores válidos son: off, error, warn, info, debug y trace. Tenga en cuenta que los valores son acumulativos.
Por ejemplo, si se establece debug, incluirá error, warning, info y debug. |
info |
parsers_file |
Ruta para el archivo de configuración de un analizador. Se pueden definir varias entradas Parsers_File dentro de una sección. |
Para obtener más información sobre las claves adicionales compatibles, consulte Propiedades de la sección Servicio.
Por ejemplo, un ejemplo de sección SERVICIO podría ser el siguiente:
[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
Sección de ENTRADA
Puede configurar las secciones INPUT para definir las fuentes desde donde Fluent Bit puede recopilar datos.
La siguiente tabla describe las teclas que puedes configurar para una sección INPUT:
| Clave | Descripción | Estado |
|---|---|---|
Name |
Nombre del complemento de entrada. Determina qué complemento de entrada debe cargar Fluent Bit. | Obligatorio |
Tag |
Etiqueta que se asocia a todos los registros que provienen de este complemento. | Obligatorio para todos los complementos excepto el complemento de entrada directa que proporciona etiquetas dinámicas. |
Log_Level |
Establezca el nivel de verbosidad del registro. Los valores válidos son: off, error, warn, info, debug y trace. Tenga en cuenta que los valores son acumulativos.
Por ejemplo, si se establece debug, incluirá error, warning, info y debug. Si no se establece, el valor predeterminado es el valor Log_Level SERVICE. |
Opcional |
Path |
Establece la ubicación donde se leen los registros de los logs.
Para los registros de Kubernetes, de forma predeterminada, IBM Cloud Logs Agente de registro recopila registros solo del directorio |
Opcional |
Para obtener más información sobre los complementos INPUT, consulte Complementos de entrada.
Cada complemento INPUT tiene sus propias claves de configuración además de las que se describen en la tabla.
Por ejemplo, un ejemplo de sección INPUT podría ser el siguiente:
[INPUT]
# Comment
Name tail
Tag kube.*
log_level info
Sección FILTRO
Puede configurar secciones FILTER para transformar los datos relacionados con un complemento FILTER antes de enviarlos a su destino.
La siguiente tabla describe las teclas que puedes configurar para una sección FILTER:
| Clave | Descripción | Estado |
|---|---|---|
Name |
Nombre del complemento de filtro. Determina qué complemento de filtro debe cargar Fluent Bit. | Obligatorio |
Match |
Un patrón que se utiliza para hacer coincidir las etiquetas definidas en los registros entrantes. Match distingue entre mayúsculas y minúsculas. Puede utilizar el carácter asterisco * como comodín. |
Obligatorio [*] |
Match_Regex |
Una expresión regular que se utiliza para hacer coincidir las etiquetas definidas en los registros entrantes. Utilice esta opción para utilizar la sintaxis regex completa. | Obligatorio [*] |
Log_Level |
Establezca el nivel de verbosidad del registro. Los valores válidos son: off, error, warn, info, debug y trace. Tenga en cuenta que los valores son acumulativos.
Por ejemplo, si se establece debug, incluirá error, warning, info y debug. Si no se establece, el valor predeterminado es el valor Log_Level SERVICE. |
Opcional |
[*] Puede configurar la tecla Match, la tecla Match_Regex o ambas. Siempre debes configurar uno. Si configura ambos, Match_Regex tiene prioridad.
Por ejemplo, un ejemplo de sección FILTRO podría ser el siguiente:
[FILTER]
Name kubernetes
Match kube.*
log_level info
Sección SALIDA
Puede configurar las secciones OUTPUT para definir los destinos a los que Fluent Bit debe enviar los datos después de una coincidencia de etiqueta.
Fluent Bit puede enrutar hasta 256 complementos OUTPUT.
La siguiente tabla describe las teclas que puede configurar para una sección de SALIDA:
| Clave | Descripción | Estado |
|---|---|---|
Name |
Nombre del complemento de salida. Determina qué complemento de salida debe cargar Fluent Bit. | Obligatorio |
Match |
Un patrón que se utiliza para hacer coincidir las etiquetas definidas en los registros entrantes. Match distingue entre mayúsculas y minúsculas. Puede utilizar el carácter asterisco * como comodín. |
Obligatorio [*] |
Match_Regex |
Una expresión regular que se utiliza para hacer coincidir las etiquetas definidas en los registros entrantes. Utilice esta opción para utilizar la sintaxis regex completa. | Obligatorio [*] |
Log_Level |
Establezca el nivel de verbosidad del registro. Los valores válidos son: off, error, warn, info, debug y trace. Tenga en cuenta que los valores son acumulativos.
Por ejemplo, si se establece debug, incluirá error, warning, info y debug. Si no se establece, el valor predeterminado es el valor Log_Level SERVICE. |
Opcional |
[*] Puede configurar la tecla Match, la tecla Match_Regex o ambas. Siempre debes configurar uno. Si configura ambos, Match_Regex tiene prioridad.
Por ejemplo, la sección SALIDA del logger-icl-output-plugin es similar a la siguiente:
[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
El logger-icl-output-plugin utiliza el control de estado integrado de Fluent Bit. El pod se considera no saludable cuando el complemento genera al menos un error o cuando los límites de reintentos se agotan en un período de 30
segundos.
Variables
En Fluent Bit, puede utilizar variables de entorno para establecer el valor de una clave definida en el archivo de configuración de Fluent Bit.
Las variables distinguen entre mayúsculas y minúsculas.
Utilice el siguiente formato para representar variables:
${MY_VARIABLE}
Para definir una variable de entorno, puede utilizar la sintaxis bash.
Para definir variables de entorno, puede elegir cualquiera de las siguientes opciones:
-
Abra una terminal y configure las variables de entorno mediante el comando de exportación.
Por ejemplo, puedes definir uno de la siguiente manera:
$ export MY_VARIABLE=stdout.Cuando se inicia Fluent Bit, el lector de configuración buscará una variable de entorno con el nombre
MY_VARIABLE. -
Cuando Fluent Bit se ejecuta bajo systemd utilizando los paquetes oficiales, configure las variables de entorno en cualquiera de los siguientes archivos:
/etc/default/fluent-bit(sistema basado en Debian ) o/etc/sysconfig/fluent-bit(otros sistemas).
Por ejemplo, abra una terminal y configure la variable de entorno: $ export MY_OUTPUT=stderr Luego, cree el siguiente archivo de configuración:
[INPUT]
Name tail
Tag kube.*
[OUTPUT]
Name ${MY_OUTPUT}
Match kube.*
El nombre de clave que se define para establecerse con la variable de entorno ${MY_OUTPUT} se establece en stderr.
Mandatos
Puede utilizar comandos de Fluent Bit para simplificar el archivo de configuración y hacerlo más legible.
La siguiente tabla describe los comandos que puede utilizar:
| Mandato | Descripción | Ejemplo |
|---|---|---|
@INCLUDE |
Incluir un archivo de configuración. | @INCLUDE <FILE> |
@SET |
Establecer una variable de configuración. | @SET KEY=VAL |
Mandato INCLUDE
Para evitar archivos de configuración largos y complicados, puede dividir el archivo de configuración principal de Fluent Bit en varios archivos utilizando el comando @INCLUDE. El comando @INCLUDE le permite incluir
archivos externos.
Puede incluir archivos de configuración adicionales agregando entradas que cumplan con el siguiente formato:
@INCLUDE <FILE>
Tenga en cuenta la siguiente información al utilizar el comando @INCLUDE:
- Puede utilizar el comando
@INCLUDEen el nivel superior izquierdo de la línea de configuración. - No puedes incluir el comando
@INCLUDEdentro de una sección. - Puede utilizar el carácter comodín (
*) para incluir varios archivos. Por ejemplo, puedes utilizar:@INCLUDE input_*.conf. - Cuando se incluyen varios archivos utilizando el comodín (
*), los archivos que coinciden con el carácter comodín se incluyen sin ordenar. Si necesita preservar el orden entre archivos, estos deben incluirse explícitamente en el orden deseado. - Todas las rutas que defina se leen como relativas desde el archivo de configuración raíz.
Por ejemplo:
@INCLUDE somefile.conf
Mandato SET
Puede utilizar el comando @SET para inyectar variables de configuración en la configuración de Fluent Bit.
- Puede utilizar el comando
@SETen el nivel raíz de cada línea. - No puedes utilizar el comando
@SETdentro de una sección.
Por ejemplo, puede configurar las siguientes variables y usarlas para configurar diferentes claves:
@SET my_input=abc
@SET my_output=def
[SERVICE]
Flush 1
[INPUT]
Name ${my_input}
[OUTPUT]
Name ${my_output}