IIBのモニタリングを開始するには、IIBエージェントをインストールする必要があります。

エージェントのインストール

  1. https://download.appdynamics.com/download/ からエージェントをダウンロードします。
  2. 選択したインストールディレクトリにIIBエージェントZipファイルを展開します。

cURL のインストールについては、「AppDynamicsソフトウェアのダウンロード」を参照してください。

IIBエージェントの構成

このページでは、Linux および AIX で Appdynamics IIB エージェントを統合する方法について説明します。IIB v9 および v10 のインストール手順は、Linux と AIX で同じです。IIB ACE 11 および ACE 12 のインストール手順は、別のタブで提供されます。

ACE は現在 Linux および AIX v7.2 でサポートされています。

  1. エージェントとコントローラ間の通信設定を指定します。controller-info.xml ファイルで、次のプロパティを設定します。

    • account-name:コントローラログインのアカウント名。
    • account-access-key:アクセスキー。このキーは、コントローラを使用した検証に使用されます。
    • application-name:IIB サーバが属するアプリケーションの名前。
    • controller-host:コントローラのホスト名。
    • controller-port:コントローラのポート番号。
    • controller-proxy-host:エージェントがコントローラに接続するために必要な任意のプロキシのホスト名または IP アドレス。

    • controller-proxy-port:エージェントがコントローラに接続するために必要な任意のプロキシのポート番号。

    • controller-proxy-username:プロキシでの認証に使用されるユーザ名。

    • controller-proxy-password:プロキシユーザの認証に使用されるパスワード。

    • controller-proxy-passwordfile:プロキシユーザの認証に使用されるパスワードを含むファイルのフルパス名。

    • controller-ssl-enabled:SSL ログイン。有効にするには 1 を設定し、無効にするには 0 を設定します。
    • controller-cert-file:SSL の PEM 形式の X509 証明書へのフルパス。
      ファイル取得の詳細については、「C/C++ SDK の SSL の有効化」を参照してください。
    • log-dir:IIB エージェントログファイルを含むディレクトリへのフルパス。デフォルトのパスは /tmp/appd です。この設定の前に書き込まれたログは、このパスに記録されます。 
    • log-level:ログのレベル。このプロパティを [trace|debug|info|warning|error] に設定すると、Error の優先順位が最も高くなり、trace の優先順位が最も低くなります

    • tier-name:ブローカーを表す階層の名前。
    • user-exit:ユーザの終了名。これは、mqsichangebroker コマンドに指定されているように英数字の形式にする必要があります。
    • <log-settings> </log-settings>:エージェントのログ設定。詳細については、「エージェントのログファイルサイズの設定」を参照してください。
    • disable-correlation:特定のバックエンドの相関を有効または無効にします。有効にするには 1、無効にするには 0 を設定します。
      disable-http-correlation:有効にするには 1、無効にするには 0 を設定します。
      disable-jms-correlation:有効にするには 1、無効にするには 0 を設定します。
      disable-mq-correlation:有効にするには 1、無効にするには 0 を設定します。
    • flow-level-visibility-enabled:フローレベルの可視性オプション。有効にするには 1、無効にするには 0 を設定します。デフォルト値は 0 です。「IIB エージェントフローレベルの可視性」を参照してください。
    • <node-reuse>true</node-reuse>:このプロパティを設定して、新しい VM に過去の VM のノード名を再利用します。異なる名前のノードが急激に増加するのを防ぎます。「ノード名の再利用の有効化」を参照してください。
    • <node-reuse-prefix>prefixName</node-reuse-prefix>:node-reuse true に設定されている場合に、このプロパティを使用しますこのプロパティを設定しない場合、IIB エージェントは、IBM の内部ノード名標準に従ってノード名を生成します。「ノード名の再利用の有効化」を参照してください。
  2. ブローカーを停止するには、次のコマンドを実行します。ユーザイグジットを構成するには、ブローカーを停止する必要があります。

    mqsistop <broker_name> 
    CODE
  3. IIB エージェントのユーザイグジットをインストールします。すべてのフローについて、IIB エージェントのユーザイグジットがデフォルトで有効になっていることを確認します。該当するバージョンに基づいて、次の手順を実行します。

    次のコマンドを実行します。

    mqsichangebroker <broker_name> -x <install-directory> -e <user_exit_name>
    CODE

    node.conf.yaml ファイルで次の手順を実行します。ファイルは次のパスで確認できます。<path-to-installation-directory>/<broker-name>/node.conf.yaml.

    UserExits:

    • activeUserExitList: '<User Exit Name>'   #Specify the name of user exit
    • userExitPath:'<path>' #specify the path.

    エージェントがブローカーにインストールされている場合は、ブローカーとともに起動および停止されます。

  4. 次のコマンドを実行して、ブローカーを開始します。

    mqsistart <broker_name>
    CODE

