Configure um Log4j Appender no YAML da carga de trabalho para enviar logs de aplicações Java no cluster diretamente a um projeto do Simple Log Service (SLS). Esse método permite coletar logs sem agente.
O Log4j é um framework de logging open-source mantido pela Apache e projetado para aplicações Java. Seus componentes principais incluem Appenders (destinos de saída), Layouts (formatos de saída) e Filters.
Pré-requisitos
-
Um par de AccessKey disponível para integrar o Log4j Appender à aplicação.
Por questões de segurança, utilize um usuário RAM em vez da conta Alibaba Cloud e crie um par de AccessKey para esse usuário RAM.
Etapa 1: Configurar o Log4j Appender
Esta etapa mostra como criar um projeto SLS e um Logstore. Após configurar o Log4j Appender como fonte de dados do Logstore, a aplicação Java envia logs diretamente ao SLS.
Crie o projeto SLS na mesma região do cluster. Quando ambos estão na mesma região, os dados de log trafegam pela rede interna, o que evita custos de largura de banda pública e reduz a latência.
Para mais informações sobre o faturamento de projetos SLS, consulte Visão geral do faturamento .
-
Crie um projeto SLS.
Esta seção descreve apenas os parâmetros principais. Mantenha os valores padrão para os demais parâmetros. Para mais informações, consulte Gerencie um projeto.
Region: Selecione a mesma região do cluster ACK. Neste exemplo, China (Hangzhou) está selecionada.
Project Name: Insira um nome para o projeto. Este exemplo utiliza k8s-log4j.
-
Crie um Logstore no projeto.
Neste exemplo, o Logstore Name é k8s-logstore. Mantenha os valores padrão para os demais parâmetros. Para mais informações, consulte Criar um Logstore.
Após criar o k8s-logstore, siga as instruções na tela para ingerir dados.
-
Localize o cartão de ingestão do Log4j e siga as orientações na tela para concluir a ingestão.
Este exemplo utiliza a configuração padrão. Ajuste as configurações conforme o caso de uso específico. No assistente de fonte de dados do Log4j, conclua as seguintes etapas: Select a Logstore, Configure Data Source e Configure Search & Analysis. Na área de instruções, clique em no link View Help para obter orientações detalhadas e, em seguida, clique em Next para finalizar a configuração.
Etapa 2: Integrar o Log4j
Esta etapa implanta uma aplicação Spring Boot de exemplo para demonstrar a integração do plug-in Log4j Appender em uma aplicação Java. Após a integração, o contêiner transmite a configuração do SLS por meio da variável de ambiente JAVA_OPTS durante a inicialização. O Log4j lê esses parâmetros automaticamente e envia os logs ao SLS em tempo real.
-
Baixe o arquivo demo-deployment.yaml e configure a variável de ambiente
JAVA_OPTS.O arquivo-fonte está disponível em demo-deployment.
Parâmetros de
JAVA_OPTS:-Dproject: Nome do projeto SLS. Neste exemplo, k8s-log4j.-Dlogstore: Nome do Logstore SLS. Neste exemplo, k8s-logstore.-Dendpoint: Endpoint de serviço da região onde o projeto está localizado. Para mais informações, consulte Endpoints de serviço. Este exemplo utiliza cn-hangzhou.log.aliyuncs.com.-Daccess_key_id: Substitua pelo seu AccessKey ID.-Daccess_key: Substitua pelo seu AccessKey secret.
-
Crie o Deployment.
kubectl create -f demo-deployment.yaml -
Baixe o arquivo demo-service.yaml. Mantenha a configuração padrão.
O arquivo-fonte está disponível em demo-Service.
-
Implante o arquivo demo-service.yaml para criar o Service.
kubectl create -f demo-service.yaml
Etapa 3: Testar a coleta de logs
Após implantar o Deployment e o Service, verifique se os logs estão sendo gravados no SLS acessando o serviço pelo endereço IP externo (EXTERNAL-IP), o que gera entradas de log.
-
Visualize o
EXTERNAL-IPdo Service.kubectl get svcSaída 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 -
Acesse o endpoint
/loginpara gerar uma entrada de log de teste.Substitua
K8s_SERVICE_IPpeloEXTERNAL-IP.curl http://${K8S_SERVICE_IP}:8080/login?name=brucePara o conjunto completo de APIs, consulte GitHub log4j-appender-demo .
Etapa 4: Visualizar logs
Faça login no console SLS para consultar e analisar os logs coletados.
Faça login no console do Simple Log Service.
Na seção Projects, clique em no projeto desejado para abrir a página de detalhes.
-
Clique em no ícone
à direita do nome do Logstore e selecione Query and Analysis para visualizar os logs coletados do cluster.Os resultados da consulta mostram a entrada de log, em que o campo
messagecontémUser login successfully, requestID=hIAgSGKGyA name=bruce. Isso confirma que os logs da aplicação foram coletados com sucesso no SLS.