RabbitMQ

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

RabbitMQ の詳細については、RabbitMQ のドキュメントをご覧ください。

前提条件

RabbitMQ テレメトリーを収集するには、Ops エージェントをインストールする必要があります。

  • 指標の場合は、バージョン 2.11.0 以降をインストールします。
  • ログの場合は、バージョン 2.12.0 以降をインストールします。

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

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

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

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

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

構成の例

次のコマンドは、RabbitMQ のテレメトリーを収集して取り込み、Ops エージェントを再起動するための構成を作成します。

# 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

ログの収集を構成する

RabbitMQ からログを取り込むには、RabbitMQ が生成するログのレシーバを作成し、新しいレシーバのパイプラインを作成する必要があります。

rabbitmq ログのレシーバを構成するには、次のフィールドを指定します。

項目 デフォルト 説明
exclude_paths include_paths の照合で除外するファイルシステム パスのパターンのリスト。
include_paths [var/log/rabbitmq/*.log] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、/var/log/rabbitmq/*.log のように、ワイルドカード(*)を使用できます。
record_log_file_path false true に設定すると、ログレコードの取得元のファイルのパスが agent.googleapis.com/log_file_path ラベルの値として出力ログエントリに表示されます。ワイルドカードを使用する場合、レコードを取得したファイルのパスのみが記録されます。
type 値は、rabbitmq にする必要があります。
wildcard_refresh_interval 60s include_paths のワイルドカード ファイル パスの更新間隔。time.ParseDuration によって解析可能な時間として指定します(例: 30s2m)。このプロパティは、ログファイルのローテーションがデフォルトよりも短い間隔で実施され、ロギングのスループットが高い場合に有用な可能性があります。

ログの内容

logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

rabbitmq ログの LogEntry には次のフィールドが含まれます。

フィールド タイプ 説明
jsonPayload.message 文字列 ログ メッセージ(指定した場合の詳細なスタックトレースを含む)
jsonPayload.process_id 文字列 ログを発行するプロセス ID
severity 文字列(LogSeverity ログエントリ レベル(変換済み)。

指標の収集を構成する

RabbitMQ から指標を取り込むには、RabbitMQ が生成する指標のレシーバを作成してから、新しいレシーバ用のパイプラインを作成する必要があります。

rabbitmq 指標のレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
ca_file CA 証明書のパス。クライアントとして、これによりサーバー証明書が検証されます。空の場合、レシーバはシステムルート CA を使用します。
cert_file mTLS で必要な接続に使用する TLS 証明書のパス。
collection_interval 60s 期間の値(例: 30s5m)。
endpoint http://localhost:15672 モニタリングするノードの URL。
insecure true セキュア TLS 接続を使用するかどうかを設定します。false に設定すると、TLS が有効になります。
insecure_skip_verify false 証明書の検証をスキップするかどうかを指定します。insecuretrue に設定されている場合、insecure_skip_verify 値は使用されません。
key_file mTLS で必要な接続に使用する TLS キーのパス。
password サーバーへの接続に使用するパスワード。
type 値は、rabbbitmq にする必要があります。
username サーバーへの接続に使用するユーザー名。

モニタリング対象

次の表に、Ops エージェントが RabbitMQ インスタンスから収集する指標の一覧を示します。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/rabbitmq.consumer.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/rabbitmq.message.current
GAUGEINT64
gce_instance
state

ダッシュボードの例

RabbitMQ 指標を表示するには、グラフまたはダッシュボードが構成されている必要があります。Cloud Monitoring には、統合用のサンプル ダッシュボードのライブラリが用意されています。ここには、事前に構成されたグラフが含まれています。これらのダッシュボードのインストールについては、サンプル ダッシュボードのインストールをご覧ください。

構成を確認する

このセクションでは、RabbitMQ レシーバが正しく構成されていることを確認する方法について説明します。Ops エージェントがテレメトリーの収集を開始するまでに 1~2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して RabbitMQ のログを表示します。

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

指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。

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

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。