RabbitMQ

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

A integração do RabbitMQ coleta métricas de mensagens, como o número de mensagens entregues, publicadas e descartadas. A integração também coleta registros do RabbitMQ e os analisa em um payload JSON. O resultado inclui ID do processo, nível e mensagem.

Para mais informações sobre o RabbitMQ, consulte a documentação do RabbitMQ.

Pré-requisitos

Para coletar a telemetria do RabbitMQ, é necessário instalar o agente de operações:

  • Para métricas, instale a versão 2.11.0 ou mais recente.
  • Para registros, instale a versão 2.12.0 ou mais recente.

Essa integração é compatível com RabbitMQ versões 3.8 e 3.9.

É preciso ativar o plug-in de gerenciamento RabbitMQ seguindo as instruções de Primeiros passos.

É necessário configurar um usuário com a tag monitoring.

Configure o agente de operações para RabbitMQ

Seguindo o guia para Configurar o agente de operações, adicione os elementos necessários para coletar telemetria das instâncias do RabbitMQ e reinicie o agente.

Exemplo de configuração

Os comandos a seguir criam a configuração para coletar e ingerir telemetria para o RabbitMQ e reinicia o agente de operações.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

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

sudo service google-cloud-ops-agent restart
sleep 30

Configurar a coleta de registros

Para ingerir registros do RabbitMQ, é necessário criar receptores para os registros que o RabbitMQ produz e depois criar um pipeline para os novos receptores.

rabbitmqPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Padrão Descrição
exclude_paths Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [var/log/rabbitmq/*.log] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos. por exemplo, /var/log/rabbitmq/*.log.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do rótulo agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type Este valor precisa ser rabbitmq.
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Considerado como uma duração de tempo comparável por time.ParseDuration, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

O que é registrado

O logName é derivado dos IDs do receptor especificados na configuração. Os campos detalhados dentro de LogEntry são os seguintes.

Os registros rabbitmq contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.message string Mensagem de registro, incluindo stacktrace detalhado, quando fornecido
jsonPayload.process_id string O ID do processo que emite o registro
severity string (LogSeverity) Nível de entrada de registro (traduzido).

Configurar a coleta de métricas

Para ingerir métricas do RabbitMQ, é necessário criar receptores para as métricas produzidas pelo RabbitMQ e, em seguida, criar um pipeline para os novos receptores.

Para configurar um receptor para suas métricas do rabbitmq, especifique os campos a seguir:

Campo Padrão Descrição
ca_file Caminho para o certificado de CA. Como cliente, isso verifica o certificado do servidor. Se estiver vazio, o receptor usará a CA raiz do sistema.
cert_file Caminho para o certificado TLS a ser usado para conexões exigidas por mTLS.
collection_interval 60s Um valor de duração, como 30s ou 5m.
endpoint http://localhost:15672 O URL do nó a ser monitorado.
insecure true Define se uma conexão TLS segura será ou não usada. Se definido como false, o TLS será ativado.
insecure_skip_verify false Define se é necessário pular a verificação do certificado. Se insecure for definido como true, o valor de insecure_skip_verify não será usado.
key_file Caminho para a chave TLS a ser usada para conexões exigidas por mTLS.
password A senha usada para se conectar ao servidor.
type Este valor precisa ser rabbbitmq.
username O nome de usuário usado para se conectar ao servidor.

O que é monitorado?

A tabela a seguir fornece a lista de métricas que o agente de operações coleta da instância do RabbitMQ.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
workload.googleapis.com/rabbitmq.consumer.count
GAUGE, INT64
gce_instance
 
workload.googleapis.com/rabbitmq.message.current
GAUGEINT64
gce_instance
state

Amostra de painel

Para visualizar suas métricas do RabbitMQ, é necessário ter um gráfico ou um painel configurado. O Cloud Monitoring disponibiliza uma biblioteca de painéis de amostra para integrações, que contêm gráficos pré-configurados. Para informações sobre a instalação desses painéis, consulte Como instalar painéis de amostra.

Verificar a configuração

Esta seção descreve como verificar se você configurou corretamente o receptor RabbitMQ. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.

Para verificar se os registros foram ingeridos, acesse o Explorador de registros e execute a consulta a seguir para ver os registros do RabbitMQ:

resource.type="gce_instance"
log_id("rabbitmq")

Para verificar se as métricas são ingeridas, acesse o Metrics Explorer e execute a seguinte consulta na guia MQL:

fetch gce_instance
| metric 'workload.googleapis.com/rabbitmq.message.current'
| every 1m

A seguir

Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.