RabbitMQ

RabbitMQ 統合では、配信、公開、ドロップされたメッセージの数など、メッセージの指標を収集します。この統合では、RabbitMQ ログも収集され、JSON ペイロードが生成されます。結果には、process、ID、level、message が含まれます。

RabbitMQ の詳細については、rabbitmq.com/ をご覧ください。

前提条件

RabbitMQ のログと指標を収集して取り込むには、Ops Agent バージョン 2.12.0 以降をインストールする必要があります。

このレシーバは、RabbitMQ バージョン 3.8 と 3.9 をサポートしています。

スタートガイドの手順に沿って RabbitMQ 管理プラグインを有効にする必要があります。

monitoring タグを使用してユーザーを構成する必要があります。

RabbitMQ 用に Ops エージェントを構成する

Ops エージェントの構成のガイドに従って、RabbitMQ インスタンスから指標を収集するために必要な要素を追加して、エージェントを再起動します。

構成の例

次のコマンドは、RabbitMQ の指標を収集して取り込み、Linux で Ops エージェントを再起動するための構成ファイルを作成します。

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 モニタリングするノードの URL。
collection_interval 60s time.Duration 値(例: 30s5m)。
username サーバーへの接続に使用するユーザー名。
password サーバーへの接続に使用するパスワード。
insecure true セキュア TLS 接続を使用するかどうかを設定します。false に設定すると、TLS が有効になります。
insecure_skip_verify 証明書の検証をスキップするかどうかを指定します。insecuretrue に設定されている場合、insecure_skip_verify 値は使用されません。
cert_file TLS で必要な接続に使用する TLS 証明書のパス。
key_file TLS で必要な接続に使用する TLS キーのパス。
ca_file CA 証明書のパス。クライアントとして、これによりサーバー証明書が検証されます。空の場合、レシーバはシステムルート CA を使用します。

モニタリング対象

次の表に、Ops エージェントが 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 エージェントがログと指標の収集を開始するまでに 1~2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して 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 エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。