15672)でユーザー名とパスワードを使って認証します。これはRabbitMQ管理UIが使用するものと同じAPIのため、AMQPクライアントのセットアップは不要です。
対応プラットフォーム
| プラットフォーム | サポート |
|---|---|
| セルフホスト RabbitMQ | managementプラグイン有効の3.8以降 |
| マネージド RabbitMQ | CloudAMQPおよびManagement HTTP APIを公開するその他のプロバイダー |
前提条件
- CloudThinkerから管理ポート(デフォルト
15672、HTTPSは15671)で到達可能な RabbitMQブローカー。 - managementプラグインの有効化。セルフホストブローカーの場合:
monitoringまたはadministratorタグを持つブローカーユーザー(Management HTTP APIがキュー、ノード、クラスターデータを返すために必要)。
monitoring タグは、すべての読み取りとヘルスチェック機能に十分です。書き込み操作(キューのパージ/削除、エクスチェンジの削除、定義の更新)をエージェントに実行させたい場合のみ administrator を付与してください。これらは常にアプリ内での承認が必要です。必要な権限を参照してください。セットアップ
managementプラグインを有効化
セルフホストブローカーでmanagementプラグインを有効にし、リスニング中であることを確認します:CloudAMQPなどのマネージドプロバイダーはManagement HTTP APIをデフォルトで公開しています。次のステップへ進んでください。
監視ユーザーを作成
CloudThinker用の専用ユーザーを作成し、
monitoring タグを付与します:monitoring タグにより、すべての仮想ホストのキュー、エクスチェンジ、ノード、クラスターヘルスへの読み取りアクセスが付与されます。ネットワークアクセスを確認
CloudThinkerがブローカーの
<host>:15672(TLSの場合は <host>:15671)に到達できることを確認します。CloudThinkerのエグレスに対してファイアウォールまたはセキュリティグループで管理ポートを開放してください。CloudThinkerで接続を追加
Connections → RabbitMQ に移動し、次の情報を入力します:
- Username: ブローカーユーザー(例:
cloudthinker) - Password: ユーザーのパスワード
- Host: ブローカーのホスト名またはIP(ホスト名のみ — スキームやポートは含めない)
- Management Port: 管理APIポート(デフォルト
15672) - Use TLS: HTTPS管理APIとAMQPSの場合は有効にする
- Log Level: コネクターのログ詳細度(デフォルトは
info)
接続の詳細
| フィールド | 説明 | デフォルト |
|---|---|---|
| RABBITMQ_USERNAME | monitoring または administrator タグを持つブローカーユーザー | — |
| RABBITMQ_PASSWORD | ブローカーユーザーのパスワード | — |
| RABBITMQ_HOST | ブローカーのホスト名またはIP(スキームなし、ポートなし) | — |
| RABBITMQ_MANAGEMENT_PORT | Management HTTP APIポート | 15672 |
| RABBITMQ_USE_TLS | HTTP + AMQPは Disabled、HTTPS + AMQPSは Enabled | Disabled |
| LOG_LEVEL | コネクターのログ詳細度: debug、info、warn、error | info |
管理APIはHTTPでは
15672、HTTPSでは 15671 でリスニングします。Use TLS を有効にする場合、Management Port をTLS用の管理ポートに設定してください。必要な権限
接続ユーザーには、HTTP APIがブローカーデータを返すための管理タグが必要です:| タグ | アンロックされる機能 |
|---|---|
monitoring | キュー、エクスチェンジ、バインディング、接続、チャンネル、ノード、クラスター、ヘルスチェックへの読み取りアクセス — すべての監視と診断機能をカバー。 |
administrator | monitoring が提供するすべての機能、加えて書き込み操作(キューのパージ/削除、エクスチェンジの削除、定義の更新)。 |
書き込み操作には承認が必要
この接続には4つの変更ツールが有効になっています。これらは常にアプリ内承認で制限されており、エージェントは実行前にユーザーの確認を求める必要があります:delete_queue— キューを削除purge_queue— キュー内のすべてのメッセージを削除delete_exchange— エクスチェンジを削除update_definition— ブローカーの定義を変更
administrator タグも必要です。
エージェント機能
接続後、Tony は次のことができます:| 機能 | 説明 |
|---|---|
| キュー深度とメッセージレート | キューの深度、準備完了 vs. 未確認、パブリッシュ/デリバリーレートのスナップショット |
| コンシューマーラグ | コンシューマーラグが高い、またはコンシューマーがゼロのキューを特定 |
| デッドレター分析 | デッドレターキューで有害メッセージとエラーパターンを検査 |
| クラスターとノードヘルス | ノードステータス、ローカルおよびグローバルアラーム、クォーラムクリティカルキューを確認 |
| アラームと証明書チェック | アラーム状態のブローカーと期限切れ近い証明書を検出 |
| 制限付き書き込み操作 | キューのパージまたは削除、エクスチェンジの削除、定義の更新 — それぞれアプリ内承認が必要 |
接続を確認
プロンプト例
トラブルシューティング
接続が拒否またはタイムアウト
接続が拒否またはタイムアウト
<host>:15672(またはTLS管理ポート)でCloudThinkerからブローカーに到達できることを確認してください。- AMQPポート
5672ではなく、管理ポートがファイアウォールまたはセキュリティグループで開放されていることを確認してください。 - セルフホストブローカーの場合、RabbitMQが
127.0.0.1だけでなく、アクセス可能なインターフェースにバインドされていることを確認してください。
管理APIで404 Not Found
管理APIで404 Not Found
managementプラグインが有効になっていません。
rabbitmq-plugins enable rabbitmq_management を実行して再試行してください。マネージドプロバイダーの場合、インスタンスでManagement HTTP APIが公開されていることを確認してください。401 Unauthorized
401 Unauthorized
TLSハンドシェイクまたは証明書エラー
TLSハンドシェイクまたは証明書エラー
- Use TLS がブローカーの設定と一致していることを確認してください。管理APIがHTTPSを提供している場合(通常ポート
15671)のみ有効にしてください。 - Use TLS が有効でもポートがプレーンHTTPを提供している場合(またはその逆)、接続は失敗します。トグルと Management Port を合わせてください。
結果が空または一部のみ返される
結果が空または一部のみ返される
monitoringユーザーが一部の仮想ホストに対して権限を持っていない可能性があります。表示させたいvhostに対して読み取り権限を付与してください:rabbitmqctl set_permissions -p <vhost> <user> "" "" ".*"。
セキュリティ
- 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
- デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
- 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
- オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
- 専用ユーザー — CloudThinker用に別個の
cloudthinkerブローカーユーザーを作成し、guestや管理者アカウントを再利用しないでください - 転送中のTLS — Use TLS を有効にして、CloudThinkerとブローカー間の管理APIトラフィックを暗号化してください
関連情報
Tony エージェント
データベース中心の監視と最適化エージェント
Kafka 接続
Apache Kafkaストリーミングのセットアップ手順