Todos os produtos
Search
Central de documentação

ApsaraMQ for RabbitMQ:**Logs**

Última atualização: Sep 21, 2026

O recurso de gerenciamento de logs de mensagens envia automaticamente os logs de operação de uma instância do ApsaraMQ for RabbitMQ para um Logstore do Simple Log Service. Caso ocorra um erro durante o envio, consumo ou confirmação de mensagens, consulte e analise esses logs no Simple Log Service para diagnosticar o problema.

Pré-requisitos

  • Você criou uma instância do ApsaraMQ for RabbitMQ. Para obter mais informações, consulte Gerencie instances.

  • Você ativou o Simple Log Service e criou um projeto e um Logstore. Para obter mais informações, consulte Resource management overview.

  • Crie a função vinculada ao service AliyunServiceRoleForAmqpLogDelivery e conceda as permissões necessárias quando solicitado no console. Essa função envia os logs para o Simple Log Service.

Importante

Se você exclua o projeto ou o Logstore, ou revogar as permissões do ApsaraMQ for RabbitMQ, a entrega dos logs falhará.

Faturamento

  • ApsaraMQ for RabbitMQ

    O recurso gerenciamento de logs de mensagens não gera cobranças adicionais.

  • Simple Log Service

    Após o ApsaraMQ for RabbitMQ enviar os logs ao Simple Log Service, você será cobrado por itens como armazenamento, tráfego e requisições. Para obter mais informações, consulte Billable items of pay-as-you-go.

Formato do log

Schema do log

Parâmetro

Descrição

Action

O método de requisição da operação. Para valores válidos e descrições, consulte Action request methods.

Code

O código de status. Valores válidos:

  • 200: a requisição foi bem-sucedida.

  • 541: ocorreu um erro interno no servidor.

  • 503: o comando é inválido.

  • 530: a operação não é permitida.

  • 404: o recurso não existe.

  • 406: a pré-verificação falhou.

  • 403: ocorreu um erro de permissão.

Info

Este campo fica vazio para requisições bem-sucedidas. Para requisições com falha, fornece detalhes sobre o código de status do erro.

InstanceId

O ID da instância do ApsaraMQ for RabbitMQ. O ID da instância está disponível nas páginas Instance Details ou Overview no console do ApsaraMQ for RabbitMQ.

Queue

A fila associada à assinatura ou à mensagem.

  • Se o campo Action for PushMessage, BasicGet ou DeleteMessage, este campo indica a fila assinada.

  • Se o campo Action for BasicReject, este campo indica a fila da mensagem rejeitada.

  • Se o campo Action for BasicNack, este campo indica a fila da mensagem com Nack.

Property

Os atributos da mensagem. Valores válidos:

  • consumerTag: a tag que identifica um assinante da fila.

  • deliveryTag: uma tag gerada pelo servidor que identifica exclusivamente uma mensagem em um canal.

    Nota

    Este campo só é registrado no log se o campo Action for PushMessage, BasicGet, DeleteMessage ou SendDlqMessage.

RemoteAddress

O endereço IP do cliente que iniciou a operação.

  • Se o campo Action for SendMessage, este é o endereço IP do cliente produtor.

  • Se o campo Action for PushMessage, este é o endereço IP do cliente consumidor.

  • Se o campo Action for BasicAck, este é o endereço IP do cliente consumidor.

  • Se o campo Action for DeleteMessage, este é o endereço IP do cliente consumidor.

Nota

Este campo não é registrado no log se o campo Action for SendDlqMessage.

ReqUid

O ID da conta.

  • Se um usuário RAM enviar ou receber mensagens, este campo exibe o ID do usuário RAM.

  • Se uma conta Alibaba Cloud enviar ou receber mensagens, este campo exibe o ID da conta Alibaba Cloud.

Nota

Este campo não é registrado no log se o campo Action for SendDlqMessage.

ResourceName

