このページでは、AppDynamics でのカスタムアクションの手順について説明します。

AppDynamics の正常性ルール違反およびイベントの通知をアラートまたはチケットシステムと統合するために、コントローラインスタンス上でカスタムアクションをセットアップできます。アラートシステムに情報を渡すカスタム通知を作成することによって、プッシュアプ​​ローチを使用します。

カスタム通知とカスタムアクション

カスタム通知により、AppDynamicsの正常性ルール違反およびイベントに関するアラートを、お使いのアラートシステムに統合できます。この統合の拡張には次のものが必要です。

  • カスタム通知に関する情報を提供する custom.xml ファイル
  • アラートをトリガーするイベントおよび正常性ルール違反に関する AppDynamics からのパラメータを受け取る実行可能スクリプト
  • カスタムアクションによってカスタム通知をトリガーするための AppDynamics イベントまたはポリシーの構成

カスタムアクションの作成

スクリプトの作成

実装するカスタムアクションごとに、AppDynamics から渡されるパラメータを受け取って処理できる実行可能スクリプト(Windows では .bat 拡張子、Linux では .sh 拡張子)を作成します。パラメータに関する詳細は、「Information Passed to the Custom Action Script from AppDynamics」を参照してください。

スクリプトごとに、次のようにします。

  • Linux環境でシェルスクリプトの適切な実行権限を設定します。たとえば、chmod 770 script1.sh とします。
  • スクリプトファイルで正しく文字がエンコードされていることを確認します。これは、Windowsマシン上でUnixシェルスクリプトを作成する場合は特に重要です。

オンプレミスコントローラへのスクリプトのインストール

オンプレミスコントローラへスクリプトをインストールするには、次の手順を実行します。

  1. コントローラのインストールディレクトリの直下に「custom 」という名前のディレクトリを作成し、その下に「actions」サブディレクトリを作成します。

    <controller_home>/custom/actions
    CODE
  2. <controller_home>/custom/actions ディレクトリで、インストールする各カスタム アクション スクリプトのためのサブディレクトリを作成します(たとえば、JIRA システムと連動するアクション用など)。

    <controller_home>/custom/actions/jira
    CODE
  3. 作成した適切なサブディレクトリにスクリプトを移動します。

XMLファイルの作成

  1. カスタム アクション スクリプトの場所と名前を記述した custom.xml ファイルを作成します。「Contents of the custom.xml File」を参照してください。
  2. オンプレミスコントローラの場合は、ファイルを <controller_home>/custom/actions ディレクトリに移動します。SaaS コントローラの場合の手順については、AppDynamics のアカウント担当者までお問い合わせください。

オンプレミスコントローラでのスクリプトの検証

  1. スクリプトとcustom.xmlファイルをインストールしたら、コントローラを再起動します。
  2. スクリプトを手動で検証します。スクリプトの検証方法:
    a. コントローラホストマシンでコマンドラインコンソールを開く。
    b. コマンドラインコンソールからスクリプトファイルを実行。

カスタムアクションの作成

カスタムアクションがトリガーされる方法を調整するには、「カスタム アクション」を参照してください。

custom.xmlファイルのコンテンツ

custom.xml ファイルには、コントローラ上のあらゆるカスタムアクションに対する <actions> 要素があります。 

<type> 要素にはスクリプトファイルを含むサブディレクトリがあります。

<executable> 要素にはスクリプトの名前があります。

サンプル custom.xml ファイル

<custom-actions>
  <action>
     <type>jira</type>
     <executable>script1.bat</executable>
  </action>
  <action>
    <type>bugzilla</type>
    <executable>script2.sh</executable>
  </action>
</custom-actions>
CODE

AppDynamicsからカスタムアクションスクリプトに渡される情報

カスタムアクションスクリプトは、コントローラが正常性ルール違反またはその他のイベントから渡すパラメータを処理する必要があります。パラメータの値は文字列の配列として伝えられます。

スクリプト名のパラメータは $0 として伝えられます。$1, $2, . . . $n.  $1 は最初のパラメータ(アプリケーション名)、$2 はアプリケーション ID と順番に続きます。以下のセクションでその順番を確認できます。

正常性ルール違反には、イベントとは異なるパラメータセットがあります。

正常性ルール違反によって渡されるパラメータ

パラメータにより、アクションをトリガーした正常性ルール違反が記述されます。

配列内の要素の総数は、正常性ルールにより評価されるエンティティの数と、評価エンティティごとのトリガーされる条件の数によって異なります。評価エンティティの例としては、アプリケーション、ティア、ノード、ビジネストランザクション、JMX などがあります。スクリプトは、評価エンティティごとにエンティティタイプ、エンティティ名、エンティティID、トリガーされる条件の数を期待し、トリガーされる条件ごとに一連の条件パラメータを期待します。

パラメータの値は、記述する順で渡されます。

