IBM MQ トレース

IBM MQ トレースは、 IBM MQ ユーザー終了を使用して、 IBM MQ メッセージをトレースする。 IBM MQ Tracingユーザー出口は、 IBM MQ オンプレミスでデプロイされたものと、 IBM MQ Red Hat OpenShift クラスタ上のコンテナで実行されているものをサポートする。

  • IBM MQ の場合、トレースデータは同じホスト上の Instana ホストエージェントに報告されます。
  • Red Hat OpenShift クラスタ上のコンテナで実行されている IBM MQ の場合、トレースデータは、キューマネージャポッドと同じノードにデプロイされている Instana ホストエージェントにレポートされます。

また、リモートホストエージェントにトレースデータを報告するために、 IBM MQ トレースを設定することもできます。

IBM MQ トレースユーザーの終了によって収集されたトレースデータと、他のトレーサーによって収集されたトレースデータは、トレースコンテキストヘッダー(トレース相関情報)が IBM MQ メッセージに設定されている場合、相関させることができます。 Instana トレースコンテキストヘッダ (X_INSTANA_T, X_INSTANA_S, X_INSTANA_L) および W3C トレースコンテキストヘッダ (traceparent , tracestate) は、データの関連付けのためにサポートされています。 IBM MQ トレース ユーザー終了時にトレース相関情報の伝播が必要な場合、Instana トレース ヘッダーと W3C トレース コンテキスト ヘッダーを IBM MQ メッセージに伝播します。

IBM MQ メッセージのトレースに IBM MQ Tracing を使用するには、以下の手順でキュー・マネージャで IBM MQ Tracing を有効にしてください。

IBM MQ トレースの有効化

IBM MQ オンプレミスでデプロイされた IBM MQ および Red Hat OpenShift クラスタ上のコンテナで実行されている IBM MQ でトレースを有効にできます。

オンプレミスのトレースを有効にする IBM MQ

オンプレミス IBM MQ のトレースを有効にするには、以下のセクションを参照してください:

オンプレミス IBM 対応プラットフォーム MQ

IBM MQ Tracing ユーザー出口は、以下のプラットフォーム上のオンプレミス IBM MQ をサポートしています:

  • Linux® x86_64
  • Linux ppc64le
  • Linux s390x
  • ウィンドウズ x86_64
  • AIX 7.2
  • AIX 7.3

IBM MQ オンプレミスのトレース IBM を有効にするための前提条件 MQ

Windows x86_64 では、Microsoft Visual C++ Redistributable 2019 以降をインストールする必要があります。 最新のMicrosoft Visual C++ Redistributableパッケージは、 マイクロソフト社のウェブサイトからダウンロードできます。

AIX XL C/C++ Runtime for AIX 17.1.3.0 またはそれ以降のバージョン (ファイルセット libc++.rte, libc++abi.rte, and libunwind.rte を含む)がインストールされていること。 ファイルセットがインストールされているかどうかを確認するには、以下のコマンドを使用する:

grep -e libc++.rte -e libc++abi.rte -e libunwind.rte
 

IBM MQ IBM MQ Tracingをインストールおよび構成する前に、サーバーおよびキュー・マネージャー・インスタンスをインストールおよび構成する必要があります。

ダウンロード IBM MQ オンプレミスのユーザー終了のトレース IBM MQ

オンプレミスのトレースを有効にする前に IBM MQ IBM MQ Tracing user exit パッケージをダウンロードしてください。 IBM MQ Tracing ユーザー終了パッケージをダウンロードするには、以下の手順を実行します。

注: IBM MQ のユーザー終了は、 OpenSSL には同梱されなくなった。 OpenTelemetry,、ユーザー終了が正しく機能するように、 OpenSSL がシステムに別途インストールされていることを確認してください。 詳細については、 OpenSSL および OpenSSH のダウンロードとインストールまたはアップグレードを参照してください。
  1. IBM MQ Tracing user exit .tar.gz ファイルを アーティファクトリーからダウンロードする。 ファイルをダウンロードするには、ユーザー名にアンダースコア(_ )を、パスワードに有効なエージェントキーを使用します。

  2. ダウンロードした .tar.gz ファイルを一時的な場所に解凍します。 抽出後、ディレクトリの中に、異なるプラットフォーム用の5つのユーザー終了パッケージを見つける。

  3. IBM MQ サーバー上のプラットフォーム固有のユーザー終了パッケージを転送します。

  4. 以下のいずれかのステップを実行します。

    • Linux または AIX IBM MQ サーバーで、ユーザー終了パッケージを /var/mqm/exits64 ディレクトリに展開します。
    • Windows IBM MQ サーバー上で、ユーザー終了を C:\ProgramData\IBM\MQ\exits64 ディレクトリに展開する。
  5. 以下のファイルを exits64 ディレクトリに置く:

    • IBM MQ ユーザー終了バイナリ。 IBM MQ APIコールをインターセプトし、スパンを作成するためにラップされた OpenTelemetry C++クライアント・ライブラリへのコールを開始する。
      • Linux と AIX に、 mqtracingexit_r ファイルを置く。
      • Windowsの場合は、 mqtracingexit.dll
    • OpenTelemetry スパンのライフサイクルを管理する関数を提供し、スパンを Instana ホストエージェントに送信します。
      • Linux と AIX に、 tracelibrary.so ファイルを置く。
      • Windowsの場合は、 tracelibrary.dll
    • IBM MQ トレース用の mqtracingexit.conf 設定ファイル。 mqtracingexit.conf ファイルは、 MQ サーバ上のすべてのキュー・マネージャ・インスタンス用の設定ファイルです。 キュー・マネージャ専用の設定ファイルを作成するには、 mqtracingexit.confmqtracingexit_<QMNAME>.conf にコピーします。
  6. IBM MQ サーバの OS に応じて、以下の手順を実行することにより、トレーサが実行時に OpenTelemetry クライアント共有ライブラリを解決できることを確認する:

    • Linux と AIX では、 libopentelemetry_*.a ファイルを /usr/local/lib ディレクトリに置く。
    • Linux で、 /usr/local/lib をダイナミック・リンカーの検索パス echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usrlocal.conf に追加し、次に sudo ldconfig コマンドを実行してキャッシュを再構築する。
    • AIX で export LIBPATH=/usr/local/lib:$LIBPATH コマンドを実行するか、 /etc/environment にその行を追加して恒久化する。
    • Windowsの場合、 libopentelemetry_*.dll ファイルを C:\ProgramData\IBM\MQ\exits64 ディレクトリに置く。
    • Windowsの場合、システム環境変数ダイアログから C:\ProgramData\IBM\MQ\exits64 ディレクトリを環境変数に追加します。 PATH ディレクトリを追加し、ターミナルを再起動する。

IBM MQ オンプレミスのユーザー退出をトレースする IBM MQ

オンプレミス IBM MQ のユーザー終了を有効にするには、 mqs.ini または qm.ini ファイルを編集します。 mqs.ini ファイルには、ホスト上のすべてのキューマネージャインスタンスに関連する情報が含まれています。

  • Linux と AIX では、 mqs.ini ファイルは /var/mqm ディレクトリにある。
  • Windowsの場合、 mqs.ini ファイルは C:\ProgramData\IBM\MQ ディレクトリにある。

qm.ini ファイルには、特定のキュー・マネージャーに関係のある情報が含まれています。

  • Linux と AIX では、 qm.ini ファイルは /var/mqm/qmgrs/<QMNAME> ディレクトリにある。
  • Windows では、 qm.ini ファイルは C:\ProgramData\IBM\MQ\qmgrs\<QMNAME> ディレクトリにある。 <QMNAME> はキュー・マネージャの名前である。
IBM MQ すべてのキューマネージャインスタンスのトレースを有効にする

ホスト上のすべてのキューマネージャインスタンスのトレースを有効にするには、以下の手順を実行します:

  1. mqs.ini ファイルをバックアップします。

    • Linux、 AIX、 /var/mqm/mqs.ini ファイルをバックアップする。
    • Windowsの場合は、 C:\ProgramData\IBM\MQ\mqs.ini ファイルをバックアップしてください。
  2. mqs.ini ファイルを編集します。

  3. 以下の内容を追加して、このノードのすべてのキュー・マネージャ・インスタンスのユーザ退出を有効にします。 キューマネージャが起動すると、このスタンザの属性が読み込まれ、その後、 qm.ini ファイルで定義されているユーザ終了によって上書きされます。

    • Linux と AIX に以下の行を追加する:

      ApiExitCommon:
        Sequence=100
        Function=EntryPoint
        Module=/var/mqm/exits64/mqtracingexit
        Name=TracingApiExit
       
    • Windowsでは、以下の行を追加する:

    ApiExitCommon:
      Sequence=100
      Function=EntryPoint
      Module=C:\ProgramData\IBM\MQ\exits64\mqtracingexit
      Name=TracingApiExit
     
  4. mqs.ini ファイルに変更を保存する。

  5. キュー・マネージャ・インスタンスを再起動して変更を適用します。

