25.3. アラートへの対応
25.3.1. 管理者への通知およびアラートへの応答
- 1 つ以上のアドレスへの電子メール
- SNMP トラップ
- JBoss ON ユーザーへのメッセージ
- リソース操作(アラートリソースまたはインベントリー内の他のリソース上)の実行
- リソーススクリプトの実行(特定タイプのリソース操作)
- JBoss ON CLI スクリプト
25.3.2. 詳細なディスカッション: 操作の開始
- アラート操作は、すべてのアラートまたはイベントに対応するために応答的に実行されます。
- アラート操作は、JBoss ON インベントリーの 任意 のリソースで開始できます。アラート操作は、アラートを送信したリソースのみに限定されます。つまり、同じホストサーバーで、または全く異なるサーバーでも、異なるアプリケーションに対して操作を実行できます。
25.3.2.1. アラート操作でのトークンの使用
<%space.param_name%>
... に関する情報 | token | description |
---|---|---|
Started Alert | alert.willBeDisabled | アラート定義は、起動後に無効にするか。 |
Started Alert | alert.id | この特定アラートの ID |
Started Alert | alert.url | アラートの詳細ページの URL |
Started Alert | alert.name | 定義するアラート定義の名前 |
Started Alert | alert.priority | このアラートの優先度 |
Started Alert | alert.description | このアラートの説明 |
Started Alert | alert.firedAt | アラートの発生時間 |
Started Alert | alert.conditions | このアラートの原因となった条件のテキスト表現 |
アラートリソース | resource.id | リソースの ID |
アラートリソース | resource.platformType | リソースが有効なプラットフォームのタイプ |
アラートリソース | resource.platformName | リソースが置かれているプラットフォームの名前 |
アラートリソース | resource.typeName | リソースタイプ名 |
アラートリソース | resource.name | リソースの名前 |
アラートリソース | resource.platformId | リソースが有効なプラットフォームの ID |
アラートリソース | resource.parentName | 親リソースの名前 |
アラートリソース | resource.parentId | 親リソースの ID |
アラートリソース | resource.typeId | リソースタイプ id |
ターゲットリソース | targetResource.parentId | ターゲットの親リソースの ID |
ターゲットリソース | targetResource.platformName | ターゲットリソースがオンになっているプラットフォームの名前 |
ターゲットリソース | targetResource.platformId | ターゲットリソースがオンになっているプラットフォームの ID |
ターゲットリソース | targetResource.parentName | ターゲットの親リソースの名前 |
ターゲットリソース | targetResource.typeId | ターゲットリソース ID のリソースタイプ |
ターゲットリソース | targetResource.platformType | ターゲットリソースがオンになっているプラットフォームのタイプ |
ターゲットリソース | targetResource.name | ターゲットリソースの名前 |
ターゲットリソース | targetResource.id | ターゲットリソースの ID |
ターゲットリソース | targetResource.typeName | ターゲットリソースのリソースタイプ名 |
operation | operation.id | 実行された操作の ID |
operation | operation.name | 操作が実行された名前 |
25.3.2.2. アラート操作の設定
図25.5 送信元
図25.6 リソースの選択
図25.7 操作の設定
25.3.3. 詳細なディスカッション: リソーススクリプトの開始
図25.8 リソーススクリプト設定
25.3.4. 詳細ディスカッション: アラートからの JBoss ON CLI スクリプトの起動
25.3.4.1. CLI スクリプト通知の使用に関する注意事項
CLI スクリプトがコンテンツである
リソーススクリプトとは異なり、CLI スクリプトはインベントリーのリソースとして扱われません。これらのツールは、JBoss ON サーバー自体が利用でき、(指定リソースには限定されず、関連付けるものではありません)。
CLI スクリプトおよびリモート API
CLI スクリプトは、サーバーで操作を実行するには適切な API を使用する必要があります。JBoss ON には、実行するタスクに応じて複数の異なる API セットがあります。サーバーに接続し、スクリプトを実行するには、サーバーでコマンドをリモートで実行できる リモーティング API が必要です。
CLI スクリプトでのアラートオブジェクトの参照
CLI スクリプトは、事前定義された アラート 変数を使用してスクリプトをトリガーするアラートオブジェクトのアラートオブジェクトを参照できます。
var myResource = ProxyFactory.getResource(alert.alertDefinition.resource.id)
CLI スクリプトの制限
リソース自体には、CLI スクリプトを実行できる場所や実行できる操作に制限が生じる場合があります。たとえば、セキュリティー上の理由から、CLI スクリプトはローカルリソース(CLI スクリプトを実行しているサーバーでルックアップを実行する)で JNDI ルックアップを実行できませんが、リモート JNDI ルックアップを実行できます。もう 1 つの一般的な問題は、JBoss ON サーバーがそれ自体で再起動操作を実行できないことです。
25.3.4.2. アラート関連の CLI スクリプトの作成
var myResource = ProxyFactory.getResource(alert.alertDefinition.resource.id) var definitionCriteria = new MeasurementDefinitionCriteria() definitionCriteria.addFilterDisplayName('Sessions created per Minute') definitionCriteria.addFilterResourceTypeId(myResource.resourceType.id) var definitions = MeasumentDefinitionManager.findMeasurementDefinitionsByCriteria(definitionCriteria) if (definitions.empty) { throw new java.lang.Exception("Could not get 'Sessions created per Minute' metric on resource " + myResource.id) } var definition = definitions.get(0) var startDate = new Date() - 8 * 3600 * 1000 //8 hrs in milliseconds var endDate = new Date() var data = MeasurementDataManager.findDataForResource(myResource.id, [ definition.id ], startDate, endDate, 60) exporter.setTarget('csv', '/the/output/folder/for/my/metrics/' + endDate + '.csv') exporter.write(data.get(0)) var dataSource = ProxyFactory.getResource(10411) connectionTest = dataSource.testConnection() if (connectionTest == null || connectionTest.get('result').booleanValue == false) { //ok, this means we had problems connecting to the database //let's suppose there's an executable bash script somewhere on the server that //the admins use to restart the database java.lang.Runtime.getRuntime().exec('/somewhere/on/the/server/restart-database.sh') }
/alert-scripts/
。
25.3.4.3. CLI スクリプト通知の設定
- スクリプトをコンテンツリポジトリーにアップロードします。注記アラート CLI スクリプト用に個別のリポジトリーを作成します。
- リソースを検索し、にあるように基本アラート定義を設定し 「リソースに対するアラート設定の基本的な手順」 ます。
- アラート定義の Notifications タブで、通知メソッドに名前を付け、Alert Senders ドロップダウンメニューから CLI Script メソッドを選択します。
- まず、スクリプトを実行するときに JBoss ON ユーザーを選択します。デフォルトは、通知を作成するユーザーです。
- CLI スクリプトが含まれるリポジトリーを選択します。新しいスクリプトをアップロードする場合は、スクリプトを追加するリポジトリーです。
- ドロップダウンメニューから使用する CLI スクリプトを選択します。指定したリポジトリーのすべてのスクリプトが一覧表示されます。Upload ボタンをクリックして、ローカルマシンのスクリプトを参照します。
- OK をクリックし、通知を保存します。Notifications タブ内の行には、スクリプト、リポジトリー、および実行されるユーザーが表示されます。
25.3.5. 通知用の SNMP の設定
- サーバーの SNMP アラートプラグインの設定。
- SNMP 通知を使用して実際のアラートを設定する。
25.3.5.1. JBoss ON SNMP 情報
/etc/RHQ-mib.txt
。MIB のデフォルト設定がに表示され 例25.1「JBoss ON MIB のデフォルトのアラートオブジェクト」 ます。JBoss ON アラートのベース OID は 1.3.6.1.4.1.18016.2.1 (org.dod.internet.private.enterprise.jboss.rhq.alert)です。
例25.1 JBoss ON MIB のデフォルトのアラートオブジェクト
--internet(1.3.6.1) +--private(4) | +--enterprises(1) | +--jboss(18016) | +--rhq(2) | +--alert(1) | | +-- r-n DisplayString alertName(1) | | +-- r-n DisplayString alertResourceName(2) | | +-- r-n DisplayString alertPlatformName(3) | | +-- r-n DisplayString alertCondition(4) | | +-- r-n DisplayString alertSeverity(5) | | +-- r-n DisplayString alertUrl(6) | | +-- r-n DisplayString alertHierarchy(7) | +--alertNotifications(2) | | +--alertNotifPrefix(0) | | +--alertNotification(1) [alertName,alertResourceName,alertPlatformName,alertCondition,alertSeverity,alertUrl,alertHierarchy] | +--rhqServer(3) +--snmpV2(6) +--snmpModules(3) +--rhqMIB(1) +--rhqTraps(3) +--rhqTrapPrefix(0)
[root@server ~]# snmptrapd -m RHQ-MIB -M/opt/local/share/mibs/ietf
-M
では、SNMP サーバーの MIB ディレクトリーへのパスを指定します。
Jul 8 15:13:31 snert snmptrapd[42372]: 127.0.0.1: Enterprise Specific Trap (.0) Uptime: 0:00:00.00, RHQ-MIB::alertName = STRING: test, RHQ-MIB::alertResourceName = STRING: snert, RHQ-MIB::alertPlatformName = STRING: snert, RHQ-MIB::alertCondition = STRING: - Condition 1: Free Memory < 1.024,0MB - Date/Time: 2013/07/08 15:13:05 MESZ - Details: 12,9MB , RHQ-MIB::alertSeverity = STRING: medium, RHQ-MIB::alertUrl = STRING: http://localhost:7080/coregui/CoreGUI.html#Resource/10001/Alerts/History/12204, RHQ-MIB::alertHierarchy = STRING: snert
22:06:19.043208 IP localhost.56445 > localhost.snmptrap: Trap(352) E:18016.2.3 0.0.0.0 enterpriseSpecific s=0 0 E:18016.2.1.1="test" E:18016.2.1.2="snert" E:18016.2.1.3="snert" E:18016.2.1.4="^J- Condition 1: Free Memory < 4,0GB^J- Date/Time: 2013/07/10 22:06:01 MESZ^J - Details: 179,2MB^J" E:18016.2.1.5="medium" E:18016.2.1.6="http://localhost:7080/coregui/CoreGUI.html#Resource/10001/Alerts/History/10038" E:18016.2.1.7="snert"
25.3.5.2. SNMP アラートプラグインの設定
- トップメニューで、Administration タブを選択します。
- System Configuration メニューで ServerPlugins 項目を選択します。
- リスト内の SNMP プラグインの名前をクリックします。
- プラグインの詳細ページで Plugin Configuration セクションを展開します。
- 必要な SNMP 設定を入力します。
- 適切な SNMP バージョンを選択します。
- SNMP トラップサーバーのホスト名、ポート番号、およびトランスポートプロトコルを指定します。デフォルトの設定は、JBoss ON サーバーおよびポート 162 の localhost を参照します。
- トラップ OID を設定します。これはデフォルトでは RHQ OID です。
- SNMP 1 および 2 の場合コミュニティーに名前を付けます。
注記これにより、SNMP アラート通知のグローバルデフォルトが設定されます。アラート定義の作成時に、個別のアラート通知に異なる設定を指定することができます。 - SNMP バージョン 1 およびバージョン 3 には、表25.3「SNMP v1 構成設定」 およびに記載されている追加設定が必要です 表25.4「SNMP v3 構成設定」。バージョン固有の設定セクションを展開し、SNMP エージェントに関する情報を入力します。フィールドを編集するには、チェックボックスの選択を Unset 解除する必要がある場合があります。
フィールド | description |
---|---|
汎用 ID | トラップの ID。SNMP 標準は 0-6 の数字を定義します。6 は企業固有を意味します。これはデフォルトです。 |
Enterprise OID | JBoss ON サーバー自体の OID。デフォルト値は RHQ MIB から SMIv2.enterprise.jboss.rhq.rhqServer として取得されます。 |
特定の OID | トラップ通知で使用するカスタム OID。これは空にすることができます。 |
エージェントアドレス | アラート送信者の IP アドレス(JBoss ON サーバーの IP アドレス)。 |
フィールド | description |
---|---|
Auth プロトコル | 認証要求の暗号化アルゴリズム。これを設定するには、対応する認証パスフレーズを設定する必要があります。パスフレーズがない場合、この値はである必要があり noneます。 |
プライバシープロトコル | トラップメッセージで使用する暗号化方法を設定します。これは認証プロocol に使用されます。 |
エンジン ID | |
ターゲットコンテキスト名 | |
認証パスフレーズ | 認証に使用されるパスワードを設定します。最小長は 8 文字です。これは、Auth Protocol 値が設定されている場合に必要になります。 |
プライバシーパスフレーズ | 暗号化通信の管理に使用するパスワードを設定します。これは、認証が使用される場合に必要になります。 |
セキュリティー名 | トラップレシーバーへの認証に使用するユーザー名を指定します。 |
25.3.5.3. SNMP アラート通知の設定
図25.9 JBoss ON SNMP トレース情報
- SNMP マネージャーのホスト名。これが設定されていない場合、グローバル設定のデフォルトが使用されます。
- SNMP マネージャーのポート番号。これが設定されていない場合、グローバル設定のデフォルトが使用されます。
- 変数バインディングのプレフィックス。オプション。これにより、指定の文字列がトラップによって送信される個々の変数の先頭に追加されます。これは、トラップを送信する JBoss ON サーバー、リソース、またはアラートを識別する方法になります。デフォルトは RHQ MIB で設定され SMIv2.enterprise.jboss.rhq.alertます。
- トラップ OID。これは、トラップ定義で使用する特定の OID です。これが設定されていない場合、グローバル設定のデフォルトが使用されます。デフォルトでは、これは RHQ-MIB です 1.3.6.1.4.1.18016.2.1。