• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

OpenTelemetryを使用してセルフホスト型RabbitMQ監視する

モニターOpenTelemetry Collectorインストールして構成することで、Linux ホスト上で実行されるRabbitMQ 。 この包括的なガイドでは、Debian、Ubuntu、RHEL、および CentOS システムのインストール、設定、検証について説明します。

インストレーション手順

セルフホスト型 RabbitMQ インスタンスの監視を設定するには、次の手順に従います。

あなたが始める前に

環境が次の要件を満たしていることを確認してください。

RabbitMQ管理プラグインを有効にする

管理プラグインは、OpenTelemetry Collector がスクレイピングする API を公開します。

bash
$
sudo rabbitmq-plugins enable rabbitmq_management

動作していることを確認します:

bash
$
curl -I -u admin:password http://localhost:15672/api/overview

応答にHTTP/1.1 200 OKが表示されます。

コレクターを構成する

/etc/otelcol-contrib/config.yamlを作成または置換:

receivers:
rabbitmq:
endpoint: http://localhost:15672
username: admin
password: password
collection_interval: 30s
metrics:
# Queue Metrics (essential for message flow and backlog)
rabbitmq.consumer.count:
enabled: true
rabbitmq.message.delivered:
enabled: true
rabbitmq.message.published:
enabled: true
rabbitmq.message.acknowledged:
enabled: true
rabbitmq.message.dropped:
enabled: true
rabbitmq.message.current:
enabled: true # Crucial for monitoring queue backlog, includes 'ready' and 'unacknowledged' states
# Node Health Metrics (critical for server resource monitoring)
rabbitmq.node.disk_free:
enabled: true
rabbitmq.node.disk_free_limit:
enabled: true
rabbitmq.node.disk_free_alarm:
enabled: true
rabbitmq.node.mem_used:
enabled: true
rabbitmq.node.mem_limit:
enabled: true
rabbitmq.node.mem_alarm:
enabled: true
rabbitmq.node.mem_used_details.rate:
enabled: true
rabbitmq.node.fd_used:
enabled: true
rabbitmq.node.fd_total:
enabled: true
rabbitmq.node.sockets_used:
enabled: true
rabbitmq.node.sockets_total:
enabled: true
rabbitmq.node.proc_used:
enabled: true
rabbitmq.node.proc_total:
enabled: true
rabbitmq.node.uptime:
enabled: true
rabbitmq.node.run_queue:
enabled: true
rabbitmq.node.processors:
enabled: true
rabbitmq.node.context_switches_details.rate:
enabled: true
rabbitmq.node.gc_num_details.rate:
enabled: true
rabbitmq.node.gc_bytes_reclaimed_details.rate:
enabled: true
# I/O Metrics (important for understanding disk and network activity)
rabbitmq.node.io_read_count_details.rate:
enabled: true
rabbitmq.node.io_read_bytes_details.rate:
enabled: true
rabbitmq.node.io_read_avg_time_details.rate:
enabled: true
rabbitmq.node.io_write_count_details.rate:
enabled: true
rabbitmq.node.io_write_bytes_details.rate:
enabled: true
rabbitmq.node.io_write_avg_time_details.rate:
enabled: true
rabbitmq.node.io_sync_count_details.rate:
enabled: true
rabbitmq.node.io_sync_avg_time_details.rate:
enabled: true
rabbitmq.node.io_seek_count_details.rate:
enabled: true
rabbitmq.node.io_seek_avg_time_details.rate:
enabled: true
rabbitmq.node.io_reopen_count_details.rate:
enabled: true
# Mnesia and Store Metrics (for internal database and message storage)
rabbitmq.node.mnesia_ram_tx_count_details.rate:
enabled: true
rabbitmq.node.mnesia_disk_tx_count_details.rate:
enabled: true
rabbitmq.node.msg_store_read_count_details.rate:
enabled: true
rabbitmq.node.msg_store_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_write_count_details.rate:
enabled: true
rabbitmq.node.queue_index_read_count_details.rate:
enabled: true
# Connection/Channel/Queue Lifecycle Metrics
rabbitmq.node.connection_created_details.rate:
enabled: true
rabbitmq.node.connection_closed_details.rate:
enabled: true
rabbitmq.node.channel_created_details.rate:
enabled: true
rabbitmq.node.channel_closed_details.rate:
enabled: true
rabbitmq.node.queue_declared_details.rate:
enabled: true
rabbitmq.node.queue_created_details.rate:
enabled: true
rabbitmq.node.queue_deleted_details.rate:
enabled: true
# processors: Process data before exporting.
processors:
resourcedetection:
detectors: [system]
system:
resource_attributes:
host.name:
enabled: true
host.id:
enabled: true
resource:
attributes:
- key: instrumentation.provider
value: opentelemetry
action: upsert
- key: rabbitmq.deployment.name
value: my-rabbitmq-server # Replace with your server name
action: upsert
batch:
send_batch_size: 1024
timeout: 30s
exporters:
otlphttp/newrelic:
endpoint: ${env:NEWRELIC_OTLP_ENDPOINT}
headers:
api-key: ${env:NEWRELIC_LICENSE_KEY}
compression: gzip
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]

