メインコンテンツへスキップ
RabbitMQブローカーを接続することで、Tony(Database Engineer)がキューの深度を監視し、コンシューマーラグを分析し、デッドレターキューを検査し、クラスターとノードの健全性を追跡できるようになります。 RabbitMQはManagement HTTP API(デフォルトポート 15672)でユーザー名とパスワードを使って認証します。これはRabbitMQ管理UIが使用するものと同じAPIのため、AMQPクライアントのセットアップは不要です。

対応プラットフォーム

プラットフォームサポート
セルフホスト RabbitMQmanagementプラグイン有効の3.8以降
マネージド RabbitMQCloudAMQPおよびManagement HTTP APIを公開するその他のプロバイダー

前提条件

  • CloudThinkerから管理ポート(デフォルト 15672、HTTPSは 15671)で到達可能な RabbitMQブローカー
  • managementプラグインの有効化。セルフホストブローカーの場合:
    rabbitmq-plugins enable rabbitmq_management
    
  • monitoring または administrator タグを持つブローカーユーザー(Management HTTP APIがキュー、ノード、クラスターデータを返すために必要)。
monitoring タグは、すべての読み取りとヘルスチェック機能に十分です。書き込み操作(キューのパージ/削除、エクスチェンジの削除、定義の更新)をエージェントに実行させたい場合のみ administrator を付与してください。これらは常にアプリ内での承認が必要です。必要な権限を参照してください。

セットアップ

1

managementプラグインを有効化

セルフホストブローカーでmanagementプラグインを有効にし、リスニング中であることを確認します:
rabbitmq-plugins enable rabbitmq_management
curl -u <user>:<password> http://localhost:15672/api/overview
CloudAMQPなどのマネージドプロバイダーはManagement HTTP APIをデフォルトで公開しています。次のステップへ進んでください。
2

監視ユーザーを作成

CloudThinker用の専用ユーザーを作成し、monitoring タグを付与します:
rabbitmqctl add_user cloudthinker <strong-password>
rabbitmqctl set_user_tags cloudthinker monitoring
rabbitmqctl set_permissions -p / cloudthinker "" "" ".*"
monitoring タグにより、すべての仮想ホストのキュー、エクスチェンジ、ノード、クラスターヘルスへの読み取りアクセスが付与されます。
3

ネットワークアクセスを確認

CloudThinkerがブローカーの <host>:15672(TLSの場合は <host>:15671)に到達できることを確認します。CloudThinkerのエグレスに対してファイアウォールまたはセキュリティグループで管理ポートを開放してください。
4

CloudThinkerで接続を追加