IIB 10 では、メッセージフローのサブセットをモニタできます。次のコマンドを実行して、重要度が低くなっているフローをモニタ対象から除外できます。

mqsichangeflowuserexits <broker_name> -e <integrationServerName> -f <MessageFlow> -k <application_name> -i <user_exit_name>
CODE

ブローカーの部分的なインストゥルメンテーション

IIBインスタンス内のアクティビティフローの量が多い場合は、重要なフローのみを選択してインストゥルメント化することをお勧めします。次の手順を実行し、オプトインに基づいてフローをインストゥルメント化します。

  1. オプトインに基づいてフローをインストゥルメント化するには、次のコマンドを含むエージェントをインストールします。

    mqsichangebroker <broker_name> -x <install-directory>
    CODE
  2. 次のコマンドを使用して、エージェントを個々のフローに追加します。

    mqsichangeflowuserexits <broker_name> -a <user_exit_name> -e <integrationServerName> -f <MessageFlow> -k <application_name>
    BASH

1 つ以上のインストゥルメント化されたフローがデプロイされたブローカープロセスごとに、アプリケーションノードが登録されます。ビジネストランザクションは、エージェントのユーザイグジットがアクティブであるフローでのみ作成(または続行)されます。

ACE インスタンス内のアクティビティフローの量が多い場合は、重要な統合サーバのみを選択してインストゥルメント化することをお勧めします。
オプトインに基づいて統合サーバをインストゥルメント化するには、server.conf.yaml ファイルで次を編集します。ファイルは次のパスで確認できます。"<path-to-installation-directory>/<broker-name>/servers/<server-name>/server.conf.yaml

  1. UserExits:
    • activeUserExitList: '<UserExitName>' #specify the name of an installed user exit to activate.

    • userExitPath: '<path>' #specify the path.

  2. UserExits’ 設定(node.conf.yaml)で、次のパラメータを空白に設定します。

    UserExits:

      • activeUserExitList: '' #set it as an empty string.
      • userExitPath: '' #set it as an empty string.
  3. ブローカーを再起動します。

AppDynamics エージェントは、すべてのサーバではなく、インストゥルメント化された統合サーバに対してのみ有効になります。ビジネストランザクションは、エージェントのユーザイグジットがアクティブである統合サーバにのみ作成(または続行)されます。

エージェントのログファイルサイズの設定

AppDynamics IIB エージェントによって、実行グループごとに個別のログファイルが作成されます。これにより、実行グループがインストゥルメント化されていない場合でも、各ログは継続的に増大していきます。

したがって、インストゥルメント化されていない実行グループのログに対する更新のプッシュを停止する必要が生じます。AppDynamics IIB エージェントでは、要件に応じてログファイルサイズを設定できるようになりました。

構成ファイルの次の設定では、controller-info.xml でエージェントのログファイルサイズを設定できます。

<log-settings>
<log-setting broker="" execution-group="">
<max-file-size/>
</log-setting>
</log-settings>
CODE

設定は次のように定義されています。

設定説明
<log-settings></log-settings>ヘッダータグ
<log-setting broker="" execution-group="">ブローカー名と実行グループ名(文字列にする必要があります)
<max-file-size> </max-file-size>ログファイルの最大サイズ。形式は <number><unit> ですたとえば、5 MB です。有効な単位は "MB" または "KB" です。KB 単位の許容範囲は [200KB、999KB]、MB 単位の許容範囲は [1MB、999MB] です。すべての実行グループに独自のログファイルがあります。

