• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Monitore o RabbitMQ auto-hospedado com OpenTelemetry

Monitore o RabbitMQ em execução em hosts Linux instalando e configurando o OpenTelemetry Collector. Este guia abrangente orienta você na instalação, configuração e verificação para sistemas Debian, Ubuntu, RHEL e CentOS.

Etapas de instalação

Siga estas etapas para configurar o monitoramento da sua instância auto-hospedada do RabbitMQ.

Antes de você começar

Certifique-se de que seu ambiente atenda a estes requisitos:

Habilite o plugin de gerenciamento do RabbitMQ

O plugin de gerenciamento expõe a API que o OpenTelemetry Collector coleta:

bash
$
sudo rabbitmq-plugins enable rabbitmq_management

Verifique se está funcionando:

bash
$
curl -I -u admin:password http://localhost:15672/api/overview

Você deve ver HTTP/1.1 200 OK na resposta.

Configurar o coletor

Criar ou substituir /etc/otelcol-contrib/config.yaml:

receivers:
rabbitmq:
endpoint: http://localhost:15672
username: admin
password: password
collection_interval: 30s
metrics:
# Queue Metrics (essential for message flow and backlog)
rabbitmq.consumer.count:
enabled: true
rabbitmq.message.delivered:
enabled: true
rabbitmq.message.published:
enabled: true
rabbitmq.message.acknowledged:
enabled: true
rabbitmq.message.dropped:
enabled: true
rabbitmq.message.current:
enabled: true # Crucial for monitoring queue backlog, includes 'ready' and 'unacknowledged' states
# Node Health Metrics (critical for server resource monitoring)
rabbitmq.node.disk_free:
enabled: true
rabbitmq.node.disk_free_limit:
enabled: true
rabbitmq.node.disk_free_alarm:
enabled: true
rabbitmq.node.mem_used:
enabled: true
rabbitmq.node.mem_limit:
enabled: true
rabbitmq.node.mem_alarm:
enabled: true
rabbitmq.node.mem_used_details.rate:
enabled: true
rabbitmq.node.fd_used:
enabled: true
rabbitmq.node.fd_total:
enabled: true
rabbitmq.node.sockets_used:
enabled: true
rabbitmq.node.sockets_total:
enabled: true
rabbitmq.node.proc_used:
enabled: true
rabbitmq.node.proc_total:
enabled: true
rabbitmq.node.uptime:
enabled: true
rabbitmq.node.run_queue:
enabled: true
rabbitmq.node.processors:
enabled: true
rabbitmq.node.context_switches_details.rate:
enabled: true
rabbitmq.node.gc_num_details.rate:
enabled: true
rabbitmq.node.gc_bytes_reclaimed_details.rate:
enabled: true
# I/O Metrics (important for understanding disk and network activity)
rabbitmq.node.io_read_count_details.rate:
enabled: true
rabbitmq.node.io_read_bytes_details.rate:
enabled: true
rabbitmq.node.io_read_avg_time_details.rate:
enabled: true
rabbitmq.node.io_write_count_details.rate:
enabled: true
rabbitmq.node.io_write_bytes_details.rate:
enabled: true
rabbitmq.node.io_write_avg_time_details.rate:
enabled: true
rabbitmq.node.io_sync_count_details.rate:
enabled: true
rabbitmq.node.io_sync_avg_time_details.rate:
enabled: true
rabbitmq.node.io_seek_count_details.rate:
enabled: true
rabbitmq.node.io_seek_avg_time_details.rate:
enabled: true
rabbitmq.node.io_reopen_count_details.rate:
enabled: true
# Mnesia and Store Metrics (for internal database and message storage)
rabbitmq.node.mnesia_ram_tx_count_details.rate:
enabled: true
rabbitmq.node.mnesia_disk_tx_count_details.rate:
enabled: true
rabbitmq.node.msg_store_read_count_details.rate:
enabled: true
rabbitmq.node.msg_store_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_read_count_details.rate:
enabled: true
# Connection/Channel/Queue Lifecycle Metrics
rabbitmq.node.connection_created_details.rate:
enabled: true
rabbitmq.node.connection_closed_details.rate:
enabled: true
rabbitmq.node.channel_created_details.rate:
enabled: true
rabbitmq.node.channel_closed_details.rate:
enabled: true
rabbitmq.node.queue_declared_details.rate:
enabled: true
rabbitmq.node.queue_created_details.rate:
enabled: true
rabbitmq.node.queue_deleted_details.rate:
enabled: true
# processors: Process data before exporting.
processors:
resourcedetection:
detectors: [system]
system:
resource_attributes:
host.name:
enabled: true
host.id:
enabled: true
resource:
attributes:
- key: instrumentation.provider
value: opentelemetry
action: upsert
- key: rabbitmq.deployment.name
value: my-rabbitmq-server # Replace with your server name
action: upsert
batch:
send_batch_size: 1024
timeout: 30s
exporters:
otlphttp/newrelic:
endpoint: ${env:NEWRELIC_OTLP_ENDPOINT}
headers:
api-key: ${env:NEWRELIC_LICENSE_KEY}
compression: gzip
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]

