IBM MQキューマネージャーがVM、ベアメタルサーバー、またはEC2インスタンスなどの従来のインフラストラクチャで実行されている場合、コンテナオーケストレーションの複雑さなしにパフォーマンスをモニターする信頼できる方法が必要です。このガイドでは、New Relic's Distribution of OpenTelemetry(NRDOT)コレクターまたはOpenTelemetry Collector Contribを使用して、包括的なIBM MQ監視をセットアップする方法を説明します。
キューマネージャーからキューの深さ、スループットメトリクス、チャネルステータスを自動的に収集するようにコレクターを設定し、そのデータをNew Relicに送信すると、すぐに使用できるダッシュボードとアラートを備えた整理されたエンティティとして表示されます。このアプローチは、頻繁に変更されない安定したキューマネージャーのセットがある場合に最適です。
ヒント
キューマネージャーが代わりにKubernetes上で実行されている場合は、Kubernetes上のIBM MQのモニターを参照してください。
あなたが始める前に
コレクターを設定する前に、以下のコンポーネントが必要です:
- 有効なライセンスキーを持つNew Relicアカウント
- ご使用のリージョンのNew Relic OTLPエンドポイント
- PCFクエリ権限を持つサーバー接続チャネルで実行されているIBM MQキューマネージャー
- IBM MQ mq-metric-samplesエクスポーターがインストールされ、各キューマネージャーでメトリクスを公開していること。キューマネージャーごとに1つのエクスポーター
- NRDOTコレクターまたはOpenTelemetry Collector ContribをインストールするためのLinuxホスト
ヒント
より優れたスループットメトリクスのために、ALTER QMGR STATMQI(ON) STATQ(ON)を使用してキューマネージャーでMQI統計を有効にすることをお勧めします。
IBM MQの監視のセットアップ
コレクターディストリビューションを選択し、完全なセットアッププロセスに従います:
NRDOTコレクターをインストールします
ご使用のLinuxディストリビューション用のNRDOTパッケージをダウンロードし、インストールします。<NRDOT_VERSION>を、nrdot-collector-releasesページの最新のリリースタグに置き換えます(たとえば、v0.12.0)。
Debian/Ubuntuの場合:
bash$curl -LO https://github.com/newrelic/nrdot-collector-releases/releases/download/<NRDOT_VERSION>/nrdot-collector_<NRDOT_VERSION>_linux_amd64.deb$sudo dpkg -i nrdot-collector_<NRDOT_VERSION>_linux_amd64.debRHEL/Rocky/Amazon Linuxの場合:
bash$curl -LO https://github.com/newrelic/nrdot-collector-releases/releases/download/<NRDOT_VERSION>/nrdot-collector_<NRDOT_VERSION>_linux_amd64.rpm$sudo dnf install ./nrdot-collector_<NRDOT_VERSION>_linux_amd64.rpm
NRDOT Collectorを構成する
IBM MQメトリクスを収集してNew Relicに送信するようにNRDOT Collectorを設定します。この設定は、3つの主なジョブを処理します:
- キューマネージャーに接続する
- データのクリーンアップ
- New Relicへのデータ送信
必要な権限を持つディレクトリとコレクターの設定ファイルを作成するには、次を実行します:
bash$# Config directory — group-readable by nrdot only (it will hold secrets)$sudo install -d -o root -g nrdot -m 0750 /etc/nrdot-collector$$# Create the config file with correct permissions$sudo install -o root -g nrdot -m 0640 /dev/null /etc/nrdot-collector/ibmmq-config.yaml$sudo -u nrdot ${EDITOR:-vi} /etc/nrdot-collector/ibmmq-config.yaml以下の設定を作成した設定ファイルに貼り付け、プレースホルダーを実際の値に置き換えます:
extensions:health_check:endpoint: 127.0.0.1:13133processors:filter/ibmmq-overhead:metrics:exclude:match_type: regexpmetric_names:- "^go_.*"- "^process_.*"- "^promhttp_.*"- "^scrape_.*"filter/ibmmq-queues:metrics:datapoint:- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^SYSTEM\\.(ADMIN\\.|MQSC\\.|DEFAULT\\.|AUTH\\.|CHANNEL\\.|CHLAUTH\\.|CICS\\.|SYNCPOINT\\.|INTERNAL\\.|PENDING\\.|PROTECTION\\.|BROKER\\.|AMQP\\.|DOTNET\\.|REST\\.|RETAINED\\.|SELECTION\\.|DURABLE\\.|HIERARCHY\\.|DDELAY\\.)")'- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^SYSTEM\\.CLUSTER\\.(COMMAND|HISTORY)\\.QUEUE$")'- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^AMQ\\.")'resourcedetection:detectors: [env, ec2, system]system:resource_attributes:host.name:enabled: truehost.id:enabled: truetransform/ibmmq-cleanup:metric_statements:- context: resourcestatements:- delete_key(attributes, "server.address")- delete_key(attributes, "server.port")- delete_key(attributes, "url.scheme")- context: datapointstatements:# Rename the injected identity labels to their OTel dotted form — the# names New Relic's IBM MQ entity synthesis keys on. qmgr / queue stay raw.- set(attributes["target.name"], attributes["targetName"]) where attributes["targetName"] != nil- delete_key(attributes, "targetName")- set(attributes["cluster.name"], attributes["clusterName"]) where attributes["clusterName"] != nil- delete_key(attributes, "clusterName")- delete_key(attributes, "instance")- delete_key(attributes, "job")memory_limiter/ibmmq:check_interval: 1slimit_mib: 512spike_limit_mib: 256cumulativetodelta/ibmmq: {}batch/ibmmq:send_batch_size: 1000timeout: 200msexporters:otlphttp/ibmmq:endpoint: ${env:NEW_RELIC_OTLP_ENDPOINT}headers:api-key: ${env:NEW_RELIC_LICENSE_KEY}receivers:prometheus/ibmmq-qm1:config:scrape_configs:- job_name: 'ibmmq-qm1'scrape_interval: ${env:IBMMQ_SCRAPE_INTERVAL:-60s}scrape_timeout: 15sstatic_configs:- targets:- "${env:IBMMQ_QM1_ENDPOINT:-localhost:9157}"labels:targetName: "${env:TARGET_NAME}"clusterName: "${env:IBMMQ_CLUSTER_NAME:-}"service:pipelines:metrics/ibmmq-qm1:receivers: [prometheus/ibmmq-qm1]processors:- filter/ibmmq-overhead- filter/ibmmq-queues- resourcedetection- transform/ibmmq-cleanup- memory_limiter/ibmmq- cumulativetodelta/ibmmq- batch/ibmmqexporters: [otlphttp/ibmmq]extensions: [health_check]重要
プロセッサーの順序を変更したり、削除したりしないでください。プロセッサーのチェーンの順序は、エンティティの合成において重要です。
transform/ibmmq-cleanupプロセッサーは、resourcedetectionプロセッサーの後に実行する必要があります。この順序を逆にすると、IBM MQのメトリクスがIBMMQ_MANAGERエンティティではなくコレクター自身のエンティティに関連付けられ、データがダッシュボードに表示されなくなります。この設定で行うこと
この設定により、IBM MQキューマネージャーからメトリクスを収集し、構造化データをNew Relicにルーティングするパイプラインが作成されます。各コンポーネントは特定の機能を実行します:
コンポーネント 説明 health_checkコレクターが実行されていることを確認し、起動時の問題をトラブルシューティングするために、 {"status":"Server available"}を返すヘルスエンドポイントを127.0.0.1:13133に提供します。prometheus/ibmmq-qm160秒ごとに各キューマネージャーのエクスポーターに接続してメトリクスを収集します。各キューマネージャーは独立したレシーバーを使用します;1つのキューマネージャーに障害が発生しても、残りのレシーバーは正常に動作し続けます。さらにキューマネージャーを追加するには、「別のキューマネージャーの追加」セクションを参照してください。 filter/ibmmq-overheadIBM MQシグナルを含まない、エクスポーターの内部セルフメトリクス( go_*やprocess_*など)を削除します。これにより、不要なテレメトリーを除外してデータ取り込みコストを最適化します。filter/ibmmq-queues内部のIBM MQシステムキュー( SYSTEM.*およびAMQ.*)を除外して、アプリケーションキューのみがIBMMQ_QUEUEエンティティになるようにします。これにより、エンティティの総数が減少し、重要なアセットの監視に集中できます。transform/ibmmq-cleanupこれは、メトリクスをNew Relic内の適切なIBM MQエンティティにマッピングする重要なコンポーネントです。このコンポーネントがないと、データは、関連するダッシュボードやアラートを伴う IBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティを合成するのではなく、一般的なコレクターメトリクスとして表示されます。memory_limiter/ibmmqコレクターがシステムリソースの制限を超えないように、メモリ使用量を512MB(256MBのスパイク許容量を含む)に制限します。 batch/ibmmq送信前にメトリクスをグループ化し、リクエストごとに最大1000個のデータポイントをバンドルすることでネットワークのオーバーヘッドを削減します。 otlphttp/ibmmq認証用に設定されたライセンスキーと指定されたリージョンのエンドポイントを使用して、処理されたメトリクスをNew Relicにエクスポートします。 各キューマネージャーは独立したパイプラインを使用するため、1つのインスタンスでの問題が他のインスタンスに影響することはありません。プロセッサーの順序は重要です。プロセッサーを並べ替えたり削除したりしないでください。そうしないと、メトリクスがIBM MQエンティティに正しくマッピングされなくなります。
NRDOT環境変数を設定する
コレクターの設定では、New Relicライセンスキーやキューマネージャーのエンドポイントなどのデプロイメント固有の値に環境変数を使用します。このアプローチにより、シークレットを設定ファイルから分離し、YAMLを編集せずに設定を簡単に調整できるようになります。
NRDOTコレクターの環境ファイルを作成します:
bash$# Owner nrdot, mode 0600 — this file holds the license key$sudo install -o nrdot -g nrdot -m 0600 /dev/null /etc/nrdot-collector/ibmmq-env$sudo -u nrdot ${EDITOR:-vi} /etc/nrdot-collector/ibmmq-envプレースホルダーを実際の値に置き換えて、値を
KEY=VALUE行としてファイルに追加します:# /etc/nrdot-collector/ibmmq-env# --- Required ---# New Relic ingest license key (40 chars, suffix NRAL)NEW_RELIC_LICENSE_KEY=<YOUR-LICENSE-KEY># Stable host identity — first segment of every IBMMQ entity GUIDTARGET_NAME=<YOUR-HOSTNAME># mq-metric-samples exporter endpoints, one per queue managerIBMMQ_QM1_ENDPOINT=localhost:9157# --- Optional (shown with defaults) ---# OTLP endpoint: US prod default shown; For more information, refer to [New Relic OTLP endpoint](https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp).NEW_RELIC_OTLP_ENDPOINT=https://otlp.nr-data.net:4318# Optional tag grouping for the IBMMQ_MANAGER entity (does not affect the entity GUID).# Leave unset to omit cluster.name (nullable); set it to group QMs under one cluster tag.# IBMMQ_CLUSTER_NAME=prod-mq-cluster# Scrape interval — must be >= the mq-metric-samples pollInterval (default 60s)IBMMQ_SCRAPE_INTERVAL=60s注意
初回のデプロイメント後に
TARGET_NAMEの値を変更しないでください。この値は、すべてのIBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティのGUID(target.name:qmgr)の最初のセグメントを形成します。デプロイメント後にこの値を変更すると、新しいエンティティが作成され、既存のエンティティが孤立するため、関連するダッシュボードやアラートが機能しなくなります。初期設定時に、キューマネージャーのQMIDなどの安定した文字列を選択してください。詳細については、IBM MQエンティティモデルを参照してください。コレクターを起動する前に設定を確認するには、シェルで次の環境変数を設定します:
変数 必須 説明 NEW_RELIC_LICENSE_KEYはい New Relic取り込みライセンスキー。 TARGET_NAMEはい ホスト名やキューマネージャーIDなど、ホストの識別子。エンティティIDの一部になるため、最初のデプロイメント後にこれを変更しないでください。 IBMMQ_QM1_ENDPOINTはい 1番目のキューマネージャーのエクスポーターの場所。たとえば、同じホストで実行している場合は localhost:9157です。NEW_RELIC_OTLP_ENDPOINTいいえ ご利用のリージョンのNew Relic OTLPエンドポイント。詳細については、「New Relic OTLPエンドポイント」を参照してください。 IBMMQ_CLUSTER_NAMEいいえ New Relicでキューマネージャーをグループ化するためのCluster名。 IBMMQ_SCRAPE_INTERVALいいえ メトリクスをNew Relicにエクスポートするための収集間隔。デフォルトの収集間隔は60秒です。
NRDOT systemdサービスを設定する
設定ファイルと環境ファイルを読み込むための
systemdドロップインファイルを作成します。bash$sudo mkdir -p /etc/systemd/system/nrdot-collector.service.d$sudo tee /etc/systemd/system/nrdot-collector.service.d/ibmmq.conf > /dev/null << 'EOF'$[Service]$EnvironmentFile=/etc/nrdot-collector/ibmmq-env$ExecStart=$ExecStart=/usr/bin/nrdot-collector --config /etc/nrdot-collector/ibmmq-config.yaml$MemoryMax=1G$LimitNOFILE=65536$NoNewPrivileges=true$ProtectSystem=strict$ProtectHome=true$EOF空の
ExecStart=行はデフォルトのコマンドをクリアし、2行目はカスタムコマンドを設定します。これにより、コレクターが2回起動するのを防ぎます。その他の設定は、環境ファイルを読み込み、メモリ使用量を制限し、セキュリティを向上させます。ドロップインを作成した後、systemdがエラーなしで解析できることを確認します:
bash$sudo systemd-analyze verify /etc/systemd/system/nrdot-collector.service$# No output means no syntax errors
NRDOTコレクターを起動して確認する
コレクターを起動し、起動時に自動的に実行されるように有効にします:
bash$sudo systemctl daemon-reload$sudo systemctl enable --now nrdot-collector.service$sudo systemctl status nrdot-collector.service --no-pagerstatusコマンドはActive: active (running)を表示するはずです。Active: failedが表示される場合は、journalctl -u nrdot-collector.service -n 200 --no-pagerでログを確認してください。コレクターが正常であることを確認します:
bash$curl -sS http://127.0.0.1:13133$# Expected: {"status":"Server available", ...}IBM MQのメトリクスがNew Relicに送信されていることを確認します。コレクターが起動してから60秒待ち、「データの検索とクエリ」の検証クエリを使用してデータを確認します。
New Relic でデータを表示する
コレクターが実行され、メトリクスが流れるようになると、New RelicでキューマネージャーがIBMMQ_MANAGERエンティティとして表示され、そのキューが子IBMMQ_QUEUEエンティティとして表示されます。データの検索、クエリの実行、ダッシュボードとアラートの設定の詳細については、データの検索とクエリを参照してください。
OpenTelemetry Collector Contrib をインストールする
OpenTelemetry Collector releasesページから、プラットフォーム用のOpenTelemetry Collector Contrib(otelcol-contrib)ディストリビューションをダウンロードします。Contribビルドには、このガイドが依存するprometheusレシーバーと、filter、transform、およびcumulativetodeltaプロセッサーが含まれています。
ヒント
otelcol-contrib --versionを実行して、バイナリがインストールされ、アクセス可能であることを確認します。
OpenTelemetry Collectorを設定する
IBM MQのメトリクスを収集してNew Relicに送信するようにOpenTelemetry Collectorを設定します。この設定は、3つの主なジョブを処理します:
- キューマネージャーに接続する
- データのクリーンアップ
- New Relicへのデータ送信
必要な権限を持つディレクトリとコレクターの設定ファイルを作成するには、次を実行します:
bash$# Config directory for OpenTelemetry Collector$sudo mkdir -p /etc/otelcol-contrib$sudo chmod 755 /etc/otelcol-contrib$$# Create the config file with correct permissions$sudo touch /etc/otelcol-contrib/ibmmq-config.yaml$sudo chmod 644 /etc/otelcol-contrib/ibmmq-config.yaml$sudo ${EDITOR:-vi} /etc/otelcol-contrib/ibmmq-config.yaml以下の設定を作成した設定ファイルに貼り付け、プレースホルダーを実際の値に置き換えます:
extensions:health_check:endpoint: 127.0.0.1:13133processors:filter/ibmmq-overhead:metrics:exclude:match_type: regexpmetric_names:- "^go_.*"- "^process_.*"- "^promhttp_.*"- "^scrape_.*"filter/ibmmq-queues:metrics:datapoint:- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^SYSTEM\\.(ADMIN\\.|MQSC\\.|DEFAULT\\.|AUTH\\.|CHANNEL\\.|CHLAUTH\\.|CICS\\.|SYNCPOINT\\.|INTERNAL\\.|PENDING\\.|PROTECTION\\.|BROKER\\.|AMQP\\.|DOTNET\\.|REST\\.|RETAINED\\.|SELECTION\\.|DURABLE\\.|HIERARCHY\\.|DDELAY\\.)")'- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^SYSTEM\\.CLUSTER\\.(COMMAND|HISTORY)\\.QUEUE$")'- 'attributes["queue"] != nil and IsMatch(attributes["queue"], "^AMQ\\.")'resourcedetection:detectors: [env, ec2, gcp, azure, system]system:resource_attributes:host.name:enabled: truehost.id:enabled: truetransform/ibmmq-cleanup:metric_statements:- context: resourcestatements:- delete_key(attributes, "server.address")- delete_key(attributes, "server.port")- delete_key(attributes, "url.scheme")- context: datapointstatements:# Rename the injected identity labels to their OTel dotted form — the# names New Relic's IBM MQ entity synthesis keys on. qmgr / queue stay raw.- set(attributes["target.name"], attributes["targetName"]) where attributes["targetName"] != nil- delete_key(attributes, "targetName")- set(attributes["cluster.name"], attributes["clusterName"]) where attributes["clusterName"] != nil- delete_key(attributes, "clusterName")- delete_key(attributes, "instance")- delete_key(attributes, "job")memory_limiter/ibmmq:check_interval: 1slimit_mib: 512spike_limit_mib: 256cumulativetodelta/ibmmq: {}batch/ibmmq:send_batch_size: 1000timeout: 200msexporters:otlphttp/ibmmq:endpoint: ${env:NEW_RELIC_OTLP_ENDPOINT}headers:api-key: ${env:NEW_RELIC_LICENSE_KEY}receivers:prometheus/ibmmq-qm1:config:scrape_configs:- job_name: 'ibmmq-qm1'scrape_interval: ${env:IBMMQ_SCRAPE_INTERVAL:-60s}scrape_timeout: 15sstatic_configs:- targets:- "${env:IBMMQ_QM1_ENDPOINT:-localhost:9157}"labels:targetName: "${env:TARGET_NAME}"clusterName: "${env:IBMMQ_CLUSTER_NAME:-}"service:pipelines:metrics/ibmmq-qm1:receivers: [prometheus/ibmmq-qm1]processors:- filter/ibmmq-overhead- filter/ibmmq-queues- resourcedetection- transform/ibmmq-cleanup- memory_limiter/ibmmq- cumulativetodelta/ibmmq- batch/ibmmqexporters: [otlphttp/ibmmq]extensions: [health_check]重要
プロセッサーの順序を変更したり、削除したりしないでください。プロセッサーのチェーンの順序は、エンティティの合成において重要です。
transform/ibmmq-cleanupプロセッサーは、resourcedetectionプロセッサーの後に実行する必要があります。この順序を逆にすると、IBM MQのメトリクスがIBMMQ_MANAGERエンティティではなくコレクター自身のエンティティに関連付けられ、データがダッシュボードに表示されなくなります。この設定で行うこと
この設定により、IBM MQキューマネージャーからメトリクスを収集し、構造化データをNew Relicにルーティングするパイプラインが作成されます。各コンポーネントは特定の機能を実行します:
コンポーネント 説明 health_checkコレクターが実行されていることを確認し、起動時の問題をトラブルシューティングするために、 {"status":"Server available"}を返すヘルスエンドポイントを127.0.0.1:13133に提供します。prometheus/ibmmq-qm160秒ごとに各キューマネージャーのエクスポーターに接続してメトリクスを収集します。各キューマネージャーは独立したレシーバーを使用します;1つのキューマネージャーに障害が発生しても、残りのレシーバーは正常に動作し続けます。さらにキューマネージャーを追加するには、「別のキューマネージャーの追加」セクションを参照してください。 filter/ibmmq-overheadIBM MQシグナルを含まない、エクスポーターの内部セルフメトリクス( go_*やprocess_*など)を削除します。これにより、不要なテレメトリーを除外してデータ取り込みコストを最適化します。filter/ibmmq-queues内部のIBM MQシステムキュー( SYSTEM.*およびAMQ.*)を除外して、アプリケーションキューのみがIBMMQ_QUEUEエンティティになるようにします。これにより、エンティティの総数が減少し、重要なアセットの監視に集中できます。transform/ibmmq-cleanupこれは、メトリクスをNew Relic内の適切なIBM MQエンティティにマッピングする重要なコンポーネントです。このコンポーネントがないと、データは、関連するダッシュボードやアラートを伴う IBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティを合成するのではなく、一般的なコレクターメトリクスとして表示されます。memory_limiter/ibmmqコレクターがシステムリソースの制限を超えないように、メモリ使用量を512MB(256MBのスパイク許容量を含む)に制限します。 batch/ibmmq送信前にメトリクスをグループ化し、リクエストごとに最大1000個のデータポイントをバンドルすることでネットワークのオーバーヘッドを削減します。 otlphttp/ibmmq認証用に設定されたライセンスキーと指定されたリージョンのエンドポイントを使用して、処理されたメトリクスをNew Relicにエクスポートします。 各キューマネージャーは独立したパイプラインを使用するため、1つのインスタンスでの問題が他のインスタンスに影響することはありません。プロセッサーの順序は重要です。プロセッサーを並べ替えたり削除したりしないでください。そうしないと、メトリクスがIBM MQエンティティに正しくマッピングされなくなります。
OpenTelemetry環境変数を設定します
コレクターの設定では、New Relicライセンスキーやキューマネージャーのエンドポイントなどのデプロイメント固有の値に環境変数を使用します。このアプローチにより、シークレットを設定ファイルから分離し、YAMLを編集せずに設定を簡単に調整できるようになります。
OpenTelemetry Collectorの環境ファイルを作成します:
bash$# Owner root, mode 0600 — this file holds the license key$sudo touch /etc/otelcol-contrib/ibmmq-env$sudo chmod 600 /etc/otelcol-contrib/ibmmq-env$sudo ${EDITOR:-vi} /etc/otelcol-contrib/ibmmq-envプレースホルダーを実際の値に置き換えて、値を
KEY=VALUE行としてファイルに追加します:# /etc/otelcol-contrib/ibmmq-env# --- Required ---# New Relic ingest license key (40 chars, suffix NRAL)NEW_RELIC_LICENSE_KEY=<YOUR-LICENSE-KEY># Stable host identity — first segment of every IBMMQ entity GUIDTARGET_NAME=<YOUR-HOSTNAME># mq-metric-samples exporter endpoints, one per queue managerIBMMQ_QM1_ENDPOINT=localhost:9157# --- Optional (shown with defaults) ---# OTLP endpoint: US prod default shown; For more information, refer to [New Relic OTLP endpoint](https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp).NEW_RELIC_OTLP_ENDPOINT=https://otlp.nr-data.net:4318# Optional tag grouping for the IBMMQ_MANAGER entity (does not affect the entity GUID).# Leave unset to omit cluster.name (nullable); set it to group QMs under one cluster tag.# IBMMQ_CLUSTER_NAME=prod-mq-cluster# Scrape interval — must be >= the mq-metric-samples pollInterval (default 60s)IBMMQ_SCRAPE_INTERVAL=60s注意
初回のデプロイメント後に
TARGET_NAMEの値を変更しないでください。この値は、すべてのIBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティのGUID(target.name:qmgr)の最初のセグメントを形成します。デプロイメント後にこの値を変更すると、新しいエンティティが作成され、既存のエンティティが孤立するため、関連するダッシュボードやアラートが機能しなくなります。初期設定時に、キューマネージャーのQMIDなどの安定した文字列を選択してください。詳細については、IBM MQエンティティモデルを参照してください。コレクターを起動する前に設定を確認するには、シェルで次の環境変数を設定します:
変数 必須 説明 NEW_RELIC_LICENSE_KEYはい New Relic取り込みライセンスキー。 TARGET_NAMEはい ホスト名やキューマネージャーIDなど、ホストの識別子。エンティティIDの一部になるため、最初のデプロイメント後にこれを変更しないでください。 IBMMQ_QM1_ENDPOINTはい 1番目のキューマネージャーのエクスポーターの場所。たとえば、同じホストで実行している場合は localhost:9157です。NEW_RELIC_OTLP_ENDPOINTいいえ ご利用のリージョンのNew Relic OTLPエンドポイント。詳細については、「New Relic OTLPエンドポイント」を参照してください。 IBMMQ_CLUSTER_NAMEいいえ New Relicでキューマネージャーをグループ化するためのCluster名。 IBMMQ_SCRAPE_INTERVALいいえ メトリクスをNew Relicにエクスポートするための収集間隔。デフォルトの収集間隔は60秒です。
OpenTelemetry systemdサービスを構成する
OpenTelemetry Collectorのsystemdサービスファイルを作成します:
sudo tee /etc/systemd/system/otelcol-contrib.service > /dev/null << 'EOF'[Unit]Description=OpenTelemetry Collector ContribAfter=network.target[Service]Type=simpleUser=nobodyGroup=nogroupExecStart=/usr/bin/otelcol-contrib --config=/etc/otelcol-contrib/ibmmq-config.yamlEnvironmentFile=/etc/otelcol-contrib/ibmmq-envRestart=on-failureRestartSec=5StandardOutput=journalStandardError=journalSyslogIdentifier=otelcol-contribKillMode=mixedKillSignal=SIGTERMMemoryMax=1GLimitNOFILE=65536NoNewPrivileges=trueProtectSystem=strictProtectHome=trueReadWritePaths=/tmp[Install]WantedBy=multi-user.targetEOFサービスはセキュリティのために
nobody:nogroupとして実行され、環境ファイルを読み込み、メモリ制限とセキュリティ強化を含みます。サービスを作成した後、systemdがエラーなしで解析できることを確認します:
bash$sudo systemctl daemon-reload$sudo systemctl status otelcol-contrib.service$# No output means no syntax errors
OpenTelemetryコレクターを起動して確認する
コレクターを起動し、起動時に自動的に実行されるように有効にします:
bash$sudo systemctl enable --now otelcol-contrib.service$sudo systemctl status otelcol-contrib.service --no-pagerstatusコマンドはActive: active (running)を表示するはずです。Active: failedが表示される場合は、journalctl -u otelcol-contrib.service -n 200 --no-pagerでログを確認してください。コレクターが正常であることを確認します:
bash$curl -sS http://127.0.0.1:13133$# Expected: {"status":"Server available", ...}IBM MQのメトリクスがNew Relicに送信されていることを確認します。コレクターが起動してから60秒待ち、「データの検索とクエリ」の検証クエリを使用してデータを確認します。
New Relic でデータを表示する
コレクターが実行され、メトリクスが流れるようになると、New RelicでキューマネージャーがIBMMQ_MANAGERエンティティとして表示され、そのキューが子IBMMQ_QUEUEエンティティとして表示されます。データの検索、クエリの実行、ダッシュボードとアラートの設定の詳細については、データの検索とクエリを参照してください。
高度な設定
さまざまなシナリオに合わせてセットアップをカスタマイズするには、これらの設定を使用します。