IBM MQ キューマネージャのトレースを有効にする

特定のキューマネージャのトレースを有効にするには、以下の手順を実行してください:

  1. qm.ini ファイルをバックアップします。

    • Linux、 AIX、 /var/mqm/qmgrs/<QMNAME>/qm.ini ファイルをバックアップする。
    • Windowsでは、 C:\ProgramData\IBM\MQ\qmgrs\<QMNAME>\qm.ini ファイルをバックアップしてください。
  2. qm.ini ファイルを編集します。

  3. Linux と AIX に以下の設定を追加する:

     ApiExitLocal:
       Sequence=100
       Function=EntryPoint
       Module=/var/mqm/exits64/mqtracingexit
       Name=TracingApiExit
     

    Windowsで以下の設定を追加する:

    ApiExitLocal:
       Sequence=100
       Function=EntryPoint
       Module=C:\ProgramData\IBM\MQ\exits64\mqtracingexit
       Name=TracingApiExit
     

    ここで:

    • Sequence は、他の出口との関係で、その出口の順序を識別します。 シーケンス番号が小さい出口は、大きいシーケンス番号の出口より先に呼び出されます。
    • Function は、ユーザー出口コードを含むモジュールへの関数エントリー・ポイントの名前を識別します。
    • Module には、ユーザー出口コードが含まれています。 このフィールドにモジュールの絶対パス名が指定されていると、そのまま使用されます。 このフィールドにモジュール名だけが含まれている場合、モジュールは qm.ini ファイルの ExitPath の ExitsDefaultPath 属性を使用して配置されます。
    • Name は、ユーザー出口の記述名です。
  4. qm.ini ファイルに変更を保存する。

  5. キュー・マネージャ・インスタンスを再起動して変更を適用します。

IBM MQ のユーザー終了を有効にする方法については、 IBM MQ ガイドを参照のこと。

Red Hat OpenShift クラスタで IBM MQ のトレースを有効にする

IBM MQ Operator 2.2.0 およびそれ以降のバージョンは、Instana IBM MQ Tracing をネイティブにサポートしています。 ネイティブ・サポートを得るには、 IBM MQ キュー・マネージャー・コンテナ・イメージ 9.3.1.0-r2 またはそれ以降のバージョンを使用する。 Instana IBM MQ IBM Cloud Pak for Integration クラスタまたは Red Hat OpenShift Container Platform クラスタ上で IBM MQ オペレータ 2.2.0 またはそれ以降のバージョンを使用してデプロイされているキューマネージャのトレースを有効にするには、 IBM MQ ガイドを参照してください。 IBM MQ トレースは、 x86_64、 ppc64le、 s390x Kubernetes ノードの Linux でサポートされています。

注: Red Hat OpenShift Container Platform クラスターで IBM MQ Operator を使用して Instana IBM MQ Tracing を有効にするには、 IBM MQ Operator で IBM Cloud Pak for Integration ライセンスを使用する必要があります。

Instana AutoTrace webhook を使用して、 IBM Cloud Pak for Integration クラスタ上の IBM MQ に対して Instana IBM MQ Tracing を有効にすることもできます。 Instana AutoTrace webhook は、 9.3.3.0 および Linux/amd64 Kubernetes ノードより前のバージョンの IBM MQ キュー・マネージャー・コンテナ・イメージのみをサポートします。 IBM Cloud Pak for Integration クラスタ上で実行される IBM MQ コンテナのトレースを有効にする方法の詳細については、 IBM MQ および ACE の Webhook インストルメンテーションを有効にするを参照してください。

IBM MQ トレースの構成

IBM MQ トレースはデフォルトで設定されている。 ただし、 IBM MQ トレース設定を変更することは可能です。

IBM MQ オンプレミスのトレースの設定 IBM MQ

IBM MQ Tracing for on-premises IBM MQ を設定するには、以下の手順を実行します。

  1. exits64

    • Linux と AIX については、 /var/mqm/exits64 ディレクトリにアクセスしてください。
    • Windowsの場合は、 C:\ProgramData\IBM\MQ\exits64 ディレクトリに移動します。
  2. すべてのキューマネージャインスタンス用の mqtracingexit.conf ファイル、または特定のキューマネージャ用の mqtracingexit_<QMNAME>.conf ファイルを編集します。

    # configuration for IBM MQ Tracing user exit
    LOG_LEVEL="info" #Log level: info, warn, error, debug
    SPAN_FORMAT="instana" #Span Format: instana, otel
    MONITOR_LEVEL="normal" #MQ tracing level: normal, quiet, off, debug
    IBMMQ_DEST_MONITOR_LEVEL_OFF = "" Regex for message destinations with tracing level off, for example: "^TMPQ.*". An example for multiple conditions: "^SYSTEM\\.AUTH\\..*|^TEMP\\.QUEUE\\..*".
    IBMMQ_DEST_MONITOR_LEVEL_QUIET = "" #Regex for message destinations with tracing level quiet
    IBMMQ_DEST_MONITOR_LEVEL_NORMAL = "" #Regex for message destinations with tracing level normal
    IBMMQ_DEST_MONITOR_LEVEL_DEBUG = "" #Regex for message destinations with tracing level debug
    IBMMQ_PUBSUB_SUPPORT = "off" #The switch for the publish/subscribe support: on, off
    IBMMQ_RFH2_HEADERS_TO_EXPOSE = "" #A list of message headers that must be included in the `PUT` span payload, and each header is separated by commas.
    INSTANA_AGENT_HOST = "localhost" #(optional) Applies only when the SPAN_FORMAT is set to instana
    INSTANA_AGENT_PORT = 42699 #(optional) Applies only when the SPAN_FORMAT is set to instana
    INSTANA_AGENT_PROTO = "http" #(optional) Applies only when the SPAN_FORMAT is set to instana
    HOST_ALIAS="<YOUR-HOST-NAME>" #(optional) Applies only when the SPAN_FORMAT is set to instana
    LOCAL_SOURCE_ADDRESS = "" #(optional) The local source ip address for outgoing traffic
    OTLP_EXPORTER_GRPC_ENDPOINT = "" #(optional) Applies only when the SPAN_FORMAT is set to otel
    OTLP_EXPORTER_SSL_CACERT_PATH = "" #(optional) Applies only when the SPAN_FORMAT is set to otel
    OTLP_EXPORTER_HTTP_URL = "" #(optional) Applies only when the SPAN_FORMAT is set to otel
     

    ここで、それぞれ以下のとおりです。

    • LOG_LEVEL このパラメータはログレベルを指定する。 ログレベルは infowarnerrordebug のいずれか。 Linux と AIX では、ログファイルは /tmp/ibmmqtrace ディレクトリにあり、Windows では、ログファイルは C:\ProgramData\IBM\MQ\trace ディレクトリにある。 ログファイルのデフォルト・ディレクトリを変更するには、 「 IBM MQ トレース用ログファイル 」セクションの手順を参照してください。
    • SPAN_FORMAT このパラメータは、スパンデータを送信するトレースシステムを指定する。 この変数を instana に設定してください。 デフォルトでは、 IBM MQ トレースユーザーの終了は、ホストエージェントエンドポイント http://localhost:42699 にスパンデータを送信する。 HTTPS プロトコルを使用してスパンデータをリモートホストエージェントに送信するには、設定項目 INSTANA_AGENT_HOSTINSTANA_AGENT_PROTO を更新します。 SPAN_FORMAT の設定は、 IBM MQ のホストでも同じでなければなりません。
    • MONITOR_LEVEL このパラメータは、キューマネージャのデフォルトのトレースレベルを指定するもので、 offquietnormaldebug のいずれかに設定することができる。 MONITOR_LEVELoff に設定されている場合、トレースデータは収集されない。 quiet に設定された場合、トレース相関情報はすべてのメッセー ジに追加されませんが、 IBM MQ サーバーでメッセージをトレースすることができます。 これが normal に設定されている場合、トレース相関情報は、 RFH2 ヘッダーまたは名前付きプロパティを持つメッセージに追加されるが、テキストメッセージには追加されない。 これが debug に設定されている場合、トレース相関情報はトレースされているすべてのメッセージに追加されます。
    • IBMMQ_DEST_MONITOR_LEVEL_OFF このパラメータは、トレースレベル off のメッセージ宛先を指定する。 このパラメータの値は、 "^TMPQ.*" のような正規表現でなければなりません。 つまり、 TMPQ で始まる宛先に送られたメッセージはトレースされない。 トランザクションの完全性を保証するために、同じメッセージングチェーン内のメッセージ宛先のトレースレベルを同じにしておく必要があります。 メッセージの宛先が複数の正規表現にマッチする場合、有効な正規表現の優先順位は以下のようになる: IBMMQ_DEST_MONITOR_LEVEL_OFF , IBMMQ_DEST_MONITOR_LEVEL_QUIET , IBMMQ_DEST_MONITOR_LEVEL_NORMAL そして IBMMQ_DEST_MONITOR_LEVEL_DEBUG .
    • IBMMQ_DEST_MONITOR_LEVEL_QUIET このパラメータは、トレースレベル quiet のメッセージ宛先を指定する。 このパラメータの値は正規表現でなければならない。 メッセージの宛先がこの正規表現にマッチする場合、トレース相関情報は、メッセージの宛先に送信されるすべてのメッセージに追加されません。 しかし、 IBM MQ サーバーでメッセージをトレースすることはできる。
    • IBMMQ_DEST_MONITOR_LEVEL_NORMAL このパラメータは、トレースレベル normal のメッセージ宛先を指定する。 このパラメータの値は正規表現でなければならない。 メッセージの宛先がこの正規表現にマッチする場合、 RFH2 ヘッダーまたは名前付きプロパティを持つメッセージにトレース相関情報が追加されます。 しかし、トレース相関情報はテキストメッセージには追加されない。
    • IBMMQ_DEST_MONITOR_LEVEL_DEBUG このパラメータは、トレースレベル debug のメッセージ宛先を指定する。 このパラメータの値は正規表現でなければならない。 メッセージの宛先がこの正規表現にマッチする場合、トレース相関情報は、メッセージの宛先に送信されるすべてのメッセージに追加されます。 Windowsプラットフォームでは、 既知の問題のため、宛先キューのモニター・レベル(IBMMQ_DEST_MONITOR_LEVEL_* )とグローバル・モニター・レベル(MONITOR_LEVEL )を一緒に使用することはできません。
    • IBMMQ_PUBSUB_SUPPORT このパラメータは、パブリッシュ・メッセージとサブスクライブ・メッセージのトレースを有効にするかどうかを制御します。 サポートを有効にするには on 、無効にするには off
    • IBMMQ_RFH2_HEADERS_TO_EXPOSE このパラメータは、スパンペイロードに含まれなければならないメッセージヘッダーの リストを指定する。各ヘッダーはカンマで区切られる。例えば、 IBMMQ_RFH2_HEADERS_TO_EXPOSE="rfh2_folder1.header1, rfh2_folder2.header2, header3"。 256バイトより大きなサイズのメッセージ・ヘッダは、スパン・サイズが大きくなりすぎて全体のパ フォーマンスに影響を与えるのを避けるために、切り捨てられる。 また、1つのスパンで収集されるすべてのメッセージヘッダーの長さの合計は、3KBを超えてはならない。 したがって、最も重要なヘッダーのみをコレクションに設定する必要がある。
    • INSTANA_AGENT_HOST このパラメータは、Instana フォーマットのスパンデータが送信されるエージェントホストを指定します。 リモートエージェントホストを指定する場合、ホストエージェントはデフォルトでは他のホストから到達できないため、最初にリモートホストエージェント用の行 *instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfghttp.listen=* に追加する必要もあります。
    • INSTANA_AGENT_PORT このパラメータは、Instana エージェントがリッスンしているポートを指定します。デフォルトでは 42699 が使用されます。 エージェントが別のポートでリッスンしている場合にのみ、ポートを変更する必要があります。
    • INSTANA_AGENT_PROTO このパラメータは、 IBM MQ Tracing exit とホストエージェント間の接続タイプを指定します。 IBM MQ センサーは HTTP と HTTPS プロトコルの両方をサポートしています。 ただし、デフォルトでは HTTP。 プロトコルを HTTPS に変更するには、まずエージェントのエンドポイントを保護する必要があります。 エージェント・エンドポイントを保護する方法の詳細については、 エージェント・エンドポイントのTLS暗号化の設定を参照してください。
    • HOST_ALIAS このパラメータは、 IBM MQ Tracing ユーザー終了によって収集されるスパンデータのホストエイリアスを指定します。 IBM MQ センサがキュー・マネージャも監視している場合、 IBM MQ へのコールをインフラストラクチャ・エンティティにリンクすることができる。 デフォルトでは MQ ホストの FQDN が使用される。 ホストエイリアス値は、ホストエージェント設定yamlで指定されている IBM MQ ホストと一致する必要がある。 IBM MQ ホストの FQDN が IBM MQ センサー構成で使用されておらず、ホストエージェントがローカルの IBM MQ ホスト上にない場合は、ホストエイリアスを指定します。 IBM MQ センサーは、ローカルのキュー・マネージャー・インスタンスの FQDN を発見することができる。
    • LOCAL_SOURCE_ADDRESS このパラメータは、 IBM MQ Tracing ユーザー出口からの発信トラフィックのローカルソースIPアドレスを指定します。 IBM MQ サーバーに複数のネットワーク・インターフェイスがあり、 IBM MQ トレース・ユーザー出口からのすべての発信トラフィックを特定のネットワーク・インターフェイスにバインドしたい場合にのみ、設定する必要があります。
    • OTLP_EXPORTER_GRPC_ENDPOINT SPAN_FORMATotel に設定されているとき、 OpenTelemetry スパンデータが送信される OTLP gRPC エンドポイントを指定する。 デフォルトはlocalhost:4317です。 TLSが gRPC エンドポイントで有効になっている場合は、 OTLP_EXPORTER_SSL_CACERT_PATH も設定する。 AIX プラットフォームでは、OTLP gRPC プロトコル( OTLP_EXPORTER_GRPC_ENDPOINT を設定すると有効になる)は使用できないため、デフォルトで HTTP が使用されます。
  3. ファイルを保存します。

  4. キュー・マネージャ・インスタンスを再起動する。