ただし、設定の際は次のガイドラインに注意する必要があります。

  • ブローカーに名前が付けられていない場合、設定がすべてのブローカーに適用されます。
  • 実行グループに名前が付けられていない場合、設定がすべての実行グループに適用されます。
  • 実行グループ名には、ブローカー名を付ける必要があります。

ログの設定を含める場合は、log-rotation を 1 に設定します。それ以外の場合は、デフォルト値の 5 がログローテーションと見なされます。

たとえば、次の構成では、ログ設定の 3 つのインスタンスがあります。

<controller-info>
<controller-host/>
<controller-port/>
<controller-ssl-enabled/>
<account-name/>
<account-access-key/>
<application-name/>
<tier-name/>
<user-exit/>
<log-level/>
<enable-extended-logging/>
<controller-cert-file/>
<controller-cert-dir/>
<log-settings>
<log-setting broker="" execution-group="">
<max-file-size>200KB</max-file-size>
</log-setting>
<log-setting broker="Broker1" execution-group="EG1">
<max-file-size>2MB</max-file-size>
</log-setting>
<log-setting broker="Broker1" execution-group="">
<max-file-size>3MB</max-file-size>
</log-setting>
</log-settings>
</controller-info>
CODE

次の表に、優先順位を示します。優先順位は 1 → 2 → 3 → 4 と定義されます。したがって、注文が無効または一致しない場合、次の有効な注文が考慮されます。

注文番号設定注文テンプレート
1実行グループ<log-setting broker="Broker1" execution-group="EG1">
2ブローカー<log-setting broker="Broker1" execution-group="">
3複数のブローカー間<log-setting broker="" execution-group="">
4デフォルトエージェントのデフォルト(10 MB)を適用

次に、上記の構成例で使用する場合のさまざまな実行グループに対する有効な値を示します。

ブローカ名

実行グループ名

有効な値(max-file-size)

Broker1EG12MB
Broker1他のすべての EG3 MB
他のすべてのブローカー他のすべての EG200KB

ノード名の再利用の有効化

ノード名の再利用機能により、ユーザーは過去の VM のノード名を新しい VM に再利用できます。特にノードが異なる時間に実行される同一のプロセスである場合に、異なる名前のノードが急速に増加することがなくなります。これは、寿命の短い VM がある環境をモニターするのに役立ちます。 

この機能を有効にするには、IIB 構成(controller-info.xml) ファイルで次のように指定します。

<node-reuse>true</node-reuse>
<node-reuse-prefix>prefixName</node-reuse-prefix>
CODE

node-reuse-prefix プロパティにより、コントローラはプレフィックス <prefixName> を使用してノード名を動的に生成できます。並行して実行されるノードは、実行中のノードの数に応じて、サフィックス(-1、-2、-3 など)によって区別されます。有効にすると、ノード名がアプリケーション、階層、シーケンス番号を使用して生成されます。また、ノード名はプールされます。たとえば、ノードがパージされる(ノードの存続期間に基づく)と、シーケンス番号が再利用されます。

ノードがシャットダウンすると、履歴ノードになり、その名前を新しいノードとして使用できます。ただし、ノードが予期せずまたは強制的にシャットダウンした場合、エージェントはコントローラにシャットダウンについて通知しません。この場合、ノード名は再利用されません。強制的なシャットダウンを避けるために、terminationGracePeriod を使用できます。 IIB エージェントでは terminationGracePeriod は 60 秒にすることをお勧めします。

terminationGracePeriod の詳細については、「Kubernetes best practices: terminating with grace」を参照してください。


この機能を指定しない場合、IIB エージェントは、IBM 標準に基づいて内部ノード名を生成します。

トラブルシューティング

エージェントで機能上の問題が発生した場合は、次の情報を確認し、それを AppDynamics サポートに提出します。

  • エージェントのログ。IIB エージェントは、構成されたログディレクトリに、またはメッセージログが記録される時点で構成が読み取られなかった場合は /tmp/appd にステータス情報を書き込みます。ステータス情報は、エージェントの問題を診断するのに役立ちます。
  • システムログ。IIB ブローカーからシステムログにステータスメッセージが書き込まれます。メッセージには、ユーザイグジット(AppDynamics IIB エージェントなど)のロードおよび操作に関する情報が含まれています。
  • IIB エラーディレクトリ内のファイルが異常終了します。デフォルトの場所は /var/mqsi/common/errors です。
  • コアファイル(存在する場合)。

