Configuración del agente para establecer valores personalizados para los campos de metadatos applicationName y subsystemName

Puede configurar el Agente de registro para que envíe registros al servicio IBM Cloud Logs.

Los registros que envíe deben incluir un valor para los campos de metadatos applicationName y subsystemName.

Por defecto, cuando se configura el Agente de registro, el agente establece valores por defecto para estos campos. Puede configurar sus propios valores personalizados para sustituir los valores por defecto. Para obtener más información sobre los valores predeterminados, consulte Campos de metadatos.

En IBM Cloud Logs, puede utilizar los campos de metadatos applicationName y subsystemName para configurar cualquiera de las siguientes funciones:

  • Políticas de CTP
  • Reglas de análisis sintáctico
  • Informes de uso de datos
  • Alertas
  • Vistas
  • Paneles de control
  • Eventos a métricas
  • Loggregación

Para obtener información sobre IBM Cloud Logs, consulte la IBM Cloud Logs documentación.

Configuración del agente para establecer valores personalizados

Puede configurar el Agente de registro con valores personalizados para los campos de metadatos applicationName y subsystemName especificando las opciones de la API.

  • Utilice -a para especificar el applicationName que desea utilizar.

    Por defecto, el applicationName se asigna por defecto al nombre del espacio de nombres kubernetes.namespace_name en el clúster Red Hat OpenShift on IBM Cloud o IBM Cloud Kubernetes Service.

    También puede utilizar variables del entorno para establecer valores personalizados, por ejemplo '${POD_NAMESPACE}'.

  • Utilice -s para especificar el susbsystemName que desea utilizar.

    Por defecto, el subsystemName toma el nombre del contenedor kubernetes.container_name en los clústeres Red Hat OpenShift on IBM Cloud o IBM Cloud Kubernetes Service.

    También puede utilizar variables del entorno, por ejemplo '${POD_NAME}'.

Al configurar estos campos de metadatos, dispone de las siguientes opciones:

  • Puede establecer el valor en una cadena fija. Por ejemplo, puede utilizar -s 'production'.
  • Puede utilizar variables del entorno, por ejemplo -a '${POD_NAMESPACE}'.
  • Puede combinar una cadena fija con variables del entorno, por ejemplo -a 'mycluster:${POD_NAME}'.

Puede establecer applicatioName, subsystemName, o ambos. Si no se establece un valor, se aplica el valor por defecto. Para obtener información sobre los valores predeterminados que se establecen para los campos de metadatos applicationName y subsystemName, consulte Metadatos.

Ejemplo: Configuración de valores dinámicos

Para configurar el Agente de registro con valores dinámicos personalizados para los campos de metadatos applicationName y subsystemName, puede desplegar el agente del siguiente modo en un clúster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s '${POD_NAME}' -a '${POD_NAMESPACE}'

Ejemplo: Configuración de un valor que combina un valor fijo y un valor dinámico

Para configurar el Agente de registro con valores personalizados para los campos de metadatos applicationName y subsystemName, puede desplegar el agente del siguiente modo en un clúster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s '${POD_NAME}' -a 'mycluster-dallas:${POD_NAMESPACE}'

En este ejemplo, el nombre del cluster se añade como una cadena.

Ejemplo: Configuración de valores fijos

Para configurar el Agente de registro con valores fijos personalizados para los campos de metadatos applicationName y subsystemName, puede desplegar el agente del siguiente modo en un clúster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s 'mysubsystem' -a 'myapp'

Configuración del agente para establecer valores personalizados basados en la línea de registro

Puede añadir dinámicamente valores para la aplicación y el nombre del subsistema en función de la línea de registro.

El siguiente ejemplo muestra cómo configurar un agente para un clúster Kubernetes que añade un nombre de aplicación personalizado para un mensaje con formato JSON:

  1. Añade applicationName a la línea de registro.

    Por ejemplo, su línea de registro tiene el siguiente aspecto: {"level":"info", "msg":"Test message", "applicationName":"my-application"}

  2. Añade el plugin JSON PARSER al archivo logger-agent-iks.yaml para convertir un JSON de stingify en un objeto JSON. Para más información, véase JSON.

    [PARSER]
        # Converts the original log source from a JSON map string to the internal binary representation.
        Name   json
        Format json
        # Time_Key: Set the time in your log entry to the log record time included with the log. If not set, Fluenti Bit uses its own time.
        Time_Key time
        Time_Format %d/%b/%Y:%H:%M:%S %z
        # Time_Keep: To keep all fields in the original log record
        Time_Keep On
    
  3. Añade el plugin PARSER al archivo logger-agent-iks.yaml para extraer campos de los registros. Para obtener más información, consulte Parser.

    Por defecto, el plugin parser sólo mantiene los campos parseados en su salida.

    [FILTER]
       # Name: Specify the name of the parser
       Name parser
       # Match: A pattern that is used to match against the tags that are defined on incoming records.
       Match *
       # Key_Name: Specify the field name in the log to be parsed.
       Key_Name message
       # Parser: Specify the parser name to interpret the field.
       Parser json
       # Reserve_Data: Set to keep all the fields
       Reserve_Data On
       # preserve_key: Set to keep the original key field.
       Preserve_Key On
    
  4. Extraiga el nombre de la aplicación utilizando el complemento de filtro Nest

    El complemento Filtro anidado permite operar sobre o con datos anidados. Sus modos de funcionamiento son: nest donde toma un conjunto de registros y los coloca en un mapa, y lift donde toma un mapa por clave y levanta sus registros. Para más información, véase Nido.

    applicationName debe estar en el nivel superior, por lo tanto, debe utilizar la operación lift.

    [FILTRO] Nido de nombres Coincidencia * Operación ascensor Mensaje anidado_bajo Comodín applicationName

Con esto en su lugar, el "applicationName" para el ejemplo de línea de registro anterior sería "mi-aplicación" para esa línea en particular.