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 によって解析可能な時間として指定します(例: 30s 、2m )。このプロパティは、ログファイルのローテーションがデフォルトよりも短い間隔で実施され、ロギングのスループットが高い場合に有用な可能性があります。 |
ログの内容
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 |
期間の値(例: 30s 、5m )。 |
endpoint |
http://localhost:15672 |
モニタリングするノードの URL。 |
insecure |
true |
セキュア TLS 接続を使用するかどうかを設定します。false に設定すると、TLS が有効になります。 |
insecure_skip_verify |
false |
証明書の検証をスキップするかどうかを指定します。insecure が true に設定されている場合、insecure_skip_verify 値は使用されません。 |
key_file |
mTLS で必要な接続に使用する TLS キーのパス。 | |
password |
サーバーへの接続に使用するパスワード。 | |
type |
値は、rabbbitmq にする必要があります。 |
|
username |
サーバーへの接続に使用するユーザー名。 |
モニタリング対象
次の表に、Ops エージェントが RabbitMQ インスタンスから収集する指標の一覧を示します。
指標タイプ | |
---|---|
種類、タイプ モニタリング対象リソース |
ラベル |
workload.googleapis.com/rabbitmq.consumer.count
|
|
GAUGE 、INT64 gce_instance |
|
workload.googleapis.com/rabbitmq.message.current
|
|
GAUGE 、INT64 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 エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。