New Relic RabbitMQオンホスト統合は、クラスター、vhost、キュー、エクスチェンジ、コンシューマーに関連する重要なメトリックを含む、RabbitMQサービスからのメトリックと構成データをレポートします。
互換性と要件
私たちの統合は以下と互換性があります:
- メトリックデータ用のRabbitMQバージョン3.0以降。
- インベントリデータ用のRabbitMQバージョン3.7以降。
統合をインストールする前に、次の要件を満たしていることを確認してください。
RabbitMQ管理プラグインが構成されています。
rootユーザーの
PATH
にあるRabbitMQコマンドラインツールrabbitmqctl 。RabbitMQがKubernetesまたはAmazonECSで実行されていない場合は、RabbitMQを実行しているホストにインフラストラクチャエージェントをインストールする必要があります。さもないと:
インストールしてアクティブ化する
RabbitMQ統合をインストールするには、ご使用の環境の指示に従ってください。
''
その他の注意事項:
- 高度: 統合は tarball 形式 でも利用できるため、パッケージ マネージャーの外部にインストールできます。
- オンホスト統合は自動的に更新されません。最良の結果を得るには、統合パッケージとインフラストラクチャエージェントを定期的に更新してください。
重要
この統合では、ホストごとに1つのRabbitMQサーバーインスタンスのみを監視できます。
このドキュメントはインストールで役立ちましたか。
統合を構成する
統合のYAML形式の構成では、必要なログイン資格情報を配置し、データの収集方法を構成できます。どのオプションを変更するかは、セットアップと設定によって異なります。
インストール方法に応じて、統合を構成する方法はいくつかあります。
- Kubernetes経由で有効になっている場合: Kubernetesで実行されているサービスの監視をご覧ください。
- Amazon ECSを介して有効になっている場合: ECSで実行されている監視サービスを参照してください。
- ホストにインストールされている場合:統合のYAML構成ファイル
rabbitmq-config.yml
の構成を編集します。
構成例については、構成ファイルの例を参照してください。
構成ファイルには、 interval
、 timeout
、 inventory_source
などのすべての統合に適用できる共通の設定があります。これらの一般的な設定についてすべて読むには、 構成フォーマットのドキュメントを参照してください。
重要
レガシー構成/定義ファイルをまだ使用している場合は、この ドキュメント を参照してください。
RabbitMQに関連する特定の設定は、構成ファイルのenv
セクションを使用して定義されます。これらの設定は、RabbitMQインスタンスへの接続、およびその他のセキュリティ設定と機能を制御します。有効な設定のリストについては、このドキュメントの次のセクションで説明します。
クラスター環境
クラスター環境では、統合は、1 つのノードに接続された統合の 1 つのインスタンスのみを使用して、すべてのクラスターからメトリックを収集します。このインスタンスは METRICS=true
と INVENTORY=true
を使用する必要があります。残りのノードでは、 METRICS=false
と INVENTORY=true
を使用してインベントリのみを収集する必要があります。これらの詳細については、 インスタンス設定を参照してください。
Kubernetesでクラスター環境を実行している場合は、RabbitMQをStatefulSetとしてデプロイし、RabbitMQポッドからすべてのメトリックをクエリするようにエージェントを構成する必要があります。構成ファイルの自動検出一致条件を次の値に設定します。
discovery: command: exec: /var/db/newrelic-infra/nri-discovery-kubernetes match: podName: rabbitmq-0
重要
統合には、収集できるキューの数に制限があります。キューの数が 2000 を超える場合、キュー フィルターの適用後、統合はそれらのいずれも報告しません。すべてのメトリックを保持する回避策を提供しますが、エンティティの登録は無効になります。回避策を適用するには、次の環境変数を構成ファイルに追加します。
integrations:- name: nri-rabbitmq env: # Integration configuration parameters. METRICS: true DISABLE_ENTITIES: true QUEUES_MAX_LIMIT: "0"
RabbitMQインスタンス設定
RabbitMQ統合は、Metrics( M )とInventory( I )の両方の情報を収集します。以下の[適用先]列をチェックして、特定のコレクションごとに使用できる設定を見つけてください。
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
設定 | 説明 | デフォルト | に適用されます |
---|---|---|---|
ホスト名 | RabbitMQ管理プラグインのホスト名またはIP。 | ローカルホスト | M / I |
ポート | RabbitMQ管理プラグインのポート番号。 | 15672 | M / I |
ユーザー名 | RabbitMQ管理プラグインに接続しているユーザー。 | 該当なし | M / I |
パスワード | RabbitMQ管理プラグインに接続するためのパスワード。 | 該当なし | M / I |
タイムアウト | RabbitMQ エンドポイントへの接続をタイムアウトする秒単位のタイムアウト。 | 30 | M / I |
MANAGEMENT_PATH_PREFIX | RabbitMQ管理プレフィックス。 | 該当なし | M / I |
USE_SSL | SSLを使用して接続するオプション。 | false | M / I |
CA_BUNDLE_DIR | ホスト上のSSL証明書の場所。 | 該当なし | M / I |
CA_BUNDLE_FILE | ホスト上のSSL証明書の場所。 | 該当なし | M / I |
NODE_NAME_OVERRIDE | RabbitMQから取得する代わりに、ローカルノード名をオーバーライドします。 | 該当なし | M / I |
CONFIG_PATH | RabbitMQ構成ファイルへの絶対パス。 | 該当なし | M / I |
キュー | 文字列のJSON配列の形式で収集するキュー名。キュー名がこれらのいずれかと完全に一致する場合(大文字と小文字が区別されます)、キュー名が収集されます。 例:
| 該当なし | 私 |
QUEUES_REGEXES | REGEX文字列のJSON配列の形式で収集するキュー名。キュー名がこれらのいずれかに一致する場合、それが収集されます。 例:
| 該当なし | M / I |
交換 | 文字列のJSON配列の形式で収集する名前を交換します。交換名がこれらのいずれかと完全に一致する場合(大文字と小文字が区別されます)、それが収集されます。 | 該当なし | M / I |
EXCHANGES_REGEXES | 名前を交換して、REGEX文字列のJSON配列の形式で収集します。交換名がこれらのいずれかに一致する場合、それが収集されます。 | 該当なし | M / I |
VHOSTS | 文字列のJSON配列の形式で収集する仮想ホスト名。 vhost名がこれらの1つと完全に一致する場合(大文字と小文字が区別されます)、それが含まれます。これは、指定されたvhostsに属するエンティティの収集にも影響します。 | 該当なし | M / I |
VHOSTS_REGEXES | REGEX文字列のJSON配列の形式で収集する仮想ホスト名。 vhost名がこれらのいずれかに一致する場合、vhostとこのvhostに属するエンティティが収集されます。 | 該当なし | M / I |
METRICS | メトリックのみの収集を有効にするには、 | false | |
在庫 | インベントリのみの収集を有効にするには、 | false | |
イベント | イベントのみの収集を有効にするには、 | false | |
DISABLE_ENTITIES | メトリック収集中にエンティティのインベントリ エントリを作成するかどうかを構成します。大量のキューを収集するための回避策としてのみ使用してください。 | false | |
QUEUES_MAX_LIMIT | 処理できるキューの最大量を定義します。この数に達すると、すべてのキューが削除されます。'0' として定義されている場合、制限は適用されません。これを DISABLE_ENTITIES=true と共に使用して、エージェントのメモリの増加を回避します。 | 2000 |
これらの設定の値は、いくつかの方法で定義できます。
- 設定ファイルに直接値を追加します。これが最も一般的な方法です。
{{}}
表記を使用して環境変数の値を置き換えます。これには、インフラストラクチャエージェントv1.14.0以降が必要です。詳細はこちらをご覧ください。- シークレット管理の使用。これを使用して、構成ファイルにプレーンテキストで公開されるパスワードなどの機密情報を保護します。詳細については、シークレット管理を参照してください。
ラベル/カスタム属性
環境変数を使用して、構成設定を制御できます。 、インフラストラクチャ エージェントに渡されます。 この機能の使用方法については、 インフラストラクチャ エージェントの構成 を参照してください。 ラベルを使用してメトリックをさらに装飾できます。ラベルを使用すると、メトリクスにキーと値のペアの属性を追加して、メトリクスのクエリ、フィルター、またはグループ化に使用できます。
デフォルトのサンプル構成ファイルにはラベルの例が含まれていますが、これらは必須ではないため、選択したラベルを削除、変更、または追加できます。
labels: env: production role: rabbitmq
構成例
構成ファイルの例を次に示します。
オンホスト統合構成の一般的な構造の詳細については、「 構成」を参照してください。
データを見つけて使用する
このサービスからのデータは、 統合ダッシュボードに報告されます。
メトリックは、これらのイベントタイプに関連付けられています。
トラブルシューティングの目的で、またはカスタムチャートとダッシュボードを作成するために、このデータをクエリできます。
データを検索して使用する方法の詳細については、統合データについてを参照してください。
メトリックデータ
RabbitMQ統合は、次のメトリックデータ属性を収集します。各メトリック名には、カテゴリインジケータとキューなどのピリオドがプレフィックスとして付けられます。またはノード。
RabbitMQvhostサンプルイベント
これらの属性は、 RabbitmqVhostSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
| ブロックされた状態の現在の接続の数。 |
| 状態がブロックされている現在の接続の数。 |
| 閉じた状態の現在の接続の数。 |
| 閉じている状態の現在の接続の数。 |
| ステートフロー内の現在の接続の数。 |
vhost.connectionsOpening | 状態が開いている現在の接続の数。 |
vhost.connectionsRunning | 実行中の状態の現在の接続の数。 |
vhost.connectionsStarting | 開始状態の現在の接続の数。 |
vhost.connectionsTotal | 特定のrabbitmq仮想ホストへの現在の接続の数。 |
vhost.connectionsTuning | 状態調整中の現在の接続の数。 |
RabbitMQノードのサンプルイベント
これらの属性は、 RabbitmqNodeSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
node.averageErlangProcessesWaiting | 実行を待機しているErlangプロセスの平均数。 RabbitMQでは、これは |
| ノードディスクアラーム(0または1)。 0はアラームが作動していないことを示し、1はアラームが作動していることを示します。 RabbitMQでは、これは |
| 現在の空きディスク容量(バイト単位)。 RabbitMQでは、これは |
| ファイル記述子の総数。 RabbitMQでは、これは |
| 使用されたファイル記述子の総数。 RabbitMQでは、これは |
| ソケットとして使用されるファイル記述子の数。 RabbitMQでは、これは |
| ソケットとして使用可能なファイル記述子の総数。 RabbitMQでは、これは |
| ホストメモリアラーム(0または1)。 0はアラームが作動していないことを示し、1はアラームが作動していることを示します。 RabbitMQでは、これは |
| バイト単位で使用されるメモリ。 RabbitMQでは、これは |
| ノードごとに見られるネットワークパーティションの数。 RabbitMQでは、これは |
| Erlangプロセスの制限。 RabbitMQでは、これは |
| 使用されるErlangプロセス。 RabbitMQでは、これは |
| 実行中のノード(0または1)。 0はノードが実行されていないことを示し、1はノードが実行されていることを示します。 RabbitMQでは、これは |
RabbitMQ交換サンプルイベント
これらの属性は、 RabbitmqExchangeSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
| 特定の交換のバインディングの数。 |
| チャネルからこの交換に公開されたメッセージの数。 RabbitMQでは、これは |
| チャネルからこの交換に公開されたメッセージの1秒あたりのレート。 RabbitMQでは、これは |
| この交換からキューに公開されたメッセージの数。 RabbitMQでは、これは |
| この交換から1秒あたりのキューに公開されたメッセージのレート。 RabbitMQでは、これは |
RabbitMQキューのサンプルイベント
これらの属性は、 RabbitmqQueueSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
| 特定のキューのバインディングの数。 |
| キューに送信されたメッセージをすぐに受信できるアクティブなコンシューマーの数。 RabbitMQでは、これは |
| キューごとのコンシューマーの数。 RabbitMQでは、これはコンシューマーと見なされます。 |
| キューのコンシューマーが新しいメッセージを受け取ることができる時間の比率(1秒あたりの使用率)。 RabbitMQでは、これは このメトリックは、RabbitMQバージョン3.3以降でのみ使用できます。 |
| キューに関連付けられたErlangプロセスによって消費されたバイト。 RabbitMQでは、これは |
| クライアントに配信する準備ができているメッセージの数。 RabbitMQでは、これは |
| 1秒あたりにクライアントに配信する準備ができているメッセージの割合。 RabbitMQでは、これは |
| クライアントに配信されたがまだ確認されていないキューごとのメッセージの数。 RabbitMQでは、これは |
| クライアントに配信されたが、1秒あたりにまだ確認されていないキューあたりのメッセージの割合。 RabbitMQでは、これは |
| クライアントに配信され、キューごとに確認されたメッセージの数。 RabbitMQでは、これは |
| クライアントに配信され、キューごとに1秒あたりに確認応答されたメッセージのレート。 RabbitMQでは、これは |
| キューごとに確認モードでコンシューマーに配信されたメッセージの数。 RabbitMQでは、これは |
| 確認応答モードでコンシューマーに配信されるメッセージの1秒あたりのキューあたりの割合。 RabbitMQでは、これは |
| キューごとに公開されたメッセージの数。 RabbitMQでは、これは |
| キューごとに1秒あたりに発行されるメッセージの割合。 RabbitMQでは、これは |
| キューごとに再配信フラグが設定された確認応答モードのメッセージのサブセットの数。 RabbitMQでは、これは |
| 1秒あたりのキューごとに再配信フラグが設定された確認応答モードのメッセージのサブセットのレート。 RabbitMQでは、これは |
| コンシューマーへの確認応答モード、コンシューマーへの非確認応答モード、basic.getに応答する確認応答モード、およびbasic.getに応答する非確認応答モードで配信されたメッセージの合計。キューごと。 RabbitMQでは、これは |
| 消費者への確認応答モード、消費者への非確認応答モード、basic.getに応答する確認応答モード、およびキューごとのbasic.getに応答する非確認応答モードで配信されるメッセージの合計の1秒あたりのレート。 RabbitMQでは、これは |
| キュー内のメッセージの総数。 RabbitMQでは、これは |
| キュー内の合計メッセージの割合。 RabbitMQでは、これは |
システムメタデータ
その他のメタデータは次のとおりです。
名前 | 説明 |
---|---|
| RabbitMQサーバーのバージョン。例:3.6.7。 |
| RabbitMQ管理プラグインのバージョン。例:3.6.7。 |
在庫データ
統合により、RabbitMQの構成パラメーターが/etc/rabbitmq/rabbitmq.conf
ファイルに取り込まれます。インベントリデータは、 RabbitMQバージョン3.7以降でのみキャプチャされます。 インベントリデータは、[インフラストラクチャインベントリ]ページのconfig/rabbitmq
ソースの下に表示されます。
注意
rabbit.conf
ファイルに入力した機密情報は、[インフラストラクチャインベントリ]ページに表示されることに注意してください。これには、AWSからの次のようなアイテムが含まれます。
cluster_formation.aws.secret_key,cluster_formation.aws.access_key_id
トラブルシューティング
トラブルシューティングのヒント:
ソースコードを確認してください
この統合はオープン ソース ソフトウェアです。つまり、ソース コードを参照して改善を送信したり、独自のフォークを作成してビルドしたりできます。