Todos los productos
Search
Centro de documentos

Serverless App Engine:Configurar la recolección de registros en ApsaraMQ for Kafka

Última actualización: Sep 05, 2026

SAE puede recopilar la salida estándar (stdout) y los registros de archivos de las instancias de aplicación para enviarlos a temas de ApsaraMQ for Kafka. Esta función complementa la capacidad de recolección de registros de Simple Log Service (SLS) y resulta especialmente útil cuando no es posible enviar registros a proyectos de SLS o cuando los usuarios de RAM no tienen permiso para consultar registros en SLS. Desde Kafka, puede enrutar los datos de registro a sistemas posteriores como Elasticsearch para su análisis y almacenamiento a largo plazo.

Requisitos previos

Antes de empezar, asegúrese de cumplir con lo siguiente:

Requisitos de SAE:

  • Cada instancia de aplicación debe contar con al menos 0.25 Core de CPU y 250 MB de recursos disponibles.

Requisitos de ApsaraMQ for Kafka:

  • ApsaraMQ for Kafka is activated and a topic is created. SAE es compatible con ApsaraMQ for Kafka 2.X o versiones posteriores.

  • Si su instancia de Kafka está desplegada en una virtual private cloud (VPC) sin acceso a Internet, dicha instancia debe residir en la misma VPC que su aplicación de SAE.

  • Una IP address whitelist is configured para su instancia de Kafka:

    • Si la instancia de Kafka y la aplicación de SAE se encuentran en la misma VPC pero en diferentes vSwitches, agregue el bloque CIDR del vSwitch de la aplicación de SAE a la lista de permitidos de Kafka.

    • Para permitir todo el tráfico dentro de la VPC, agregue 0.0.0.0/0 a la lista de permitidos.

Para conocer los límites de uso y los detalles de facturación de Kafka, consulte Limits y Billing overview.

Configurar la recolección de registros al crear una aplicación

  1. Inicie sesión en la consola de SAE. En el panel de navegación izquierdo, vaya a Applications > Applications. Seleccione una región y un namespace en la lista desplegable Namespace y haga clic en Create Application.

  2. En la sección Basic Information, configure la información de la aplicación y haga clic en Next: Advanced Settings.

  3. Expanda la sección Log Settings y active Activate Kafka. Configure los siguientes parámetros:

    ParámetroObligatorioDescripción
    Kafka InstanceSíLa instancia de destino de ApsaraMQ for Kafka.
    Collection Log TypeSíEl tipo de registros que se van a recopilar. File Logs (Log Path In Container) admite varias reglas de recolección. Container Standard Output Logs solo admite una regla de recolección y está disponible únicamente cuando su vSwitch se encuentra en una zona recomendada.
    Log SourceSí (solo registros de archivo)La ruta completa al archivo de registro dentro del contenedor, por ejemplo /tmp0/cjsc.log. Se admiten expresiones regulares. Para coincidir con varios archivos del mismo formato, utilice una ruta con comodines como /xxx/xxx/xxx/*.log.
    Importante

    No almacene otros archivos importantes en el directorio de origen de los registros, ya que los archivos de dicho directorio podrían sobrescribirse.

    Kafka Topic NameSíEl tema existente de ApsaraMQ for Kafka al que se enviarán los registros.
  4. Haga clic en Create Application.

  5. Compruebe la configuración. Una vez desplegada la aplicación, SAE comenzará a recopilar registros según sus reglas. En el panel de navegación izquierdo de la página de detalles de la aplicación, vaya a Log Management > Persistent Logs. Haga clic en la pestaña Log collection to Kafka. Si aparecen registros, la regla de recolección está activa.

Configurar la recolección de registros al desplegar una aplicación existente

Aviso

El redespliegue de una aplicación provoca su reinicio. Para minimizar el impacto en el negocio, realice el despliegue fuera del horario de mayor actividad.

Esta sección aplica a aplicaciones con una o más instancias. Para aplicaciones sin instancias, consulte Actualizar una aplicación .
  1. Inicie sesión en la consola de SAE. En el panel de navegación izquierdo, vaya a Applications > Applications. Seleccione una región y un namespace, y haga clic en el nombre de la aplicación.

  2. En la página Basic Information, haga clic en Deploy Application.

  3. En la sección Log Settings, active Activate Kafka. Configure los parámetros tal como se describe en la tabla de la sección anterior.

  4. Haga clic en OK.

    Importante

    Un archivo de registro solo puede enviarse a un tema de Kafka a la vez. Si utiliza versiones graduales o canary release y cambia el tema manteniendo el mismo origen de registros, estos seguirán enviándose al tema original hasta que se actualicen todas las instancias.

  5. Compruebe la configuración. Una vez desplegada la aplicación, vaya a Log Management > Persistent Logs en el panel de navegación izquierdo. Haga clic en la pestaña Log collection to Kafka para confirmar que los registros están apareciendo.

Formato de registro

Cada mensaje enviado a ApsaraMQ for Kafka es un objeto JSON con los siguientes campos:

{
    "file":"/home/admin/apache-tomcat-8.5.42/logs/localhost.2022-03-01.log",
    "host":"test-kafka-9527eec8-b2c1-4f03-9178-5dac0fe16d07-*****",
    "message":"01-Mar-2022 15:09:36.016 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath",
    "topic":"test2"
}

Campo

Descripción

file

La ruta del archivo de registro recopilado dentro del contenedor.

host

El nombre de la instancia de aplicación que generó el registro.

message

El contenido del registro.

topic

El tema de ApsaraMQ for Kafka que recibió el registro.

Registros multilínea

SAE trata cada salto de línea (\n) como el límite de un registro. Si su aplicación escribe entradas multilínea, como trazas de pila de excepciones de Java, cada línea se envía como un mensaje independiente. Tenga en cuenta que, en aplicaciones Java, se reporta un error si los registros se fusionan automáticamente en una sola línea:

java.lang.RuntimeException: testLog
    at cn.niutong.controller.TestController.heathc(TestController.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
  at ...

Para mantener juntas las entradas multilínea, serialícelas como una cadena JSON de una sola línea en su aplicación antes de escribirlas en el archivo de registro.

Para casos de uso avanzados, como la fusión de registros en el servidor, únase al grupo de DingTalk 32874633 para obtener soporte técnico.

Preguntas frecuentes

¿Se admiten caracteres comodín en las rutas de origen de los registros?

Sí. Utilice un asterisco (*) para coincidir con todos los archivos de un directorio. Por ejemplo, /tmp/logs/*.log coincide con todos los archivos .log en /tmp/logs/.

¿Por qué no se están recopilando los registros?

La causa más común es un problema de conectividad de red entre SAE y la instancia de Kafka. Compruebe lo siguiente:

  • Ruta de red: Abra Webshell de SAE para su aplicación y ejecute un comando telnet hacia el endpoint de la instancia de Kafka para probar la conectividad. Para más detalles, consulte Usar la función Webshell para comprobar el estado de la aplicación.

  • VPC y lista de permitidos: Confirme que la aplicación de SAE y la instancia de Kafka se encuentran en la misma VPC, y que la lista de permitidos de direcciones IP de Kafka incluye el bloque CIDR del vSwitch de SAE.

Si la red es accesible pero los registros siguen sin aparecer, únase al grupo de DingTalk 32874633 para obtener soporte técnico.