RabbitMQ

La integración de RabbitMQ recopila métricas de mensajes, como la cantidad de mensajes entregados, publicados y descartados. La integración también recopila registros de RabbitMQ y los analiza en una carga útil de JSON. El resultado incluye el ID del proceso, el nivel y el mensaje.

Para obtener más información sobre RabbitMQ, consulta rabbitmq.com/.

Requisitos previos

Para recopilar y transferir registros y métricas de RabbitMQ, debes instalar el agente de operaciones versión 2.12.0 o posterior.

Este receptor es compatible con las versiones 3.8 y 3.9 de RabbitMQ.

Debes habilitar el complemento de administración de RabbitMQ mediante las instrucciones para comenzar a usarlo.

Debes configurar un usuario con la etiqueta monitoring.

Configura el Agente de operaciones para RabbitMQ

Mediante la guía Configura el Agente de operaciones, agrega los elementos necesarios para recopilar métricas de las instancias de RabbitMQ y reinicia el agente.

Configuración de ejemplo

El siguiente comando crea el archivo de configuración para recopilar y transferir registros de RabbitMQ, y reinicia el Agente de operaciones en Linux.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    rabbitmq:
      type: rabbitmq
  service:
    pipelines:
      rabbitmq:
        receivers:
        - rabbitmq
metrics:
  receivers:
    rabbitmq:
      type: rabbitmq
      password: pwd
      username: usr
  service:
    pipelines:
      rabbitmq:
        receivers:
          - rabbitmq
EOF
sudo service google-cloud-ops-agent restart

Para conectarte a tu instancia de RabbitMQ mediante una conexión TCP con un nombre de usuario y una contraseña, especifica el nombre de usuario y la contraseña en tu receptor de métricas. Por ejemplo:

metrics:
  receivers:
    rabbitmq:
      type: rabbitmq
      password: pwd
      username: usr
      insecure: false
      insecure_skip_verify: false
      cert_file: /path/to/cert
      ca_file: /path/to/ca
  service:
    pipelines:
      rabbitmq:
        receivers:
          - rabbitmq

Configura la recopilación de registros

A fin de transferir registros desde RabbitMQ, debes crear receptores para los registros que RabbitMQ produce y, luego, crear una canalización para los receptores nuevos. A fin de configurar un receptor para los registros de rabbitmq, especifica los siguientes campos:

Campo Predeterminada Descripción
type Este valor debe ser rabbitmq.
include_paths [/var/log/rabbitmq/rabbit*.log] Una lista de rutas de acceso del sistema de archivos que se leerán mediante la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. Por ejemplo, /var/log/rabbitmq/*.log.
exclude_paths [] Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.
wildcard_refresh_interval 60s El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths. Se proporciona como una duración, por ejemplo, 30s o 2m. Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado.

¿Qué se registra?

Los logName de los registros rabbitmq derivan de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry son los siguientes.

Campo Tipo Descripción
jsonPayload.process_id string El ID de proceso que emite el registro.
jsonPayload.message string Mensaje del registro.
severity string (LogSeverity) Nivel de entrada de registro (traducido).
timestamp string (Timestamp) Hora en la que se registró la entrada.

Configura la recopilación de métricas

A fin de recopilar métricas de RabbitMQ, debes crear un receptor para las métricas de RabbitMQ y, luego, crear una canalización destinada al receptor nuevo. A fin de configurar un receptor para las métricas de RabbitMQ, especifica los siguientes campos:

Campo Predeterminada Descripción
type Este valor debe ser rabbitmq.
endpoint http://localhost:15672 La URL del nodo que se debe supervisar.
collection_interval 60s Un valor time.Duration, como 30s o 5m.
username El nombre de usuario usado para conectarse al servidor.
password La contraseña usada para conectarse al servidor.
insecure true Establece si se debe usar o no una conexión TLS segura. Si se configura como false, TLS está habilitado.
insecure_skip_verify Establece si se debe omitir la verificación del certificado. Si insecure se configura como true, no se usa el valor insecure_skip_verify.
cert_file Ruta de acceso al certificado TLS que se usará para las conexiones requeridas por TLS.
key_file Ruta de acceso a la clave TLS que se usará para las conexiones requeridas por TLS.
ca_file Ruta al certificado de CA. Como cliente, esto verifica el certificado del servidor. Si está vacío, el receptor usa la CA raíz del sistema.

Qué se supervisa

En la siguiente tabla, se proporciona una lista de métricas que el Agente de operaciones recopila de la instancia de RabbitMQ.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
workload.googleapis.com/rabbitmq.consumer.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/rabbitmq.message.current
GAUGEINT64
gce_instance
state

Panel de muestra

Puedes ver las métricas de esta integración mediante un panel de Cloud Monitoring de muestra. Completa los procedimientos que se indican en Instala paneles de muestra para importar el panel Descripción general de RabbitMQ CGE de la Biblioteca de muestra y ver los gráficos que muestran tus métricas de RabbitMQ .

Verifica la configuración

Puedes usar el Explorador de registros y el Explorador de métricas para verificar que configuraste de forma correcta el receptor de RabbitMQ. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar los registros y las métricas.

Para verificar que se transfieran los registros, ve a Explorador de registros y ejecuta la siguiente consulta a fin de ver los registros de RabbitMQ:

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/rabbitmq")

Para verificar que las métricas se transfieran, ve a Explorador de métricas y ejecuta la siguiente consulta en la pestaña MQL.

fetch gce_instance
| metric 'workload.googleapis.com/rabbitmq.message.delivered'
| align rate(1m)
| every 1m

¿Qué sigue?

Para obtener una explicación sobre cómo usar Ansible a fin de instalar el agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el agente de operaciones para solucionar problemas de apps de terceros.