controller-info.xml ファイルで指定されたユーザイグジット名が正確な英数字でない場合は、ブローカーでエージェントをロードできず、起動に失敗します。

エージェントに問題がある場合、またはエージェントを無効にする場合は、次の手順を実行します。

  1. ブローカーを停止するmqsistop <broker-name>.
  2. 該当するバージョンに基づいて、次の手順を実行します。

    AppDynamics ユーザの終了を削除するmqsichangebroker <broker-name> -x "" -e ""

    node.conf.yaml ファイル内の次のパラメータを空の文字列として設定します。

    UserExits:
    activeUserExitList: ''
    userExitPath: ''

  3. ブローカーを開始するmqsistart <broker-name>.

IIB エージェントの無効化

フローごとにエージェントを有効にした場合は、エージェントが有効になっているフローごとに次の手順を実行します。

  1. ブローカーを停止するmqsistop <broker-name>.
  2. 各フローのユーザの終了を無効にするmqsichangebroker <broker-name> -a "" -e <integrationServerName> -f <messageFlow> -k <applicationName>.
  3. ブローカーを開始するmqsistart <broker-name>.

統合サーバレベルでエージェントを有効にしている場合は、サーバごとに次の手順を実行します。

  1. ブローカーを停止するmqsistop <broker-name>.
  2. server.conf.yaml ファイル内の次のパラメータを空の文字列として設定します。ファイルは次の場所で確認できます。"<path-to-installation-directory>/<broker-name>/servers/<server-name>/server.conf.yaml
    Userexits:
    activeUserExitList: ''
    userExitPath: ''
  3. ブローカーを開始するmqsistart <broker-name>.

AppDynamics Monitor Agent Tool によって追加された MQRFH2 インジェクションをオフにする

MQ メカニズムを使用する IIB エージェントの場合、ダウンストリーム層との相関を提供するために MQRFH2 メッセージヘッダーが使用されます。アップストリーム IIB エージェントで MQ メッセージを消費するアプリケーションは、エンドツーエンドの相関を提供するために、MQRFH2 ヘッダーの標準をサポートする必要があります。

MQ を介して IIB エージェントからのメッセージを解析する際にダウンストリーム エージェントがエラー MQRC_HEADER_ERROR(MQRC 2142)を報告する状況では、次のいずれかを実行できます。

  • ダウンストリーム ソフトウェアを、MQRFH2 をサポートするバージョンにアップグレードすることにより、MQRFH2 ヘッダー構造を受け入れるようにダウンストリーム コンシューマを更新します。
  • IIB エージェントの MQ 相関を無効にするには、controller-info.xml ファイルで <disable-mq-correlation>1</disable-mq-correlation> を設定し、エージェントを再起動します。
  • 宛先キューで MQ PROPCTL プロパティを NONE に変更します。https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.mig.doc/q008230_.htm を参照してください。 

IBM MQ .NET クライアントのトラブルシューティング

AppDynamics Monitor Agent tool は、メッセージをキューに追加する前に、MQ メッセージに RFH ヘッダーを追加します。この追加の RFH ヘッダーにより、IBM MQ .NET クライアントはメッセージの解析中に MQRC_HEADER_ERROR (MQRC 2142) を報告する場合があります。次に、MQMessage に追加される RFH ヘッダーの例を示します。

RFH ….x…”…3…MQSTR ……..P…<usr><singularityheader
dt=”string” >notxdetect
=True</singularityheader></usr>

RFH2 構造体は <usr><singularityheader dt=”string” > で始まります。この RFH ヘッダーは、MQ ではなく、AppDynamics Monitor Agent tool によって追加されます。

ツールの追加ヘッダーを無効にするには、次の手順を実行します。
1. 「Configuration > Instrumentation > Backend Detection.
2. アプリケーション名をクリックして、[.NET] タブに移動し、[Queues] をクリックします。
3. [Edit Automatic Discovery] をクリックし、ポップアップで [Correlation Enabled] チェックボックスをオフにします。