Atualize estes valores na configuração:

  • endpoint: Sua URL da API de gerenciamento do RabbitMQ (padrão: http://localhost:15672)
  • username e password: Suas credenciais do RabbitMQ
  • rabbitmq.deployment.name: Um nome exclusivo para esta instância do RabbitMQ
  • collection_interval: Com que frequência coletar métricas (padrão: 30 segundos)

Definir variáveis de ambiente

Crie um arquivo de override do systemd para variáveis de ambiente:

bash
$
sudo mkdir -p /etc/systemd/system/otelcol-contrib.service.d

Escolha sua região da New Relic:

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

Substitua YOUR_LICENSE_KEY por sua chave de licença New Relic.

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.eu01.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

Substitua YOUR_LICENSE_KEY por sua chave de licença New Relic.

Recarregue o systemd e reinicie o coletor:

bash
$
sudo systemctl daemon-reload
$
sudo systemctl restart otelcol-contrib

Verifique seus dados no New Relic

Verifique o status do serviço:

bash
$
sudo systemctl status otelcol-contrib

Você deve ver active (running) na saída.

Visualizar logs recentes:

bash
$
sudo journalctl -u otelcol-contrib -n 50 --no-pager

Procure por mensagens indicando uma coleta de métricas bem-sucedida:

INFO RabbitmqReceiver Successfully scraped rabbitmq metrics

Verifique as métricas no New Relic:

Aguarde de 2 a 3 minutos para que os dados apareçam e, em seguida, execute esta consulta no construtor de consultas:

SELECT count(*)
FROM Metric
WHERE metricName LIKE 'rabbitmq.%'
AND instrumentation.provider = 'opentelemetry'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
FACET metricName
SINCE 10 minutes ago

Você deve ver nomes de métricas como:

  • rabbitmq.queue.count - Número de filas
  • rabbitmq.queue.message.count - Total de mensagens nas filas
  • rabbitmq.connection.count - Conexões ativas
  • rabbitmq.consumer.count - Consumidores ativos

Dica

Se você não visualizar dados após 5 minutos, consulte a seção de solução de problemas abaixo.

(Opcional) Encaminhar logs do RabbitMQ para o New Relic

Além de métricas, você pode encaminhar logs de aplicativo do RabbitMQ para o New Relic para uma observabilidade abrangente. Isso ajuda a correlacionar problemas entre métricas e logs.

Importante

O encaminhamento de logs requer configuração adicional e permissões do sistema. Certifique-se de ter o acesso necessário antes de prosseguir.

Atualize /etc/otelcol-contrib/config.yaml para adicionar o receptor filelog:

receivers:
rabbitmq:
# ... existing rabbitmq config ...
# Add filelog receiver for RabbitMQ logs
filelog/rabbitmq:
include:
- /var/log/rabbitmq/*.log
- /var/log/rabbitmq/**/*.log
include_file_path: true
include_file_name: false
operators:
- type: regex_parser
regex: '^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) \[(?P<level>\w+)\] <(?P<pid>[^>]+)> (?P<message>.*)$'
timestamp:
parse_from: attributes.timestamp
layout: '%Y-%m-%d %H:%M:%S.%L'
severity:
parse_from: attributes.severity
processors:
# ... existing processors ...
transform/rabbitmq_logs:
log_statements:
- context: resource
statements:
- set(attributes["rabbitmq.display.name"], Concat(["server", attributes["rabbitmq.deployment.name"]], ":"))
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]
logs/rabbitmq:
receivers: [filelog]
processors: [batch, resource, transform/rabbitmq_logs]
exporters: [otlphttp/newrelic]

Conceda permissão ao coletor para ler logs. Escolha um método:

Adicionar ao grupo rabbitmq:

bash
$
sudo usermod -a -G rabbitmq otelcol-contrib

Ou defina as permissões de arquivo:

bash
$
sudo chmod 644 /var/log/rabbitmq/*.log

Reinicie o coletor:

bash
$
sudo systemctl restart otelcol-contrib

Verifique se os logs estão sendo coletados no New Relic:

SELECT count(*)
FROM Log
WHERE service.name = 'rabbitmq'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
SINCE 10 minutes ago

Encontre seus dados

Após alguns minutos, suas métricas do RabbitMQ devem aparecer no New Relic. Veja Encontre e consulte seus dados para instruções detalhadas sobre como explorar suas métricas do RabbitMQ em diferentes visualizações na UI do New Relic.

Você também pode consultar seus dados com NRQL:

FROM Metric SELECT * WHERE rabbitmq.deployment.name = 'my-rabbitmq-server'

Resolução de problemas

Próximos passos

Agora que você configurou o monitoramento do RabbitMQ, pode aprimorar sua observabilidade:

Explore seus dados:

Aprimore o monitoramento:

  • Criar alertas - Configure alertas para profundidades de fila e backlogs de mensagens
  • Construa dashboards - Crie dashboards personalizados para visualizar suas métricas do RabbitMQ
Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.