
概要
このチェックは、Datadog Agent を通じて RabbitMQ を監視します。
- キューサイズ、コンシューマー数、未承認メッセージ、再配信メッセージなどのキューベースの統計を追跡できます。
- 待機プロセス、使用されたソケット、使用されたファイルディスクリプタなどのノードベースの統計を追跡できます。
- vhost の稼働状態や接続数を監視できます。
セットアップ
インストール
RabbitMQ チェックは Datadog Agent パッケージに含まれています。サーバーに追加でインストールする必要はありません。
構成
RabbitMQ は、RabbitMQ Management Plugin と RabbitMQ Prometheus Plugin の 2 つの方法でメトリクスを公開します。Datadog インテグレーションは両方のバージョンをサポートしています。使用するバージョンに関連する構成説明については、このファイルの指示に従ってください。また、Datadog インテグレーションには、それぞれのバージョンに対応するすぐに使えるダッシュボードとモニターが付属しており、ダッシュボードとモニターのタイトルで区別されています。
RabbitMQ の準備
RabbitMQ v3.8 から RabbitMQ Prometheus Plugin がデフォルトで有効になっています。
RabbitMQ の Prometheus プラグインバージョンは、Datadog Agent による Python 3 のサポートが必要なため、Agent v6 以降でのみサポート可能です。Prometheus プラグインバージョンのインテグレーションを構成する前に、Agent がアップデートされていることを確認してください。
インスタンス構成で prometheus_plugin
セクションを設定します。prometheus_plugin
オプションを使用する場合、Management Plugin に関連する設定は無視されます。
instances:
- prometheus_plugin:
url: http://<HOST>:15692
これにより、1 つの RabbitMQ ノードで /metrics
エンドポイントのスクレイピングが可能になります。また、Datadog は /metrics/detailed
エンドポイントからもデータを収集することができます。
instances:
- prometheus_plugin:
url: http://<HOST>:15692
unaggregated_endpoint: detailed?family=queue_coarse_metrics
これにより、/metrics/detailed
エンドポイントをスクレイピングして、キューの粗いメトリクスを収集することができます。
プラグインを有効化します。Agent ユーザーは、少なくともmonitoring
タグとこれらの必要な権限が必要です。
アクセス許可 | コマンド |
---|
conf | ^aliveness-test$ |
write | ^amq\.default$ |
read | .* |
次のコマンドで、デフォルトの vhost 用に Agent ユーザーを作成します。
rabbitmqctl add_user datadog <シークレット>
rabbitmqctl set_permissions -p / datadog "^aliveness-test$" "^amq\.default$" ".*"
rabbitmqctl set_user_tags datadog monitoring
ここで、/
はデフォルトのホストを表します。これを、指定した仮想ホスト名に設定してください。詳細については、RabbitMQ のドキュメントを参照してください。
ホスト
ホストで実行中の Agent に対してこのチェックを構成するには
メトリクスの収集
RabbitMQ メトリクスの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/
フォルダーの rabbitmq.d/conf.yaml
ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル rabbitmq.d/conf.yaml を参照してください。
注: Agent は、デフォルトですべてのキュー、vhost、ノードをチェックしますが、リストまたは正規表現を指定してこれを制限できます。例については、rabbitmq.d/conf.yaml を参照してください。
Agent を再起動します。
ログ収集
Agent バージョン 6.0 以降で利用可能
デフォルトのログファイルの場所を変更するには、RABBITMQ_LOGS
環境変数を設定するか、以下の行を RabbitMQ 構成ファイル (/etc/rabbitmq/rabbitmq.conf
) に追加します。
log.dir = /var/log/rabbit
log.file = rabbit.log
Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml
ファイルでこれを有効にします。
RabbitMQ ログの収集を開始するには、rabbitmq.d/conf.yaml
ファイルの logs
セクションを編集します。
logs:
- type: file
path: /var/log/rabbit/*.log
source: rabbitmq
service: myservice
log_processing_rules:
- type: multi_line
name: logs_starts_with_equal_sign
pattern: "="
Agent を再起動します。
コンテナ化
Datadog の Docker コンテナオートディスカバリーを活用することができます。RabbitMQ 固有の設定は、auto_conf.yaml
の設定例を参照してください。
Kubernetes などのコンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。
メトリクスの収集
パラメーター | 値 |
---|
<INTEGRATION_NAME> | rabbitmq |
<INIT_CONFIG> | 空白または {} |
<INSTANCE_CONFIG> | {"prometheus_plugin": {"url": "http://%%host%%:15692"}} |
ログ収集
Agent v6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。
パラメーター | 値 |
---|
<LOG_CONFIG> | {"source": "rabbitmq", "service": "rabbitmq", "log_processing_rules": [{"type":"multi_line","name":"logs_starts_with_equal_sign", "pattern": "="}]} |
検証
Agent の status サブコマンドを実行し、Checks セクションで rabbitmq
を探します。
収集データ
メトリクス
イベント
サービスチェック
トラブルシューティング
Prometheus Plugin への移行
Prometheus Plugin は、Management Plugin とは異なるメトリクスを公開します。
ここでは、Management Plugin から Prometheus Plugin に移行する際に注意すべき点を説明します。
- この表でメトリクスを検索してください。メトリクスの説明に
[OpenMetricsV2]
タグが含まれていれば、Prometheus Plugin で利用可能です。Management Plugin のみで利用可能なメトリクスは、説明にタグを持ちません。 - Management Plugin のメトリクスを使用しているダッシュボードやモニターは機能しません。OpenMetrics Version と表示されているダッシュボードやモニターに切り替えてください。
- デフォルトの構成では、集計されたメトリクスが収集されます。これは、例えば、キューによってタグ付けされたメトリクスが存在しないことを意味します。オプション
prometheus_plugin.unaggregated_endpoint
を構成すると、集計せずにメトリクスを取得することができます。 - サービスチェックの
rabbitmq.status
は rabbitmq.openmetrics.health
に置き換えられました。サービスチェックの rabbitmq.aliveness
は、Prometheus Plugin では同等のものはありません。
Prometheus Plugin では、いくつかのタグが変更されます。以下の表は、より一般的なタグの変更点を説明したものです。
管理 | Prometheus |
---|
queue_name | queue |
rabbitmq_vhost | vhost 、exchange_vhost 、queue_vhost |
rabbitmq_exchange | exchange |
詳しくは、タグファミリーに基づいて RabbitMQ キューをタグ付けを参照してください。
ご不明な点は、Datadog のサポートチームまでお問合せください。
その他の参考資料
お役に立つドキュメント、リンクや記事: