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

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

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

問題を作成する

OpenTelemetryを使用したKubernetes上のIBM MQのモニター

IBM MQキューマネージャーがKubernetesでポッドとして実行されている場合、クラスタの拡張に合わせて自動的に検出して追跡できる監視ソリューションが必要です。このガイドでは、手動で設定を変更することなく、キューマネージャーを自動的に検出してそのメトリクスをNew Relicに送信するコレクターをデプロイする方法を説明します。

New RelicのDistribution of OpenTelemetry(NRDOT)またはOpenTelemetry Collector Contribのいずれかを使用できます — どちらも同じ設定と自動検出アプローチを使用します。コレクターはアノテーションによってキューマネージャーのポッドを検出し、そのメトリクスを収集して、整理されたデータをNew Relicに送信します。New Relicでは、すぐに使用できるダッシュボードを備えたIBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティとして表示されます。新しいキューマネージャーを追加すると、コレクターが自動的にそれらを検出します — 設定の更新は必要ありません。

ヒント

代わりにキューマネージャーが従来のホストで実行されている場合は、セルフホスト型IBM MQのモニターを参照してください。

あなたが始める前に

コレクターを設定する前に、以下のコンポーネントが必要です:

ヒント

より優れたスループットメトリクスのために、ALTER QMGR STATMQI(ON) STATQ(ON)を使用してキューマネージャーでMQI統計を有効にすることをお勧めします。

IBM MQの監視のセットアップ

以下の手順に従ってコレクターをデプロイし、IBM MQのメトリクスをNew Relicに送信し始めます:

New Relic 認証情報シークレットを作成する

New Relicの認証情報を安全に保存するために、Kubernetesシークレットを作成します。コレクターは実行時にこれらの値を読み取るため、設定ファイルに機密情報が含まれないようにします。

  1. ibmmqネームスペースが存在することを確認します:

    bash
    $
    kubectl get namespace ibmmq >/dev/null 2>&1 || kubectl create namespace ibmmq
  2. <YOUR_LICENSE_KEY>を実際のライセンスキーに置き換えて、認証情報のシークレットを作成します:

    bash
    $
    kubectl create secret generic newrelic-otlp-secret \
    >
    --namespace ibmmq \
    >
    --from-literal=NEW_RELIC_LICENSE_KEY="<YOUR_LICENSE_KEY>" \
    >
    --from-literal=NEW_RELIC_OTLP_ENDPOINT="https://otlp.nr-data.net:4318" \
    >
    --dry-run=client -o yaml | kubectl apply -f -

    EUアカウントの場合は、エンドポイント値としてhttps://otlp.eu01.nr-data.net:4318を使用します。

コレクターのHelm値を設定する

コレクターの設定を含むローカルのvalues.yamlファイルを作成します。このファイルには、OpenTelemetry Helmチャートを介してコレクターをデプロイするために必要なすべての設定が含まれています。

注意

初回のデプロイメント後にTARGET_NAMEを変更しないでください。この値は、すべてのIBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティGUIDの1番目のセグメントを形成します。これを変更すると、新しいエンティティが作成され、既存のエンティティが孤立して、ダッシュボードとアラートが破損します。

この設定で行うこと

この設定は、IBM MQキューマネージャーのポッドを検出し、そのメトリクスをNew Relicに送信する自動検出パイプラインを作成します。処理パイプラインはホストのセットアップと同じですが、静的なターゲットの代わりにポッドの自動検出を使用します:

セクションロール
prometheus/ibmmq レシーバー必要なアノテーションを持つibmmqネームスペース内のキューマネージャーのポッドを自動的に検出します。各ポッドのメトリクスのエンドポイントに接続し、60秒ごとにIBM MQデータを収集します。
filter/ibmmq-overheadIBM MQデータを含まないエクスポーターの内部セルフメトリクス(go_*process_*など)を削除し、データ取り込みコストを最適化します。
filter/ibmmq-queues内部のIBM MQシステムキュー(SYSTEM.*およびAMQ.*)を除外し、アプリケーションキューのみがNew Relicのエンティティになるようにします。
transform/ibmmq-cleanupNew Relicの適切なIBM MQエンティティにメトリクスをマッピングする重要なコンポーネント。これがないと、データはダッシュボードやアラートを備えたIBMMQ_MANAGERおよびIBMMQ_QUEUEエンティティではなく、一般的なコレクターメトリクスとして表示されます。
memory_limiter/ibmmqKubernetesによってコレクターのポッドが強制終了されるのを防ぐため、メモリ使用量を400MB(512Miのコンテナ制限未満)に制限します。
batch/ibmmq送信前にメトリクスをグループ化し、リクエストごとに最大1000個のデータポイントをバンドルすることでネットワークのオーバーヘッドを削減します。
otlphttp/ibmmq エクスポーター認証用のライセンスキーと設定されたリージョナルエンドポイントを使用して、処理されたメトリクスをNew Relicにエクスポートします。

重要なKubernetesの設定:

設定必要な理由
replicaCount: 1kubernetes_sdを使用し、TargetAllocatorを使用しない場合、すべてのレプリカがすべてのターゲットをスクレイピングするため、複数のレプリカがメトリクスを二重にカウント(および二重に課金)します。HAの場合は、OpenTelemetry TargetAllocatorを使用してターゲットをシャードします。
mode: deploymentdaemonsetではありません)DaemonSetはすべてのノードでkubernetes_sdを実行し、NノードのクラスタのすべてのメトリクスのN個のコピーを生成します。
clusterRole.create: truekubernetes_sd ポッドにget/list/watchが必要です;これがないと、APIは403 Forbiddenを返し、レシーバーは0個のターゲットを検出します(コレクターは起動しますが、何も出力しません)。
service.enabled: falseこのコレクターにはインバウンドレシーバーがないため、そうしないとチャートはゼロポートのServiceを作成しようとして、インストール時に失敗します。:8888のセルフテレメトリーには、引き続きkubectl port-forward経由で到達可能です。
replacement: $$1:$$2 (リラベルルール4)$$はOTel設定ローダーの${...}環境変数展開をエスケープするため、Prometheusエンジンはリテラルの$1:$2キャプチャグループ構文を受け取ります。単一の$1:$2は空の環境変数として消費され、アドレス構築を失敗させます。
image.tag: "latest"テストには適しています;本番環境では特定のバージョンを使用してください。

Helmを使用してコレクターをインストールする

OpenTelemetry Helmリポジトリを追加し、前の手順で作成したvalues.yamlを使用してibmmqネームスペースにコレクターをインストールします:

bash
$
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
$
helm repo update
$
$
helm upgrade --install ibmmq-collector open-telemetry/opentelemetry-collector \
>
--namespace ibmmq \
>
--create-namespace \
>
--values values.yaml

コレクターのポッドが1/1 Runningに到達しない場合は、以下の「トラブルシューティング」を参照してください。

デプロイメントを確認する

コレクターのポッドが実行されていることを確認します:

bash
$
kubectl -n ibmmq rollout status deploy/ibmmq-collector-opentelemetry-collector --timeout=180s
$
kubectl -n ibmmq get pods

コレクターのポッドには1/1 Runningが表示されるはずです。実際にポッドを検出してスクレイピングしていることを確認するには、その自己テレメトリーのエンドポイント(インバウンドのServiceが無効になっているため、:8888で公開され、port-forward経由でのみ到達可能)をポートフォワードし、accepted/exportedカウンターを確認します:

bash
$
kubectl -n ibmmq port-forward deploy/ibmmq-collector-opentelemetry-collector 8888:8888 &
$
curl -s http://localhost:8888/metrics | \
>
grep -E 'otelcol_(receiver_accepted|exporter_sent|exporter_send_failed)_metric_points'
$
kill %1 2>/dev/null

otelcol_receiver_accepted_metric_points 0より大きい値は、コレクターがアノテーション付きの実行中のポッドを少なくとも1つ見つけてスクレイピングしたことを確認するものです;otelcol_exporter_send_failed_metric_points0のままである必要があります(ゼロ以外の値はOTLP接続または認証情報に関する問題を示します)。

次に、データの検索とクエリの検証クエリを使用して、New RelicでIBM MQのメトリクスとエンティティを確認します。ステータス値の意味については、MQステータスコードリファレンスを参照してください。

New Relic でデータを表示する

コレクターのポッドが実行され、メトリクスが流れるようになると、New RelicでキューマネージャーがIBMMQ_MANAGERエンティティとして表示され、そのキューが子IBMMQ_QUEUEエンティティとして表示されます。データの検索、クエリの実行、ダッシュボードやアラートの設定の詳細については、データの表示とクエリを参照してください。

メトリクスリファレンス

New Relicで利用可能なIBM MQ OpenTelemetryメトリクスについて学びます。

データの表示およびクエリ

New RelicでIBM MQデータを表示およびクエリする方法をご覧ください。

トラブルシューティング

New RelicでのIBM MQ監視の問題をトラブルシューティングする方法を学びます。

Copyright © 2026 New Relic株式会社。

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