正常性ルール違反により送信されるパラメータの構造

  • APP_NAME
  • APP_ID
  • PVN_ALERT_TIME
  • PRIORITY
  • SEVERITY // INFO, WARN, ERROR 
  • ACTION_NAME
  • HEALTH_RULE_NAME
  • HEALTH_RULE_ ID
  • PVN_TIME_PERIOD_IN_MINUTES
  • AFFECTED_ENTITY_TYPE
  • AFFECTED_ENTITY_NAME
  • AFFECTED_ENTITY_ID
  • NUMBER_OF_EVALUATION_ENTITIES—次のパラメータが、評価エンティティごとに渡されます。
    • EVALUATION_ENTITY_TYPE
    • EVALUATION_ENTITY_NAME
    • EVALUATION_ENTITY_ID
    • NUMBER_OF_TRIGGERED_CONDITIONS_PER_EVALUATION_ENTITY—次のパラメータが、この評価エンティティのトリガー条件ごとに渡されます。
      • SCOPE_TYPE_x
      • SCOPE_NAME_x
      • SCOPE_ID_x
      • CONDITION_NAME_x
      • CONDITION_ID_x
      • OPERATOR_x
      • CONDITION_UNIT_TYPE_x
      • USE_DEFAULT_BASELINE_x
      • BASELINE_NAME_x
      • BASELINE_ID_x
      • THRESHOLD_VALUE_x
      • OBSERVED_VALUE_x
  • SUMMARY_MESSAGE
  • INCIDENT_ID
  • DEEP_LINK_URL
  • EVENT_TYPE
  • ACCOUNT_NAME
  • ACCOUNT_ID
  • TAG

正常性ルール違反によって送信されるパラメータの定義

正常性ルール違反パラメータ

定義

APP_NAME

ビジネスアプリケーションの名前。

APP_ID

アプリケーション ID 番号。

PVN_ALERT_TIME

アラート時刻(例:Thu Dec 22 15:03:56 PST 2011)。

PRIORITY

正常性ルール違反の是正の緊急度を指定する整数。最小値(0)が最も高い緊急度を表す。

SEVERITY

INFOWARN、または ERROR。コントローラ UI では Info、Warning、および Critical。

ACTION_NAME正常性ルール違反後に呼び出されるアクションの名前。

HEALTH_RULE_NAME

違反のあった正常性ルールの名前。

HEALTH_RULE_ ID

正常性ルール ID。

PVN_TIME_PERIOD_IN_MINUTES

正常性ルール違反の期間(分単位)。

AFFECTED_ENTITY_TYPE

