RabbitMQ

RabbitMQ 集成会收集消息指标,例如已传送、已发布和已丢弃的消息数量。 集成还会收集 RabbitMQ 日志并将其解析为 JSON 载荷。结果包括进程 ID、级别和消息。

如需详细了解 RabbitMQ,请参阅 rabbitmq.com/

前提条件

如需收集和注入 RabbitMQ 日志和指标,您必须安装 Ops Agent 2.12.0 版或更高版本。

此接收器支持 RabbitMQ 3.8 和 3.9 版。

您必须按照使用入门说明启用 RabbitMQ 管理插件。

您必须使用 monitoring 标记配置用户。

为 RabbitMQ 配置 Ops Agent

按照配置 Ops Agent 指南,添加从 RabbitMQ 实例收集指标所需的元素并重启代理

配置示例

以下命令会创建配置文件,以收集和注入 RabbitMQ 的指标,并在 Linux 上重启 Ops Agent。

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

如需使用具有用户名和密码的 TCP 连接方式连接到 RabbitMQ 实例,请在指标接收器中指定用户名和密码。例如:

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

配置日志收集

如需从 RabbitMQ 注入日志,您必须为 RabbitMQ 生成的日志创建接收器,然后为新的接收器创建流水线。如需为 rabbitmq 日志配置接收器,请指定以下字段:

字段 默认 说明
type 该值必须为 rabbitmq
include_paths [/var/log/rabbitmq/rabbit*.log] 要通过跟踪每个文件读取的文件系统路径列表。路径中可以使用通配符 (*);例如 /var/log/rabbitmq/*.log
exclude_paths [] 要从 include_paths 匹配的集合中排除的文件系统路径模式列表。
wildcard_refresh_interval 60s include_paths 中通配符文件路径的刷新间隔。指定为时长,例如 30s2m。该属性在高日志记录吞吐量下可能很有用,因为日志文件的轮替速度快于默认时间间隔。

记录的内容

rabbitmq 日志的 logName 派生自配置中指定的接收器 ID。LogEntry 中的详细字段如下所示。

字段 类型 说明
jsonPayload.process_id 字符串 发出日志的进程 ID。
jsonPayload.message 字符串 日志消息。
severity 字符串 (LogSeverity) 日志条目级别(已转换)。
timestamp 字符串 (Timestamp) 记录条目的时间。

配置指标收集

如需从 RabbitMQ 收集指标,您必须为 RabbitMQ 指标创建接收器,然后为新接收器创建流水线。如需为 RabbitMQ 指标配置接收器,请指定以下字段:

字段 默认 说明
type 该值必须为 rabbitmq
endpoint http://localhost:15672 要监控的节点的网址。
collection_interval 60s time.Duration 值,例如 30s5m
username 用于连接到服务器的用户名。
password 用于连接到服务器的密码。
insecure true 设置是否使用安全 TLS 连接。如果设置为 false,则启用 TLS。
insecure_skip_verify 设置是否跳过证书验证。如果 insecure 设置为 true,则不使用 insecure_skip_verify 值。
cert_file 用于要求 TLS 的连接的 TLS 证书的路径。
key_file 用于要求 TLS 的连接的 TLS 密钥的路径。
ca_file CA 证书的路径。作为客户端,此字段会验证服务器证书。如果为空,则接收器使用系统根 CA。

监控的内容

下表提供了 Ops Agent 从 RabbitMQ 实例收集的指标列表。

指标类型
种类、类型
受监控的资源
标签
workload.googleapis.com/rabbitmq.consumer.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/rabbitmq.message.current
GAUGEINT64
gce_instance
state

示例信息中心

您可以使用示例 Cloud Monitoring 信息中心查看集成中的指标。完成安装示例信息中心过程,从示例库中导入 RabbitMQ GCE 概览信息中心并查看显示 RabbitMQ 指标的图表。

验证配置

您可以使用日志浏览器和 Metrics Explorer 来验证是否已正确配置 RabbitMQ 接收器。Ops Agent 可能需要一两分钟才会开始收集日志和指标。

如需验证日志是否已注入,请转到日志浏览器并运行以下查询来查看 RabbitMQ 日志:

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

如需验证指标是否已注入,请转到 Metrics Explorer 并在 MQL 标签页中运行以下查询。

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

后续步骤

如需查看如何使用 Ansible 安装 Ops Agent、配置第三方应用和安装示例信息中心的演示,请参阅安装 Ops Agent 以排查第三方应用的问题视频。