注: Instana 246 以降のバージョンでは、 IBM MQ Tracing ユーザー終了時のカスタムサービス名の設定がサポートされています。 カスタム・サービス名を設定するには、 IBM MQ プロセスに INSTANA_SERVICE_NAME 環境変数を設定する。

Red Hat OpenShift クラスタ上の IBM MQ トレースの設定

Red Hat OpenShift クラスタ上で稼働しているキューマネージャの IBM MQ Tracing の設定を変更するには、キューマネージャポッドに新しい環境変数を追加します。 環境変数名は、 Configuring IBM MQ Tracing for on-premises IBM MQ セクションに記載されている設定項目名と一致する必要があります。 キュー・マネージャ・ポッドの環境変数を追加するには、以下の手順を実行します:

  1. Red Hat OpenShift クラスター Web コンソールにログインします。

  2. ナビゲーション・パネルで、[ Operators ] > [ Installed Operators] をクリックします。 指定したプロジェクトにインストールされているすべてのオペレーターが表示されます。

  3. IBM MQ Operatorを選択。 IBM MQ Operator ウィンドウが表示されます。

  4. キュー・マネージャー・タブに行く。 キューマネージャの詳細ウィンドウが表示されます。

  5. トレース設定を変更したいキューマネージャを選択します。

  6. 「YAML」タブに移動します。

  7. spec > template > pod > containers > env セクションに環境変数を追加する。 例えば、 IBM MQ Tracingのログレベルをdebugに変更するには、以下のスニペットを使用します:

    template:
     pod:
       containers:
         - env:
             - name: LOG_LEVEL
               value: debug
     
  8. 更新されたキューマネージャの YAML ファイルを保存します。