Connections → RabbitMQ に移動し、次の情報を入力します:
  • Username: ブローカーユーザー(例: cloudthinker
  • Password: ユーザーのパスワード
  • Host: ブローカーのホスト名またはIP(ホスト名のみ — スキームやポートは含めない)
  • Management Port: 管理APIポート(デフォルト 15672
  • Use TLS: HTTPS管理APIとAMQPSの場合は有効にする
  • Log Level: コネクターのログ詳細度(デフォルトは info
Connect をクリックします。CloudThinkerがManagement HTTP APIに対して認証情報を検証し、Connected ステータスを表示します。
Host にはホスト名のみを設定してください。http://https://、またはポートは含めないでください。HTTP/HTTPSの切り替えには Use TLS トグルを、ポートには Management Port を使用してください。

接続の詳細

フィールド説明デフォルト
RABBITMQ_USERNAMEmonitoring または administrator タグを持つブローカーユーザー
RABBITMQ_PASSWORDブローカーユーザーのパスワード
RABBITMQ_HOSTブローカーのホスト名またはIP(スキームなし、ポートなし)
RABBITMQ_MANAGEMENT_PORTManagement HTTP APIポート15672
RABBITMQ_USE_TLSHTTP + AMQPは Disabled、HTTPS + AMQPSは EnabledDisabled
LOG_LEVELコネクターのログ詳細度: debuginfowarnerrorinfo
管理APIはHTTPでは 15672、HTTPSでは 15671 でリスニングします。Use TLS を有効にする場合、Management Port をTLS用の管理ポートに設定してください。

必要な権限

接続ユーザーには、HTTP APIがブローカーデータを返すための管理タグが必要です:
タグアンロックされる機能
monitoringキュー、エクスチェンジ、バインディング、接続、チャンネル、ノード、クラスター、ヘルスチェックへの読み取りアクセス — すべての監視と診断機能をカバー。
administratormonitoring が提供するすべての機能、加えて書き込み操作(キューのパージ/削除、エクスチェンジの削除、定義の更新)。
最小権限の原則に従ってください: キューの監視、コンシューマーラグ、DLQ、クラスターヘルスの調査には monitoring タグで十分です。下記の書き込み操作を実行する場合にのみ administrator を使用してください。

書き込み操作には承認が必要

この接続には4つの変更ツールが有効になっています。これらは常にアプリ内承認で制限されており、エージェントは実行前にユーザーの確認を求める必要があります:
  • delete_queue — キューを削除
  • purge_queue — キュー内のすべてのメッセージを削除
  • delete_exchange — エクスチェンジを削除
  • update_definition — ブローカーの定義を変更
その他すべての機能は読み取り専用です。破壊的な操作には、ブローカーユーザーが対象の仮想ホストに対して書き込み権限を持つ administrator タグも必要です。

エージェント機能

接続後、Tony は次のことができます:
機能説明
キュー深度とメッセージレートキューの深度、準備完了 vs. 未確認、パブリッシュ/デリバリーレートのスナップショット
コンシューマーラグコンシューマーラグが高い、またはコンシューマーがゼロのキューを特定
デッドレター分析デッドレターキューで有害メッセージとエラーパターンを検査
クラスターとノードヘルスノードステータス、ローカルおよびグローバルアラーム、クォーラムクリティカルキューを確認
アラームと証明書チェックアラーム状態のブローカーと期限切れ近い証明書を検出
制限付き書き込み操作キューのパージまたは削除、エクスチェンジの削除、定義の更新 — それぞれアプリ内承認が必要

接続を確認

@tony show RabbitMQ cluster status and list all queues with their current depths

プロンプト例

@tony check all queues for abnormal depth or zero-consumer conditions and #alert on any queue growing faster than 500 msg/s
@tony identify queues with high consumer lag and inspect their dead-letter queues for poison messages, then #recommend remediation steps
@tony check cluster node status, alarms, quorum-critical queues, and certificate expiration; #alert on any node down or in alarm

トラブルシューティング

  • <host>:15672(またはTLS管理ポート)でCloudThinkerからブローカーに到達できることを確認してください。
  • AMQPポート 5672 ではなく、管理ポートがファイアウォールまたはセキュリティグループで開放されていることを確認してください。
  • セルフホストブローカーの場合、RabbitMQが 127.0.0.1 だけでなく、アクセス可能なインターフェースにバインドされていることを確認してください。
managementプラグインが有効になっていません。rabbitmq-plugins enable rabbitmq_management を実行して再試行してください。マネージドプロバイダーの場合、インスタンスでManagement HTTP APIが公開されていることを確認してください。
  • ユーザー名とパスワードを確認してください。
  • ユーザーが monitoring または administrator タグを持っていることを確認してください: rabbitmqctl set_user_tags <user> monitoring
  • 管理タグのないユーザーはAMQPへの認証はできますが、Management HTTP APIには拒否されます。
  • Use TLS がブローカーの設定と一致していることを確認してください。管理APIがHTTPSを提供している場合(通常ポート 15671)のみ有効にしてください。
  • Use TLS が有効でもポートがプレーンHTTPを提供している場合(またはその逆)、接続は失敗します。トグルと Management Port を合わせてください。
  • monitoring ユーザーが一部の仮想ホストに対して権限を持っていない可能性があります。表示させたいvhostに対して読み取り権限を付与してください: rabbitmqctl set_permissions -p <vhost> <user> "" "" ".*"

セキュリティ

  • 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
  • デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
  • 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
  • オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
  • 専用ユーザー — CloudThinker用に別個の cloudthinker ブローカーユーザーを作成し、guest や管理者アカウントを再利用しないでください
  • 転送中のTLSUse TLS を有効にして、CloudThinkerとブローカー間の管理APIトラフィックを暗号化してください

関連情報

Tony エージェント

データベース中心の監視と最適化エージェント
https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/kafka.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=f977ba21911cea4b67d99e55c7565058

Kafka 接続

Apache Kafkaストリーミングのセットアップ手順