• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Monitorear RabbitMQ autoalojado con OpenTelemetry

Monitoree RabbitMQ que se ejecuta en hosts Linux instalando y configurando el OpenTelemetry Collector. Esta guía completa lo guía a través de la instalación, configuración y verificación para los sistemas Debian, Ubuntu, RHEL y CentOS.

Pasos de instalación

Siga estos pasos para configurar el monitoreo de su instancia autohospedada de RabbitMQ.

Antes de que empieces

Asegúrese de que su entorno cumpla con estos requisitos:

Habilite el plugin de administración de RabbitMQ

El plugin de gestión expone la API que el OpenTelemetry Collector recopila:

bash
$
sudo rabbitmq-plugins enable rabbitmq_management

Verifique que esté funcionando:

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

Debería ver HTTP/1.1 200 OK en la respuesta.

Configurar el recolector

Crear o reemplazar /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]

Actualice estos valores en la configuración:

  • endpoint: Su URL de la API de administración de RabbitMQ (predeterminado: http://localhost:15672)
  • username y password: Sus credenciales de RabbitMQ
  • rabbitmq.deployment.name: Un nombre único para esta instancia de RabbitMQ
  • collection_interval: Con qué frecuencia recolectar métricas (predeterminado: 30 segundos)

Establecer variables de entorno

Cree un archivo de anulación de systemd para las variables de entorno:

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

Selecciona tu región de 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

Reemplaza YOUR_LICENSE_KEY por tu clave de licencia de 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

Reemplaza YOUR_LICENSE_KEY por tu clave de licencia de New Relic.

Recargue systemd y reinicie el recopilador:

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

Verifique sus datos en New Relic

Verifique el estado del servicio:

bash
$
sudo systemctl status otelcol-contrib

Debería ver active (running) en la salida.

Ver registros recientes:

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

Busque mensajes que indiquen una recopilación de métricas exitosa:

INFO RabbitmqReceiver Successfully scraped rabbitmq metrics

Verificar las métricas en New Relic:

Espere de 2 a 3 minutos para que aparezcan los datos, luego ejecute esta consulta en el generador 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

Debería ver nombres de métricas como:

  • rabbitmq.queue.count - Número de colas
  • rabbitmq.queue.message.count - Total de mensajes en las colas
  • rabbitmq.connection.count - Conexiones activas
  • rabbitmq.consumer.count - Consumidores activos

Sugerencia

Si no ve datos después de 5 minutos, consulte la sección de solución de problemas a continuación.

(Opcional) Reenviar logs de RabbitMQ a New Relic

Además de las métricas, puedes enviar los logs de la aplicación RabbitMQ a New Relic para una observabilidad integral. Esto ayuda a correlacionar problemas entre métricas y registros.

Importante

El reenvío de logs requiere configuración adicional y permisos del sistema. Asegúrese de tener el acceso necesario antes de continuar.

Actualice /etc/otelcol-contrib/config.yaml para agregar el 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]

Otorgue al recopilador permiso para leer registros. Seleccione un método:

Agregar al grupo rabbitmq:

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

O configure los permisos de archivo:

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

Reinicie el colector:

bash
$
sudo systemctl restart otelcol-contrib

Verifique que los logs se estén recopilando en New Relic:

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

Encuentra tus datos

Después de unos minutos, sus métricas de RabbitMQ deberían aparecer en New Relic. Consulta Busca y consulta tus datos para obtener instrucciones detalladas sobre cómo explorar tus métricas de RabbitMQ en las diferentes vistas de la UI de New Relic.

También puede consultar sus datos con NRQL:

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

Resolución de problemas

Próximos pasos

Ahora que tiene configurado el monitoreo de RabbitMQ, puede mejorar su observabilidad:

Explore sus datos:

Mejorar el monitoreo:

  • Crear alertas - Configura alertas para la profundidad de las colas y la acumulación de mensajes
  • Crear paneles - Cree paneles personalizados para visualizar sus métricas de RabbitMQ
Copyright © 2026 New Relic Inc.

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