New Relic RabbitMQオンホスト統合は、クラスター、vhost、キュー、エクスチェンジ、コンシューマーに関連する重要なメトリックを含む、RabbitMQサービスからのメトリックと構成データをレポートします。
互換性と要件
私たちの統合は以下と互換性があります:
- メトリックデータ用のRabbitMQバージョン3.0以降。
- インベントリデータ用のRabbitMQバージョン3.7以降。
統合をインストールする前に、次の要件を満たしていることを確認してください。
RabbitMQ管理プラグインが構成されています。
rootユーザーの
PATH
にあるRabbitMQコマンドラインツールrabbitmqctl 。RabbitMQがKubernetesまたはAmazonECSで実行されていない場合は、RabbitMQを実行しているホストにインフラストラクチャエージェントをインストールする必要があります。さもないと:
インストールしてアクティブ化する
RabbitMQ統合をインストールするには、ご使用の環境の指示に従ってください。
その他の注意事項:
Advanced:
インテグレーションは、パッケージマネージャの外部にインストールできるように、 tarball 形式でも利用できます。
On-host integrations do not automatically update.
最善の結果を得るため、インテグレーションパッケージの更新とInfrastructureエージェントの更新を定期的に実施してください。
重要
この統合では、ホストごとに1つのRabbitMQサーバーインスタンスのみを監視できます。
このドキュメントはインストールの役に立ちましたか?
統合を構成する
統合のYAML形式の構成では、必要なログイン資格情報を配置し、データの収集方法を構成できます。どのオプションを変更するかは、セットアップと設定によって異なります。
インストール方法に応じて、統合を構成する方法はいくつかあります。
- Kubernetes経由で有効になっている場合: Kubernetesで実行されているサービスの監視をご覧ください。
- Amazon ECSを介して有効になっている場合: ECSで実行されている監視サービスを参照してください。
- ホストにインストールされている場合:統合のYAML構成ファイル
rabbitmq-config.yml
の構成を編集します。
構成例については、構成ファイルの例を参照してください。
構成ファイルには、 interval
、 timeout
、 inventory_source
などのすべての統合に適用できる共通の設定があります。これらの一般的な設定についてすべて読むには、 構成フォーマットのドキュメントを参照してください。
重要
レガシー構成/定義ファイルをまだ使用している場合は、この ドキュメント を参照してください。
RabbitMQに関連する特定の設定は、構成ファイルのenv
セクションを使用して定義されます。これらの設定は、RabbitMQインスタンスへの接続、およびその他のセキュリティ設定と機能を制御します。有効な設定のリストについては、このドキュメントの次のセクションで説明します。
Cluster environments
クラスター環境では、統合は、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 インテグレーションは、メトリクス ( M ) 情報とインベントリ ( I ) 情報の両方を収集します。 それぞれの特定のコレクションに使用できる設定を確認するには、以下のApplies To列を確認してください。
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''
設定 | 説明 | デフォルト | に適用されます |
---|---|---|---|
| RabbitMQ管理プラグインのホスト名またはIP。 |
| M / I |
| RabbitMQ管理プラグインのポート番号。 |
| M / I |
| RabbitMQ管理プラグインに接続しているユーザー。 | 該当なし | M / I |
| RabbitMQ管理プラグインに接続するためのパスワード。 | 該当なし | M / I |
| RabbitMQ エンドポイントへの接続をタイムアウトする秒単位のタイムアウト。 |
| M / I |
| RabbitMQ管理プレフィックス。 | 該当なし | M / I |
| SSLを使用して接続するオプション。 |
| M / I |
| ホスト上のSSL証明書の場所。 | 該当なし | M / I |
| ホスト上のSSL証明書の場所。 | 該当なし | M / I |
| RabbitMQから取得する代わりに、ローカルノード名をオーバーライドします。 | 該当なし | M / I |
| RabbitMQ構成ファイルへの絶対パス。 | 該当なし | M / I |
| 文字列のJSON配列の形式で収集するキュー名。キュー名がこれらのいずれかと完全に一致する場合(大文字と小文字が区別されます)、キュー名が収集されます。 例:
| 該当なし | 私 |
| REGEX文字列のJSON配列の形式で収集するキュー名。キュー名がこれらのいずれかに一致する場合、それが収集されます。 例:
| 該当なし | M / I |
| 文字列のJSON配列の形式で収集する名前を交換します。交換名がこれらのいずれかと完全に一致する場合(大文字と小文字が区別されます)、それが収集されます。 | 該当なし | M / I |
| 名前を交換して、REGEX文字列のJSON配列の形式で収集します。交換名がこれらのいずれかに一致する場合、それが収集されます。 | 該当なし | M / I |
| 文字列のJSON配列の形式で収集する仮想ホスト名。 vhost名がこれらの1つと完全に一致する場合(大文字と小文字が区別されます)、それが含まれます。これは、指定されたvhostsに属するエンティティの収集にも影響します。 | 該当なし | M / I |
| REGEX文字列のJSON配列の形式で収集する仮想ホスト名。 vhost名がこれらのいずれかに一致する場合、vhostとこのvhostに属するエンティティが収集されます。 | 該当なし | M / I |
| メトリックのみの収集を有効にするには、 |
| |
| インベントリのみの収集を有効にするには、 |
| |
| イベントのみの収集を有効にするには、 |
| |
| メトリック収集中にエンティティのインベントリ エントリを作成するかどうかを構成します。大量のキューを収集するための回避策としてのみ使用してください。 |
| |
| 処理できるキューの最大数を定義します。この数に達すると、すべてのキューが削除されます。 '0' と定義されている場合、制限は適用されません。これは、エージェントのメモリの増加を回避するために | 2000 |
これらの設定の値は、いくつかの方法で定義できます。
- 設定ファイルに直接値を追加します。これが最も一般的な方法です。
{{}}
表記を使用して環境変数の値を置き換えます。これには、インフラストラクチャエージェントv1.14.0以降が必要です。詳細はこちらをご覧ください。- シークレット管理の使用。これを使用して、構成ファイルにプレーンテキストで公開されるパスワードなどの機密情報を保護します。詳細については、シークレット管理を参照してください。
ラベル/カスタム属性
環境変数は、 などの構成設定を制御するために使用でき、その後、インフラストラクチャエージェントに渡されます。 この機能の使用方法については、 「インフラストラクチャエージェントの構成」を参照してください。 ラベルを使用してメトリクスをさらに装飾することができます。 ラベルを使用すると、メトリクスにキー値のペア属性を追加して、メトリクスのクエリ、フィルタリング、またはグループ化に使用できます。
デフォルトのサンプル設定ファイルにはラベルの例が含まれていますが、必須ではないため、必要に応じてラベルを削除、変更、または追加することができます。
labels: env: production role: rabbitmq
構成例
構成ファイルの例を次に示します。
オンホスト統合構成の一般的な構造の詳細については、「 構成」を参照してください。
データを見つけて使用する
このサービスからのデータは、 統合ダッシュボードに報告されます。
メトリックは、これらのイベントタイプに関連付けられています。
トラブルシューティングの目的で、またはカスタムチャートとダッシュボードを作成するために、このデータをクエリできます。
データを検索して使用する方法の詳細については、統合データについてを参照してください。
メトリックデータ
RabbitMQ統合は、次のメトリックデータ属性を収集します。各メトリック名には、カテゴリインジケータとキューなどのピリオドがプレフィックスとして付けられます。またはノード。
RabbitMQvhostサンプルイベント
これらの属性は、 RabbitmqVhostSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
| ブロックされた状態の現在の接続の数。 |
| 状態がブロックされている現在の接続の数。 |
| 閉じた状態の現在の接続の数。 |
| 閉じている状態の現在の接続の数。 |
| ステートフロー内の現在の接続の数。 |
| 状態が開いている現在の接続の数。 |
| 実行中の状態の現在の接続の数。 |
vhost.connectionsStarting | 開始状態の現在の接続の数。 |
| 特定のrabbitmq仮想ホストへの現在の接続の数。 |
| 状態調整中の現在の接続の数。 |
RabbitMQノードのサンプルイベント
これらの属性は、 RabbitmqNodeSample
イベントタイプに関連付けられています。
名前 | 説明 |
---|---|
| 実行を待機しているErlangプロセスの平均数。 RabbitMQでは、これは |
| ノード ディスク アラーム ( |
| 現在の空きディスク容量(バイト単位)。 RabbitMQでは、これは |
| ファイル記述子の総数。 RabbitMQでは、これは |
| 使用されたファイル記述子の総数。 RabbitMQでは、これは |
| ソケットとして使用されるファイル記述子の数。 RabbitMQでは、これは |
| ソケットとして使用可能なファイル記述子の総数。 RabbitMQでは、これは |
| ホスト メモリ アラーム ( |
| バイト単位で使用されるメモリ。 RabbitMQでは、これは |
| ノードごとに見られるネットワークパーティションの数。 RabbitMQでは、これは |
| Erlangプロセスの制限。 RabbitMQでは、これは |
| 使用されるErlangプロセス。 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では、これは |
| キューごとに、消費者に確認応答モードで配信されたメッセージ、消費者に非確認応答モードで配信されたメッセージ、 |
| キューごとに、消費者に確認応答モードで配信されたメッセージ、消費者に非確認応答モードで配信されたメッセージ、 |
| キュー内のメッセージの総数。 RabbitMQでは、これは |
| キュー内の合計メッセージの割合。 RabbitMQでは、これは |
システムメタデータ
その他のメタデータは次のとおりです。
名前 | 説明 |
---|---|
| RabbitMQサーバーのバージョン。例:3.6.7。 |
| RabbitMQ管理プラグインのバージョン。例:3.6.7。 |
在庫データ
インテグレーションは、 /etc/rabbitmq/rabbitmq.conf
ファイルに RabbitMQ の設定ファイルをキャプチャします。 インベントリデータは RabbitMQ バージョン 3.7 Inventory以上でのみキャプチャされます。 インベントリデータは、 インフラストラクチャUI の ページ のconfig/rabbitmq
ソースの下に表示されます。
注意
rabbit.conf
ファイルに入力した機密情報は、インフラストラクチャ UI のInventoryページに表示されることに注意してください。 これには、AWS からの次のような項目が含まれます。
cluster_formation.aws.secret_key,cluster_formation.aws.access_key_id
トラブルシューティング
トラブルシューティングのヒント:
ソースコードを確認してください
この統合はオープン ソース ソフトウェアです。つまり、ソース コードを参照して改善を送信したり、独自のフォークを作成してビルドしたりできます。