O nome do recurso.

  • messageId: o ID da mensagem definido ao enviar uma mensagem via SDK.

  • exchange: o nome do exchange. O nome está disponível na página Exchanges no console do ApsaraMQ for RabbitMQ.

  • routingKey: a chave de roteamento definida ao enviar uma mensagem via SDK.

Nota

Este campo não é registrado no log se o campo Action for ConnectionOpen, ConnectionClose, ChannelOpen ou ChannelClose.

VHost

O nome do vhost. O nome está disponível na página vhosts no console do ApsaraMQ for RabbitMQ.

ConnectionId

O ID gerado pelo servidor que identifica exclusivamente uma conexão.

Nota

Este campo não é registrado no log se o campo Action for SendDlqMessage.

ChannelId

O ID gerado pelo cliente que identifica exclusivamente um canal dentro da conexão atual.

Nota

Se o campo Action for ConnectionOpen ou ConnectionClose, este valor será nulo.

microtime

O timestamp da requisição em microssegundos.

_source_

Campo reservado do Simple Log Service. Para obter mais informações, consulte Reserved fields.

__tag__:__receive_time__

Campo reservado do Simple Log Service. Para obter mais informações, consulte Reserved fields.

__topic__

Campo reservado do Simple Log Service. Para obter mais informações, consulte Reserved fields.

Métodos de requisição de Action

Método de requisição

Descrição

ConnectionOpen

Estabelece uma conexão.

ConnectionClose

Encerra uma conexão.

ChannelOpen

Abre um canal.

ChannelClose

Fecha um canal.

QueueDeclare

Crie uma fila.

QueueDelete

Exclua uma fila.

ExchangeDeclare

Crie um exchange.

ExchangeDelete

Exclua um exchange.

ExchangeBind

Vincula um exchange de origem a um exchange de destino.

ExchangeUnBind

Desvincula um exchange de origem de um exchange de destino.

QueueBind

Vincula uma fila a um exchange.

QueueUnbind

Desvincula uma fila de um exchange .

SendMessage

Um produtor envia uma mensagem.

PushMessage

Um broker envia uma mensagem por push.

BasicGet

Um cliente consome uma mensagem via pull.

BasicAck

Confirme o consumo de uma mensagem.

BasicConsume

Assina uma fila.

BasicReject

Rejeita uma mensagem.

BasicRecover

Reenvia mensagens não confirmadas.

BasicNack

Confirme negativamente uma mensagem.

BasicQos

Limita o número de mensagens não confirmadas que um consumidor pode pré-buscar.

QueuePurge

Remove todas as mensagens de uma fila.

DeleteMessage

O servidor exclua uma mensagem após receber a confirmação Basic.Ack do cliente.

SendDlqMessage

Envia uma mensagem para a dead-letter queue.

Procedimento

Para enviar logs da sua instância do ApsaraMQ for RabbitMQ ao Simple Log Service, configure um destino.

  1. Acesse o console do ApsaraMQ for RabbitMQ. No painel de navegação à esquerda, clique em Instances.

  2. Na barra de navegação superior da página Instances, selecione a região onde reside a instância que deseja gerencie. Em seguida, na lista de instâncias, clique em no nome da instância desejada.

  3. No painel de navegação à esquerda, clique em Log Management.

  4. No cartão My Resources, clique em Authorize Now.

    Se você já concedeu ao ApsaraMQ for RabbitMQ as permissões de acesso ao Simple Log Service, ignore esta etapa.

  5. Na página Log Management, selecione o projeto e o Logstore criados anteriormente nas listas suspensas Project Name e Logstore, e então clique em Enable.

  6. Acesse o console do Simple Log Service. Ative e configure os índices de campos para seus logs. Para obter mais informações, consulte Crie indexes.

  7. Adicione manualmente o campo __tag__:__receive_time__ e defina seu alias como timestamp.

