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, Filter y Output.
  • 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:

Orden de procesamiento de Fluent Bit de las secciones
Orden de procesamiento de Fluent Bit de 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:

Servicio de kyes
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:

Teclas de entrada
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 /var/log/containers/*.log. Si desea recopilar registros de todos los subdirectorios de /var/log, debe añadir /var/log/**/*.log al parámetro Path.

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:

Teclas de filtro
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:

Teclas 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:

Mandatos soportados
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 @INCLUDE en el nivel superior izquierdo de la línea de configuración.
  • No puedes incluir el comando @INCLUDE dentro 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 @SET en el nivel raíz de cada línea.
  • No puedes utilizar el comando @SET dentro 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}