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
-apara especificar elapplicationNameque desea utilizar.Por defecto, el
applicationNamese asigna por defecto al nombre del espacio de nombreskubernetes.namespace_nameen 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
-spara especificar elsusbsystemNameque desea utilizar.Por defecto, el
subsystemNametoma el nombre del contenedorkubernetes.container_nameen 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:
-
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"} -
Añade el plugin JSON PARSER al archivo
logger-agent-iks.yamlpara 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 -
Añade el plugin PARSER al archivo
logger-agent-iks.yamlpara 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 -
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:
nestdonde toma un conjunto de registros y los coloca en un mapa, yliftdonde 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.