アップグレード IBM MQ トレース

IBM MQ Tracingの新しいバージョンがリリースされたら、 IBM MQ Tracingをアップグレードすることができます。

アップグレード IBM MQ オンプレミスのトレース IBM MQ Linux または AIX

  1. Instana エージェントが IBM MQ サーバで実行されている場合は、キューマネージャーインスタンスと Instana エージェントを停止します。
  2. IBM MQ Tracing ユーザー終了の設定ファイルを IBM MQ サーバーの /var/mqm/exits64 ディレクトリにバックアップする。
  3. ダウンロードした IBM MQ Tracing user exit ファイルを解凍し、 /var/mqm/exits64 ディレクトリの対応するファイルを置き換える。
  4. ステップ 1 で Instana エージェントが停止していた場合は、キューマネージャーインスタンスと Instana エージェントを起動します。

アップグレード IBM MQ Windows上のオンプレミス IBM MQ のトレース

  1. Instana エージェントが IBM MQ サーバで実行されている場合は、キューマネージャインスタンス、 MQ エクスプローラ、および Instana エージェントを停止します。
  2. IBM MQ Tracing ユーザー終了の設定ファイルを IBM MQ サーバーの C:\ProgramData\IBM\MQ\exits64 ディレクトリにバックアップする。
  3. ダウンロードした IBM MQ Tracing user exit ファイルを解凍し、 C:\ProgramData\IBM\MQ\exits64 ディレクトリの対応するファイルを置き換える。
  4. ステップ 1 で Instana エージェントが停止していた場合は、キュー・マネージャ・インスタンス、 MQ エクスプローラ、および Instana エージェントを起動します。