設定で次の値を更新します。

  • endpoint: RabbitMQ 管理 API URL (デフォルト: http://localhost:15672)
  • username password : RabbitMQ の認証情報
  • rabbitmq.deployment.name: このRabbitMQの一意の名前
  • collection_interval: メトリクスをスクレイピングする頻度(デフォルト: 30秒)

環境変数の設定

環境変数の systemd オーバーライド ファイルを作成します。

bash
$
sudo mkdir -p /etc/systemd/system/otelcol-contrib.service.d

New Relic のリージョンを選択してください:

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

YOUR_LICENSE_KEY New Relicライセンスキーに置き換えます。

bash
$
cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
$
[Service]
$
Environment="NEWRELIC_OTLP_ENDPOINT=https://otlp.eu01.nr-data.net:4318"
$
Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
$
EOF

YOUR_LICENSE_KEY New Relicライセンスキーに置き換えます。

systemd をリロードし、コレクターを再起動します。

bash
$
sudo systemctl daemon-reload
$
sudo systemctl restart otelcol-contrib

New Relicでデータを検証する

サービスステータスを確認します。

bash
$
sudo systemctl status otelcol-contrib

出力にはactive (running)が表示されます。

最近のログを表示:

bash
$
sudo journalctl -u otelcol-contrib -n 50 --no-pager

メトリクス収集が成功したことを示すメッセージを探します。

INFO RabbitmqReceiver Successfully scraped rabbitmq metrics

New Relicでメトリクスを検証する:

データが表示されるまで 2 ~ 3 分待ってから、書き込みビルダーで次のコマンドを実行します。

SELECT count(*)
FROM Metric
WHERE metricName LIKE 'rabbitmq.%'
AND instrumentation.provider = 'opentelemetry'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
FACET metricName
SINCE 10 minutes ago

次のようなメトリクス名が表示されるはずです。

  • rabbitmq.queue.count - キューの数
  • rabbitmq.queue.message.count - キュー全体のメッセージの合計
  • rabbitmq.connection.count - アクティブな接続
  • rabbitmq.consumer.count - アクティブな消費者

ヒント

5 分経ってもデータが表示されない場合は、以下のトラブルシューティングのセクションを確認してください。

(オプション) RabbitMQをNew Relicに転送する

Metrix に加えて、 RabbitMQログ アプリケーションをNew Relicに転送して、包括的な観察を行うことができます。 これは、メトリクスとログ全体で問題を相互に関連付けるのに役立ちます。

重要

ログ転送には追加の設定権限とシステム権限が必要です。 続行する前に必要なアクセス権があることを確認してください。

ファイルログ レシーバーを追加するには、 /etc/otelcol-contrib/config.yamlを更新します

receivers:
rabbitmq:
# ... existing rabbitmq config ...
# Add filelog receiver for RabbitMQ logs
filelog/rabbitmq:
include:
- /var/log/rabbitmq/*.log
- /var/log/rabbitmq/**/*.log
include_file_path: true
include_file_name: false
operators:
- type: regex_parser
regex: '^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}) \[(?P<level>\w+)\] <(?P<pid>[^>]+)> (?P<message>.*)$'
timestamp:
parse_from: attributes.timestamp
layout: '%Y-%m-%d %H:%M:%S.%L'
severity:
parse_from: attributes.severity
processors:
# ... existing processors ...
transform/rabbitmq_logs:
log_statements:
- context: resource
statements:
- set(attributes["rabbitmq.display.name"], Concat(["server", attributes["rabbitmq.deployment.name"]], ":"))
service:
pipelines:
metrics:
receivers: [rabbitmq]
processors: [resourcedetection, resource, batch]
exporters: [otlphttp/newrelic]
logs/rabbitmq:
receivers: [filelog]
processors: [batch, resource, transform/rabbitmq_logs]
exporters: [otlphttp/newrelic]

コレクターにログの読み取り権限を付与します。1 つの方法を選択してください:

rabbitmq グループに追加:

bash
$
sudo usermod -a -G rabbitmq otelcol-contrib

または、ファイルの権限を設定します。

bash
$
sudo chmod 644 /var/log/rabbitmq/*.log

コレクターを再起動します。

bash
$
sudo systemctl restart otelcol-contrib

New Relic でログが収集されていることを確認します。

SELECT count(*)
FROM Log
WHERE service.name = 'rabbitmq'
AND rabbitmq.deployment.name = 'my-rabbitmq-server'
SINCE 10 minutes ago

データを検索する

数分後、 RabbitMQメトリクスがNew Relicに表示されるはずです。 New Relic UIのさまざまなビューでRabbitMQメトリクスを探索する詳細な手順については、 「データの検索と書き込み」を参照してください。

NRQL を使用してデータをクエリすることもできます。

FROM Metric SELECT * WHERE rabbitmq.deployment.name = 'my-rabbitmq-server'

トラブルシューティング

次のステップ

RabbitMQ監視の設定が完了したので、監視機能を強化できます。

データを探索する:

監視の強化:

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.