Download PDF
Download page カスタムアクションの構築.
カスタムアクションの構築
このページでは、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シェルスクリプトを作成する場合は特に重要です。
オンプレミスコントローラへのスクリプトのインストール
オンプレミスコントローラへスクリプトをインストールするには、次の手順を実行します。
コントローラのインストールディレクトリの直下に「
custom
」という名前のディレクトリを作成し、その下に「actions
」サブディレクトリを作成します。<controller_home>/custom/actions
CODE<controller_home>/custom/actions
ディレクトリで、インストールする各カスタム アクション スクリプトのためのサブディレクトリを作成します(たとえば、JIRA システムと連動するアクション用など)。<controller_home>/custom/actions/jira
CODE- 作成した適切なサブディレクトリにスクリプトを移動します。
XMLファイルの作成
- カスタム アクション スクリプトの場所と名前を記述した
custom.xml
ファイルを作成します。「Contents of the custom.xml File」を参照してください。 - オンプレミスコントローラの場合は、ファイルを
<controller_home>/custom/actions
ディレクトリに移動します。SaaS コントローラの場合の手順については、AppDynamics のアカウント担当者までお問い合わせください。
オンプレミスコントローラでのスクリプトの検証
- スクリプトとcustom.xmlファイルをインストールしたら、コントローラを再起動します。
- スクリプトを手動で検証します。スクリプトの検証方法:
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>
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
正常性ルール違反によって送信されるパラメータの定義
正常性ルール違反パラメータ | 定義 |
---|---|
| ビジネスアプリケーションの名前。 |
| アプリケーション ID 番号。 |
| アラート時刻(例:Thu Dec 22 15:03:56 PST 2011)。 |
| 正常性ルール違反の是正の緊急度を指定する整数。最小値(0)が最も高い緊急度を表す。 |
|
|
ACTION_NAME | 正常性ルール違反後に呼び出されるアクションの名前。 |
| 違反のあった正常性ルールの名前。 |
| 正常性ルール ID。 |
| 正常性ルール違反の期間(分単位)。 |
|
|
| 影響を受けるエンティティ名。 |
| 影響を受けるエンティティ ID。 |
| 正常性ルールの条件に違反しているエンティティ(ビジネストランザクション、アプリケーション、ティア、ノード、エラー、JMX カウンタなど)の数。 |
|
|
| 評価エンティティ名(JMX の場合はカウンタ名)。 |
| 評価エンティティ ID、または JMX の場合は |
| トリガーされる条件パラメータを評価エンティティごとにループする回数。複数の条件がトリガーされる場合、トリガーされる条件ごとにパラメータが複製される(x は条件の位置を示す)。 |
| パラメータのスコープ(アプリケーション、ティア、またはノード): |
| スコープの名前(例:ACME Book Store Application)。 |
| スコープ ID。 |
| 正常性ルールの条件名。 |
| 正常性ルールの条件 ID。 |
| 許可されたオペレータ: |
| しきい値パラメータの条件: |
| 条件のユニットタイプが |
| 条件ユニットのタイプが |
| 条件ユニットのタイプが |
| 正常性ルールのしきい値の設定。 |
| 正常性ルールのしきい値に違反した値。 |
| 「正常性ルールに違反しています」のような通知のサマリー。 |
| この正常性ルール違反のインシデント ID 番号。インシデント ID はコントローラ内で一意。フィールドは int(11) として定義され、4 バイト(32 ビット)の空間を使用し、最大値は 2^(31) - 1 = 2147483647、最小値は -2147483648。1 ビットは符号用。 |
| コントローラのディープリンクURL。例: http://<controller-host-url>/#location=APP_INCIDENT_DETAIL&incident=<incident-id> インシデント ID を URL に追加し、このポリシー違反に対するコントローラ UI へのリンクを提供。 |
|
|
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
次のパラメータが、イベントタイプごとに渡されます。
TEVENT_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
イベントによって送信されるパラメータの定義
イベント通知パラメータ | 定義 |
---|---|
| ビジネスアプリケーションの名前。 |
| アプリケーション ID 番号。 |
| イベント通知時刻(例:Wed Jan 04 09:36:55 PST 2012)。 |
| 正常性ルール違反の是正の緊急度を指定する整数。最小値(0)が最も高い緊急度を表す。 |
| 許容値: |
| イベント通知の名前。 |
| イベント通知 ID 番号。 |
| 分単位のイベント通知間隔。 |
| イベントタイプのマップパラメータでループする回数を決定。 |
| 1 つ以上のイベントタイプがある場合、パラメータは各イベントタイプで繰り返し(イベントタイプを示す数字が x 分増加)。 |
| このタイプのイベントの数。 |
| 通知内のイベントサマリーの数(イベントサマリーパラメータをループする回数を決定)。 |
| イベントサマリー ID 番号。 |
| イベントサマリー時刻(例:Wed Jan 04 09:34:13 PST 2012)。 |
| 次のようなイベントのタイプ。 |
| イベントの重大度: |
| イベントサマリー文字列(例:Application Server environment variables changed)。 |
|
|
ACCOUNT_NAME | アクションがトリガーされたアカウントの名前。 |
ACCOUNT_ID | アクションがトリガーされたアカウントの ID。 |
TAG | ユーザによって指定されたタグ、またはタグが指定されていない場合は空の文字列。 |