アップグレード IBM MQ Red Hat OpenShift クラスタ上のトレース

Red Hat OpenShift クラスタ上で IBM MQ Tracing をアップグレードするには、次のいずれかの手順を実行します:

  • IBM MQ IBM MQ オペレータ 2.2.0 またはそれ以降のバージョンを使用してトレースが有効になっている場合は、 IBM MQ キュー・マネージャをアップグレードしてください。
  • Instana AutoTrace webhook を使用して IBM MQ Tracing が有効になっている場合は、Instana AutoTrace webhook を再度デプロイし、キューマネージャーポッドを再起動します。

IBM MQ トレースを無効にする

IBM MQ Tracingを無効にするには、設定を変更するか、 IBM MQ Tracingユーザーを終了します。

IBM MQ オンプレミスのトレースを無効にする IBM MQ

IBM MQ でトレースデータの収集を無効にするには、 mqtracingexit.con ファイルで MONITOR_LEVELoff に設定する。

IBM MQ ユーザー終了のトレースを無効にするには、 IBM MQ ホストで以下の手順を実行します:

  1. /var/mqm/mqs.ini または C:\ProgramData\IBM\MQ\mqs.ini ファイルで設定した ApiExitCommonApiExitLocal スタンザを削除し、 IBM MQ トレースが有効になっている IBM MQ ホストから /var/mqm/qmgrs/<QMNAME>/qm.ini または C:\ProgramData\IBM\MQ\qmgrs\<QMNAME>\qm.ini ファイルを削除する。
  2. Instana エージェントが IBM MQ サーバで実行されている場合は、キューマネージャーインスタンス、 MQ Explorer、および Instana エージェントを再起動します。

Red Hat OpenShift クラスタで IBM MQ トレースを無効にする

Red Hat OpenShift クラスタで IBM MQ Tracing を無効にするには、次のいずれかの手順を実行します:

  • IBM MQ IBM MQ オペレータバージョン 2.2.0 以降を使用してトレースが有効になっている場合は、 IBM Cloud Pak for Integration Platform UI または OpenShift ウェブコンソールで Enable Instana tracing トグルを false に設定します。 IBM MQ ガイドを参照。

  • IBM MQ トレースが Instana AutoTrace Webhook を使用して有効になっている場合は、次のいずれかの手順を実行します:

IBM MQ トレース用ログファイル

IBM MQ トレースログは mqExit*.log ファイルに保存される。 IBM MQ Tracingのログレベルを設定するには、 IBM MQ Tracingユーザー終了の LOG_LEVEL 構成パラメータの値を変更します。

  • Linux と AIX では、ログファイルはデフォルトで /tmp/ibmmqtrace ディレクトリにある。
  • Windowsでは、ログファイルはデフォルトで C:\ProgramData\IBM\MQ\trace ディレクトリにあります。

IBM MQ トレースログファイルのデフォルトディレクトリを変更するには、以下の手順を実行します:

  1. IBM MQ ホスト上で INSTANA_IBMMQ_TRACE_DIR 環境変数を設定する。 IBM MQ プロセスを起動できるすべてのユーザーに、この環境変数を設定する。 そうでない場合、この環境変数を設定せず、 IBM MQ プロセスを開始すると、ログファイルはデフォルトのディレクトリに置かれる。
  2. キュー・マネージャ・インスタンスを再起動する。

デフォルトでは、 IBM MQ トレースログファイルの先頭に mqExit が付きます。 IBM MQ Tracing ログファイルのこのデフォルト接頭辞を変更するには、以下の手順を実行します:

  1. IBM MQ ホスト上で INSTANA_IBMMQ_TRACE_PREFIX 環境変数を設定する。 IBM MQ プロセスを起動できるすべてのユーザーに、この環境変数を設定する。 そうでない場合、この環境変数を設定せず、 IBM MQ プロセスを起動すると、ログファイルの先頭に mqExit が付く。
  2. キュー・マネージャ・インスタンスを再起動する。