APPLICATION, APPLICATION_COMPONENT (別名 TierAPPLICATION_COMPONENT_NODE, BUSINESS_TRANSACTION, APPLICATION_DIAGNOSTIC_DATA ((別名 Error)。

AFFECTED_ENTITY_NAME

影響を受けるエンティティ名。

AFFECTED_ENTITY_ID

影響を受けるエンティティ ID。

NUMBER_OF_EVALUATION_ENTITIES

正常性ルールの条件に違反しているエンティティ(ビジネストランザクション、アプリケーション、ティア、ノード、エラー、JMX カウンタなど)の数。

EVALUATION_ENTITY_TYPE

APPLICATION, APPLICATION_COMPONENT(別名ティア)、APPLICATION_COMPONENT_NODE, BUSINESS_TRANSACTION, APPLICATION_DIAGNOSTIC_DATA(別名エラー)、JMX.

EVALUATION_ENTITY_NAME

評価エンティティ名(JMX の場合はカウンタ名)。

EVALUATION_ENTITY_ID

評価エンティティ ID、または JMX の場合は <NULL>

NUMBER_OF_TRIGGERED_CONDITIONS_PER_EVALUATION_ENTITY 

トリガーされる条件パラメータを評価エンティティごとにループする回数。複数の条件がトリガーされる場合、トリガーされる条件ごとにパラメータが複製される(x は条件の位置を示す)。

SCOPE_TYPE_x

パラメータのスコープ(アプリケーション、ティア、またはノード):
APPLICATION, APPLICATION_COMPONENT, APPLICATION_COMPONENT_NODE.

SCOPE_NAME_x

スコープの名前(例:ACME Book Store Application)。

SCOPE_ID_x

スコープ ID。

CONDITION_NAME_x

正常性ルールの条件名。

CONDITION_ID_x

正常性ルールの条件 ID。

OPERATOR_x

許可されたオペレータ: LESS_THAN, LESS_THAN_EQUALS, GREATER_THAN, GREATER_THAN_EQUALS, EQUALS, NOT_EQUALS.

CONDITION_UNIT_TYPE_x

しきい値パラメータの条件: ABSOLUTE, BASELINE_STANDARD_DEVIATION, BASELINE_PERCENTAGE, BASELINE_PERCENTILE.

USE_DEFAULT_BASELINE_x

条件のユニットタイプが BASELINE_ タイプのいずれかである場合にのみ該当するブール型パラメータ(true または false)。

BASELINE_NAME_x

条件ユニットのタイプが BASELINE_ タイプのいずれかであり、デフォルトベースラインの使用パラメータが false. の場合にのみ該当

BASELINE_ID_x

条件ユニットのタイプが BASELINE_ タイプのいずれかであり、デフォルトベースラインの使用パラメータが false. の場合にのみ該当

THRESHOLD_VALUE_x

正常性ルールのしきい値の設定。

OBSERVED_VALUE_x

正常性ルールのしきい値に違反した値。

SUMMARY_MESSAGE

「正常性ルールに違反しています」のような通知のサマリー

INCIDENT_ID

この正常性ルール違反のインシデント ID 番号。インシデント ID はコントローラ内で一意。フィールドは int(11) として定義され、4 バイト(32 ビット)の空間を使用し、最大値は 2^(31) - 1 = 2147483647、最小値は -2147483648。1 ビットは符号用。

DEEP_LINK_URL

コントローラのディープリンクURL。例:

http://<controller-host-url>/#location=APP_INCIDENT_DETAIL&incident=<incident-id>

インシデント ID を URL に追加し、このポリシー違反に対するコントローラ UI へのリンクを提供。

EVENT_TYPE

POLICY_OPEN_WARNING, POLICY_OPEN_CRITICAL, POLICY_CLOSE_WARNING, POLICY_CLOSE_CRITICAL, POLICY_UPGRADED, POLICY_DOWNGRADED, POLICY_CANCELED_WARNING, POLICY_CANCELED_CRITICALPOLICY_CONTINUES_CRITICAL、および POLICY_CONTINUES_WARNING

ACCOUNT_NAMEアクションがトリガーされたアカウントの名前。
ACCOUNT_IDアクションがトリガーされたアカウントの ID。
TAGユーザによって指定されたタグ、またはタグが指定されていない場合は空の文字列。

イベントによって渡されるパラメータ

パラメータにより、アクションをトリガーしたイベントが記述されます。

配列内の要素の総数は、アクションをトリガーしたイベントタイプおよびイベントサマリーの数によって異なります。 

パラメータの値は、記述する順で渡されます。

イベントにより送信されるパラメータの構造

  • APP_NAME
  • APP_ID
  • EN_TIME 
  • PRIORITY
  • SEVERITY 
  • EN_NAME
  • EN_ ID
  • EN_INTERVAL_IN_MINUTES
  • NUMBER_OF_EVENT_TYPES
    T
    次のパラメータが、イベントタイプごとに渡されます。
    • EVENT_TYPE_x
    • EVENT_TYPE_NUM_x
  • NUMBER_OF_EVENT_SUMMARIES
    次のパラメータが、イベントサマリーごとに渡されます。
    • EVENT_SUMMARY_ID_x
    • EVENT_SUMMARY_TYPE_x
    • EVENT_SUMMARY_SEVERITY_x
    • EVENT_SUMMARY_STRING _x
  • DEEP_LINK_URL
  • ACCOUNT_NAME
  • ACCOUNT_ID
  • TAG

イベントによって送信されるパラメータの定義

イベント通知パラメータ

定義

APP_NAME

ビジネスアプリケーションの名前。

APP_ID

アプリケーション ID 番号。

EN_TIME

イベント通知時刻(例:Wed Jan 04 09:36:55 PST 2012)。

PRIORITY

正常性ルール違反の是正の緊急度を指定する整数。最小値(0)が最も高い緊急度を表す。

SEVERITY

許容値:INFOWARN、または ERROR.。AppDynamics UI では Info、Warning、および Critical。

EN_NAME

イベント通知の名前。

EN_ID

イベント通知 ID 番号。

EN_INTERVAL_IN_MINUTES

分単位のイベント通知間隔。

NUMBER_OF_EVENT_TYPES

イベントタイプのマップパラメータでループする回数を決定。

EVENT_TYPE_x

1 つ以上のイベントタイプがある場合、パラメータは各イベントタイプで繰り返し(イベントタイプを示す数字が x 分増加)。

EVENT_TYPE_NUM_x

このタイプのイベントの数。

NUMBER_OF_EVENT_SUMMARIES

通知内のイベントサマリーの数(イベントサマリーパラメータをループする回数を決定)。

EVENT_SUMMARY_ID_x

イベントサマリー ID 番号。

EVENT_SUMMARY_TIME_x

イベントサマリー時刻(例:Wed Jan 04 09:34:13 PST 2012)。

EVENT_SUMMARY_TYPE_x

次のようなイベントのタイプ。 APPLICATION_CONFIG_CHANGE, APP_SERVER_RESTART, DIAGNOSTIC_SESSION, STALL.

EVENT_SUMMARY_SEVERITY_x

イベントの重大度:INFOWARN 、または ERROR。コントローラ UI では Info、Warning、および Critical。

EVENT_SUMMARY_STRING_x

イベントサマリー文字列(例:Application Server environment variables changed)。

DEEP_LINK_URL

http://<controller-host-url>/#location=APP_EVENT_VIEWER_MODAL&eventSummary=
各イベントサマリー ID を URL に追加して、このイベントに対するコントローラ UI へのリンクを提供。

ACCOUNT_NAMEアクションがトリガーされたアカウントの名前。
ACCOUNT_IDアクションがトリガーされたアカウントの ID。
TAGユーザによって指定されたタグ、またはタグが指定されていない場合は空の文字列。