Al configurar un Appender de Log4j en el YAML de su carga de trabajo, puede enviar registros desde las aplicaciones Java de su clúster directamente a un proyecto de Simple Log Service (SLS). Este método permite la recopilación de registros sin agentes.
Log4j es un framework de registro de código abierto mantenido por Apache y diseñado para aplicaciones Java. Sus componentes principales incluyen Appenders (destinos de salida), Layouts (formatos de salida) y Filters.
Requisitos previos
-
Un AccessKey pair is available para integrar el Appender de Log4j en su aplicación.
Por motivos de seguridad, utilice un usuario RAM en lugar de su cuenta de Alibaba Cloud y cree un par de AccessKey para dicho usuario RAM.
Paso 1: Configurar el Appender de Log4j
En este paso se muestra cómo crear un proyecto de SLS y un logstore. Una vez que configure el Appender de Log4j como origen de datos del logstore, su aplicación Java podrá enviar registros directamente a SLS.
Cree el proyecto de SLS en la misma región que su clúster. Al encontrarse en la misma región, los datos de registro se transmiten a través de la red interna, lo que evita costos de ancho de banda público y reduce la latencia de red.
Para obtener más información sobre la facturación de proyectos de SLS, consulte Billing overview .
-
Cree un proyecto de SLS.
Esta sección describe únicamente los parámetros clave. Puede conservar los valores predeterminados para el resto de los parámetros. Para obtener más información, consulte Manage a project.
Region: Seleccione la misma región que su clúster ACK. En este ejemplo, se selecciona China (Hangzhou).
Project Name: Introduzca un nombre para el proyecto. Este ejemplo utiliza k8s-log4j.
-
Cree un logstore en el proyecto.
En este ejemplo, el Logstore Name es k8s-logstore. Puede conservar los valores predeterminados para el resto de los parámetros. Para obtener más información, consulte Create a Logstore.
Una vez creado el logstore k8s-logstore, siga las indicaciones en pantalla para incorporar datos.
-
Busque la tarjeta de incorporación de Log4j y siga las indicaciones en pantalla para completar la incorporación.
Este ejemplo utiliza la configuración predeterminada. Puede ajustar los parámetros según su caso de uso específico. En el asistente de origen de datos de Log4j, complete los siguientes pasos: Select a Logstore, Configure Data Source y Configure Search & Analysis. En el área de instrucciones, haga clic en el enlace View Help para obtener orientación detallada y, a continuación, haga clic en Next para finalizar la configuración.
Paso 2: Integrar Log4j
Este paso despliega una aplicación Spring Boot de muestra para mostrarle cómo integrar el complemento Appender de Log4j en una aplicación Java. Tras la integración, el contenedor pasa la configuración de SLS mediante la variable de entorno JAVA_OPTS durante el inicio. Log4j lee automáticamente estos parámetros y envía los registros a SLS en tiempo real.
-
Descargue el archivo demo-deployment.yaml y configure la variable de entorno
JAVA_OPTS.El archivo fuente está disponible en demo-deployment.
Parámetros de
JAVA_OPTS:-Dproject: El nombre de su proyecto de SLS. En este ejemplo, k8s-log4j.-Dlogstore: El nombre de su logstore de SLS. En este ejemplo, k8s-logstore.-Dendpoint: El endpoint de servicio de la región donde se encuentra su proyecto. Para obtener más información, consulte Service Endpoints. Este ejemplo utiliza cn-hangzhou.log.aliyuncs.com.-Daccess_key_id: Reemplace con su AccessKey ID.-Daccess_key: Reemplace con su AccessKey secret.
-
Cree el Deployment.
kubectl create -f demo-deployment.yaml -
Descargue el archivo demo-service.yaml. Puede conservar la configuración predeterminada.
El archivo fuente está disponible en demo-Service.
-
Despliegue el archivo demo-service.yaml para crear el Service.
kubectl create -f demo-service.yaml
Paso 3: Probar la recopilación de registros
Una vez desplegados el Deployment y el Service, puede comprobar que los registros se escriben en SLS accediendo al servicio a través de su dirección IP externa (EXTERNAL-IP), lo cual genera entradas de registro.
-
Consulte la
EXTERNAL-IPdel Service.kubectl get svcSalida esperada:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE log4j-appender-demo-spring-boot-svc LoadBalancer 172.21.XX.XX 120.55.XXX.XXX 8080:30398/TCP 1h -
Acceda al endpoint
/loginpara generar una entrada de registro de prueba.Reemplace
K8s_SERVICE_IPporEXTERNAL-IP.curl http://${K8S_SERVICE_IP}:8080/login?name=brucePara consultar el conjunto completo de API, véase GitHub log4j-appender-demo .
Paso 4: Consultar registros
Puede iniciar sesión en la consola de SLS para consultar y analizar los registros recopilados.
Inicie sesión en la consola de Simple Log Service.
En la sección Projects, haga clic en el proyecto deseado para abrir su página de detalles.
-
Haga clic en el icono
situado a la derecha del nombre del logstore y seleccione Query and Analysis para ver los registros recopilados de su clúster.Los resultados de la consulta muestran la entrada de registro, donde el campo
messagecontieneUser login successfully, requestID=hIAgSGKGyA name=bruce. Esto confirma que los registros de la aplicación se han recopilado correctamente en SLS.