OpenTelemetry のスパンデータをOTLP受信機に送信する

IBM MQ Linux と Windows の両方でのトレースは、 OpenTelemetry フォーマットのスパンデータを生成することができます。 データは、 OpenTelemetry CollectorやJaeger Collectorのような OpenTelemetry プロトコル(OTLP)レシーバーに送ることができる。 その後、OTLPレシーバーは、さらなる処理のために観測可能性バックエンドにデータをエクスポートします。

OpenTelemetry のスパン・データを生成し、OTLP受信機に送信するには、以下の手順を実行する:

  1. IBM MQ サーバーにアクセスし、 IBM MQ ユーザー終了をトレースするための mqtracingexit.conf 設定ファイルを開く。
  2. SPAN_FORMAT フィールドを otel に設定する。
  3. スパン・データを OTLP gRPC レシーバーに送信するには、 OTLP_EXPORTER_GRPC_ENDPOINT フィールドで gRPC エンドポイントを指定します。 デフォルト値はlocalhost:4317です。 gRPC エンドポイントで TLS が有効になっている場合、 OTLP_EXPORTER_SSL_CACERT_PATH フィールドに CA 証明書ファイルのパスを指定します。 この証明書ファイルは、ターゲットOTLP gRPC エンドポイントの証明書を検証する。
  4. OTLP HTTP 受信機を使いたい場合は、OTLP _EXPORTER_HTTP_URL フィールドに、OTLP HTTP エンドポイントの URL を指定します。 例えば、http://localhost:4318/v1/tracesです。
  5. キュー・マネージャ・インスタンスを再起動する。

Red Hat OpenShift クラスタ上の IBM MQ に対してこの機能を設定するには、キューマネージャポッドに同等の環境変数を設定します。 キュー・マネージャのポッドに環境変数を設定する方法の詳細については、 Red Hat OpenShift クラスタでの IBM MQ トレースの設定 を参照してください。

トラブルシューティング

IBM MQ トレースで以下の問題が発生する可能性があります:

MQRFH2 ヘッダーの追加によるメッセージ処理エラー

トレース相関情報を伝播するために、 IBM MQ トレースユーザー終了は、メッセージにすでに MQRFH2 ヘッダーが含まれている場合、またはメッセージ送信先のモニターレベルが debug に設定されている場合、トレース対象のメッセージに追加の MQRFH2 ヘッダー (X_INSTANA_T, X_INSTANA_S, X_INSTANA_L, traceparent, tracestate) を追加します。 しかし、メッセージに追加ヘッダーデータが存在すると、 IBM MQ コンシューマーアプリケーションによっては、メッセージ処理エラーやメッセージ拒否の原因になることがある。 追加の MQRFH2 ヘッダーが、 IBM MQ クライアント・アプリケーションでエラーを引き起こす場合は、以下のいずれかの対処を行ってください:

  • IBM MQ クライアント アプリケーションを変更して、Instana が追加したトレース相関情報を持つ追加の MQRFH2 ヘッダーを無視するようにします。
  • IBM MQ Tracing ユーザー終了設定パラメータにメッセージングチェーン内のキューを追加することで、トレース相関伝搬を無効にします。 IBMMQ_DEST_MONITOR_LEVEL_QUIET .
  • IBM MQ クライアント・アプリケーションによって接続されたキューについて、 PROPCTL プロパティの値を NONE に変更する。

トレース相関情報は、 IBM MQ メッセージには追加されません

デフォルトでは、トレース相関情報は、 MQRFH2 ヘッダーまたはメッセージ・プロパティを含む IBM MQ メッセージに自動的に追加されます。 IBM MQ クライアント・アプリケーションを壊さないように、 IBM MQ ユーザー終了のトレースでは、プレーン・テキスト・メッセージにトレース相関情報を追加しません。 それでもなお、メッセージにトレース相関情報を追加したい場合は、 IBM MQ Tracing ユーザー終了設定パラメータにメッセージ送信先を追加することができます。 IBMMQ_DEST_MONITOR_LEVEL_DEBUG . しかし、 IBM MQ クライアント・アプリケーションが、追加の MQRFH2 ヘッダーを持つメッセージを解析できるようにする必要があります。