Tutoriais

  • Common queries for troubleshooting

  • How to generate second-level metrics

  • Conte as operações de envio e recebimento de mensagens por fila para identificar filas de alto custo

    Quando o console do ApsaraMQ for RabbitMQ não fornece detalhamentos de faturamento por fila, use os logs de operação no Simple Log Service para contabilizar independentemente as operações de mensagens por fila e localizar as filas de alto consumo, sem depender de extração de dados no backend.

    No Simple Log Service, consulte os logs de operação da sua instância do ApsaraMQ for RabbitMQ e execute a seguinte instrução de consulta para agregar o número de operações SendMessage, PushMessage e BasicGet por fila dentro de um intervalo de tempo especificado, ordenado por contagem de operações em ordem decrescente:

    Action: SendMessage OR Action: PushMessage OR Action: BasicGet | SELECT Queue, Action, COUNT(*) AS operation_count GROUP BY Queue, Action ORDER BY operation_count DESC LIMIT 100

    Action

    Descrição

    SendMessage

    Um produtor envia uma mensagem ao ApsaraMQ for RabbitMQ.

    PushMessage

    O broker envia uma mensagem por push a um consumidor.

    BasicGet

    Um cliente consumidor consome uma mensagem via pull.

    Os resultados mostram quais filas têm o maior throughput de mensagens. Use essas informações para identificar a origem dos altos custos e priorizar a otimização sem aguardar a extração de dados no backend.

FAQ

P: Por que há uma diferença de tempo entre o timestamp do log do cliente e o horário de entrega bem-sucedida do servidor no ApsaraMQ for RabbitMQ?

R: Para investigar essa discrepância, siga estas etapas:

  1. Verifique primeiro os logs do lado do servidor. Consulte os logs de operação no Simple Log Service para confirme que o servidor entregou a mensagem com êxito e sem atraso. Filtre por Action: PushMessage OR Action: DeleteMessage e confirme que o valor do campo Code é 200. Se os logs do lado do servidor estiverem normais, o servidor não é a causa da diferença de tempo.

  2. Investigue o ambiente do cliente. Se os logs do lado do servidor não apresentarem problemas, a discrepância geralmente tem origem no lado do cliente. Verifique as seguintes condições:

    • Latência de rede ou perda de pacotes: problemas intermitentes de rede entre o cliente e o service do ApsaraMQ for RabbitMQ podem atrasar a confirmação de mensagens no lado do cliente.

    • Alto uso de CPU: uma CPU sobrecarregada pode atrasar a execução dos métodos de envio de mensagens (por exemplo, convertAndSend), fazendo com que o timestamp registrado pelo cliente fique defasado em relação ao horário real de entrega do servidor.

    • Pausas frequentes de Full GC: eventos de Full GC da JVM interrompem todas as threads da aplicação, o que pode aumentar significativamente o intervalo entre a chamada do método de envio e a entrega efetiva da mensagem. Isso faz com que o log do cliente registre um timestamp posterior ao horário de entrega do servidor.

P: Como analisar a causa de um problema após receber um log de alarme ou notificação de alerta do ApsaraMQ for RabbitMQ?

R: Ao receber um log de alarme ou notificação de alerta, siga estas etapas para identificar a causa raiz:

  1. Localize o link do console no log de alarme. Os logs de alarme incluem uma URL que direciona para a página de monitoramento ou gerenciamento relevante no console da cloud. Encontre essa URL no conteúdo do log de alarme.

  2. Abra a página de detalhes da tarefa. Clique em na URL do log de alarme para acessar diretamente a página Task Details ou a página de monitoramento do cluster. Essa página fornece o contexto do alarme, as métricas associadas e a linha do tempo de eventos para ajudar no diagnóstico do problema.

  3. Correlacione com os logs de operação. Compare o timestamp do evento de alarme com os logs de operação no Simple Log Service para identificar operações de mensagens correlacionadas — como falhas de conexão, rejeições de mensagens ou roteamento para dead-letter queue — ocorridas no mesmo período e que possam ter contribuído para o alarme.