Todos os produtos
Search
Central de documentação

Serverless App Engine:Configurar a coleta de logs para o ApsaraMQ for Kafka

Última atualização: Jun 28, 2026

O SAE coleta logs de saída padrão (stdout) e de arquivos das instâncias da aplicação e os entrega em tópicos do ApsaraMQ for Kafka. Esse recurso complementa a capacidade de coleta de logs do Simple Log Service (SLS), sendo especialmente útil quando não é possível enviar logs para projetos do SLS ou quando usuários do RAM não têm permissão para visualizar logs no SLS. A partir do Kafka, encaminhe os dados de log para sistemas downstream, como o Elasticsearch, para análise e armazenamento de longo prazo.

Pré-requisitos

Antes de começar, verifique se você atende aos seguintes requisitos:

Requisitos do SAE:

  • Cada instância da aplicação deve ter pelo menos 0,25 Core de CPU e 250 MB de recursos disponíveis.

Requisitos do ApsaraMQ for Kafka:

  • O ApsaraMQ for Kafka está ativado e um tópico foi criado. O SAE oferece suporte ao ApsaraMQ for Kafka 2.X ou superior.

  • Se a instância do Kafka estiver implantada em uma Virtual Private Cloud (VPC) sem acesso à Internet, ela deverá residir na mesma VPC da aplicação SAE.

  • Uma lista de permissões de endereços IP está configurada para a instância do Kafka:

    • Se a instância do Kafka e a aplicação SAE estiverem na mesma VPC, mas em vSwitches diferentes, adicione o bloco CIDR do vSwitch da aplicação SAE à lista de permissões do Kafka.

    • Para permitir todo o tráfego dentro da VPC, adicione 0.0.0.0/0 à lista de permissões.

Para limites de uso e detalhes de faturamento do Kafka, consulte Limites e Visão geral do faturamento.

Configurar a coleta de logs ao criar uma aplicação

  1. Faça login no console do SAE. No painel de navegação à esquerda, escolha Applications > Applications. Selecione uma região e um namespace na lista suspensa Namespace e clique em Create Application.

  2. Na seção Basic Information, configure as informações da aplicação e clique em Next: Advanced Settings.

  3. Expanda a seção Log Settings e ative a opção Activate Kafka. Configure os seguintes parâmetros:

    ParameterRequiredDescription
    Kafka InstanceYesA instância de destino do ApsaraMQ for Kafka.
    Collection Log TypeYesO tipo de log a ser coletado. A opção File Logs (Log Path In Container) permite múltiplas regras de coleta. Já a opção Container Standard Output Logs aceita apenas uma regra de coleta e está disponível somente quando o vSwitch está em uma zona recomendada.
    Log SourceYes (file logs only)O caminho completo para o arquivo de log dentro do contêiner, por exemplo /tmp0/cjsc.log. Há suporte a expressões regulares. Para corresponder a vários arquivos com o mesmo formato, utilize um caminho com curinga, como /xxx/xxx/xxx/*.log.
    Importante

    Não armazene outros arquivos importantes no diretório de origem do log, pois os arquivos nesse diretório podem ser sobrescritos.

    Kafka Topic NameYesO tópico existente do ApsaraMQ for Kafka para onde os logs serão entregues.
  4. Clique em Create Application.

  5. Verifique a configuração. Após a implantação da aplicação, o SAE inicia a coleta de logs com base nas suas regras. No painel de navegação à esquerda da página de detalhes da aplicação, escolha Log Management > Persistent Logs. Clique na aba Log collection to Kafka. Se os logs aparecerem, a regra de coleta estará ativa.

Configurar a coleta de logs ao implantar uma aplicação existente

Aviso

A reimplantação de uma aplicação causa sua reinicialização. Para minimizar o impacto nos negócios, implante fora dos horários de pico.

Esta seção aplica-se a aplicações com uma ou mais instâncias. Para aplicações com zero instâncias, consulte Atualizar uma aplicação .
  1. Faça login no console do SAE. No painel de navegação à esquerda, escolha Applications > Applications. Selecione uma região e um namespace e clique no nome da aplicação.

  2. Na página Basic Information, clique em Deploy Application.

  3. Na seção Log Settings, ative a opção Activate Kafka. Configure os parâmetros conforme descrito na tabela da seção anterior.

  4. Clique em OK.

    Importante

    Um arquivo de log só pode ser entregue a um tópico do Kafka por vez. Se você utilizar liberação faseada ou canary release e alterar o tópico mantendo a mesma origem de log, os logs continuarão sendo entregues ao tópico original até que todas as instâncias sejam atualizadas.

  5. Verifique a configuração. Após a implantação da aplicação, escolha Log Management > Persistent Logs no painel de navegação à esquerda. Clique na aba Log collection to Kafka para confirmar que os logs estão aparecendo.

Formato do log

Cada mensagem entregue ao ApsaraMQ for Kafka é um objeto JSON com os seguintes 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"
}

Field

Description

file

O caminho do arquivo de log coletado dentro do contêiner.

host

O nome da instância da aplicação que produziu o log.

message

O conteúdo do log.

topic

O tópico do ApsaraMQ for Kafka que recebeu o log.

Logs multilinha

O SAE trata cada quebra de linha (\n) como limite de registro de log. Se a aplicação gravar entradas multilinha, como stack traces de exceções Java, cada linha será entregue como uma mensagem separada. Em aplicações Java, um erro é relatado se os logs forem mesclados automaticamente em uma única linha:

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 manter entradas multilinha juntas, serialize-as como uma string JSON de linha única na aplicação antes de gravá-las no arquivo de log.

Para casos de uso avançados, como mesclagem de logs no lado do servidor, entre no grupo 32874633 do DingTalk para obter suporte técnico.

Perguntas frequentes

Os caminhos de origem de log suportam caracteres curinga?

Sim. Utilize um asterisco (*) para corresponder a todos os arquivos em um diretório. Por exemplo, /tmp/logs/*.log corresponde a todos os arquivos .log em /tmp/logs/.

Por que os logs não estão sendo coletados?

A causa mais comum é um problema de conectividade de rede entre o SAE e a instância do Kafka. Verifique os seguintes pontos:

  • Caminho de rede: Abra o Webshell do SAE para a aplicação e execute um comando telnet para o endpoint da instância do Kafka a fim de testar a conectividade. Para mais detalhes, consulte Usar o recurso Webshell para verificar a integridade da aplicação.

  • VPC e lista de permissões: Confirme se a aplicação SAE e a instância do Kafka estão na mesma VPC e se a lista de permissões de endereços IP do Kafka inclui o bloco CIDR do vSwitch do SAE.

Se a rede estiver acessível, mas os logs ainda não aparecerem, entre no grupo 32874633 do DingTalk para obter suporte técnico.