検索

25.3. アラートへの対応

download PDF
アラート条件は、アラートがトリガーされる タイミング を定義します。アラート通知は、アラート通知の通信 方法 を定義します。アラート通知は、管理者およびユーザーに状況を知らせる方法になりますが、JBoss ON 自体が問題に対処する方法である可能性もあります。
単一のアラートには複数の応答があり、潜在的な問題の管理が容易になります。
重要
アラート通知は、アラート定義に追加された後に編集できません。アラート通知を変更するには、元の通知を削除して、希望の設定で新しい通知を作成します。

25.3.1. 管理者への通知およびアラートへの応答

すべてのアラートは JBoss ON GUI で記録され、表示できます。ただし、アラートには、アラートの発行時に外部通知を送信するオプションの設定があります。
インシデントが発生したら、システム管理者に問題に対応させる手段が必要です。これは、通知 を設定して行います。アラート通知は、アラートの通信方法とアラートに対する対応アクションという 2 つのカテゴリーに分類されます。
デフォルトでは、アラートが発生したことを通知する方法は 3 つあります。
  • 1 つ以上のアドレスへの電子メール
  • SNMP トラップ
  • JBoss ON ユーザーへのメッセージ
JBoss ON がアラートに応答するデフォルトの方法もいくつかあります。
  • リソース操作(アラートリソースまたはインベントリー内の他のリソース上)の実行
  • リソーススクリプトの実行(特定タイプのリソース操作)
  • JBoss ON CLI スクリプト
注記
サーバー側のプラグインとして実装されるカスタムアラートメソッドを作成することもできます。カスタムプラグインの作成については、『JBoss Operations Network Plug-ins Writing Guide を参照してください』。
アラート通知は クラスター化 できます。つまり、同じアラートが同時に複数の異なる方法でブロードキャストできることを意味します。たとえば、公開 Web サイトがダウンした場合、ある会社では通知をユーザーのヘッド Web 管理者に送信し、Web サーバーを同時に再起動させることができます。
注記
1 つのアラートは複数の通知を開始できます。アラート通知は、アラート定義に一覧表示される順序で実行されます。

25.3.2. 詳細なディスカッション: 操作の開始

アラートへの並列応答は、操作 を開始することです。リソース操作(メトリクスなど)は、トリガーされたアラートに応じて通知などの起動されるリソースタイプエージェントプラグインで実行されます。アラート操作は、アラートを発行したリソース、またはインベントリー内の他のリソースで実行することができます。これにより、アラート条件に対する即時の自動応答が可能になります。たとえば、JVM がメモリー不足であるため、JBoss サーバーが不適切な実行を開始することがあります。JVM はアラートを発行するリソースですが、エージェントによる応答は JBoss サーバーを再起動することです。
特定のアラート条件が発生すると、リソースで操作を開始することで JBoss ON エージェントが応答できます。これはアラート定義設定の一部ですが、アラートへの応答を管理するのに便利です。アラートが発生するたびに、エージェントはサーバーを再起動するなど、何らかのアクションを実行できます。これは、アラートを発行したリソースまたは別のリソースで実行できます。
リモート操作は、非常に便利な(および汎用性)を超えることができます。たとえば、JVM がメモリー不足であるため、JBoss サーバーが不適切な実行を開始することがあります。JVM はアラートを発行するリソースですが、エージェントによる応答は JBoss サーバーを再起動することです。
通常の操作は、即座に開始するか、特定の設定リソースの定義されたスケジュールで実行されます。アラート操作は、以下の 2 つの理由により通常の操作よりも柔軟性があります。
  • アラート操作は、すべてのアラートまたはイベントに対応するために応答的に実行されます。
  • アラート操作は、JBoss ON インベントリーの 任意 のリソースで開始できます。アラート操作は、アラートを送信したリソースのみに限定されます。つまり、同じホストサーバーで、または全く異なるサーバーでも、異なるアプリケーションに対して操作を実行できます。
アラートに対して実行される操作は、リソースで実行するようにスケジュールできる操作と同じです。アラートに使用できる操作は、操作が実行されるターゲットリソースによって異なります。アラートが設定されているリソースではありません。
アラート操作送信者は、リモートリソースでスクリプトを実行できます。たとえば、リソースがダウンした場合、親プラットフォームで診断スクリプトを実行でき、別のリソースがオンラインになり、適切に実行するように設定できます。

25.3.2.1. アラート操作でのトークンの使用

アラート操作は、トークンを使用してイベントに関する情報を送信するか、またはイベントに関する情報を提供できます。たとえば、トークンを使用して、コマンドラインスクリプトにリソース情報を提供できます。
アラート操作は、トークンを受け入れ、特定の値を自動的に入力できます。これらのトークンの形式は以下のとおりです。
<%space.param_name%>
この 領域 は、値が派生する JBoss ON 設定エリアを提供します。これは一般的に、alert またはのいずれかになり resourceます。param_name は、指定されているエントリー値を指定します。たとえば、特定の発生するアラートの URL を参照する場合、トークンはリソース名をプル <%alert.url%>する場合に、トークンはになり <%resource.name%>ます。
JBoss ON には、起動されたアラートに関連する事前定義済みのトークン値、アラートを発行したリソース、オペレーションのターゲットであるリソース、および操作が開始された操作に関する事前定義済みのトークン値があります。これらはに記載されてい 表25.2「利用可能なアラート操作トークン」 ます。これらの潜在的なトークン値はすべて Java プロパティーで、オペレーションの親 JBoss ON サーバーに属します。
アラート操作プラグインは、アラート操作が処理されて値を見つける際にトークンの値自体を解決します。この値はスクリプトサービスに送信され、最終的にその値をコマンドラインの引数またはスクリプトにプラグインし、トークンを参照したスクリプトにプラグインします。
表25.2 利用可能なアラート操作トークン
... に関する情報 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. アラート操作の設定

注記
1 つのアラートは複数の操作を開始できます。すべてのアラート操作は、すべてのアラート通知と同様に、アラート定義に一覧表示される順序で実行されます。
Notifications タブには Resource Operations メソッドがあります。

図25.5 送信元

送信元
操作には 2 つの部分があります。最初に、操作を実行するリソースを選択します。リソースタイプは、利用可能な操作を決定します。
デフォルトは、アラートが設定されているリソースで、別の特定のリソースや検索の結果に設定することもできます。

図25.6 リソースの選択

リソースの選択
重要
相対 リソースを選択し、特定のリソース名を入力し ない 場合、操作は相対パスでそのリソースタイプに一致する すべて のリソースで実行されます。一致するリソースがない場合は、監査証跡にログインしてアラートプロセスが続行します。
相対リソースでは、リソース名は必要ありません。特定のリソースでは、になります。
2 つ目の半分は操作タイプを選択します。使用できる操作と設定パラメーターは、操作のターゲットとして選択されるリソースの種類によって異なります。

図25.7 操作の設定

操作の設定

25.3.3. 詳細なディスカッション: リソーススクリプトの開始

シェルや bat スクリプトなどのスクリプトは JBoss ON インベントリーにインポートでき、リソース(「新規リソースの手動によるインポート」)として管理できます。このスクリプトには、起動スクリプト、設定スクリプト、または診断スクリプトを含めることができます。
で説明されているように 「アラート操作の設定」、アラート通知はリソース(アラートをトリガーしたリソースとは異なるリソースも含む)で操作を実行できます。特定の使用方法のシナリオでは、リソーススクリプトを操作として実行します。
注記
スクリプトをリソースにアップロードし、アラート操作で使用する前に JBoss ON インベントリーに追加する必要があります。これは、で説明してい 「新規リソースの手動によるインポート」 ます。
リソーススクリプトの実行は、操作の実行と同じです。リソーススクリプトは操作のリソースとして選択され、スクリプトの start または restart 操作が設定され、必要に応じてスクリプトに渡すコマンドライン引数がすべて設定されます。

図25.8 リソーススクリプト設定

リソーススクリプト設定
重要
相対 リソースを選択し、name filter フィールドに特定のスクリプト名を入力し ない 場合、コマンド引数を使用して相対パスにある すべて のスクリプトリソースで操作が実行されます。一致するスクリプトがない場合は、監査証跡にログインしてアラートプロセスが続行します。
相対リソースでは、リソース名は必要ありません。特定のリソースでは、になります。スクリプトの実行を単一の特定のスクリプトに制限するには、特定のリソースオプションを選択し、一覧から正確なスクリプトを選択します。

25.3.4. 詳細ディスカッション: アラートからの JBoss ON CLI スクリプトの起動

JBoss ON には、Web UI がサーバーを管理するのと同じ方法でサーバーインスタンスを管理するために使用できる独自のコマンドラインクライアントがあります。アラート条件に対応してスクリプトリソースの実行や操作を開始するのと同様に、サーバー CLI スクリプトはアラート状態に対して実行できます。

25.3.4.1. CLI スクリプト通知の使用に関する注意事項

CLI スクリプトがコンテンツである

リソーススクリプトとは異なり、CLI スクリプトはインベントリーのリソースとして扱われません。これらのツールは、JBoss ON サーバー自体が利用でき、(指定リソースには限定されず、関連付けるものではありません)。

サーバー CLI スクリプトを実行するには、リポジトリー内のコンテンツとしてサーバーにアップロードする必要があります。

CLI スクリプトおよびリモート API

CLI スクリプトは、サーバーで操作を実行するには適切な API を使用する必要があります。JBoss ON には、実行するタスクに応じて複数の異なる API セットがあります。サーバーに接続し、スクリプトを実行するには、サーバーでコマンドをリモートで実行できる リモーティング API が必要です。

CLI スクリプトでのアラートオブジェクトの参照

CLI スクリプトは、事前定義された アラート 変数を使用してスクリプトをトリガーするアラートオブジェクトのアラートオブジェクトを参照できます。

この alert 変数は、アラート定義と発生する特定のアラートインスタンスを暗黙的に識別します。これにより、そのアラートスクリプトを使用するリソースに適用できるスクリプトにプロキシーリソース定義を作成できます。
var myResource = ProxyFactory.getResource(alert.alertDefinition.resource.id)
リソース ID は起動されたアラートからプルされ、スクリプトはそこからリソースを参照できます。

CLI スクリプトの制限

リソース自体には、CLI スクリプトを実行できる場所や実行できる操作に制限が生じる場合があります。たとえば、セキュリティー上の理由から、CLI スクリプトはローカルリソース(CLI スクリプトを実行しているサーバーでルックアップを実行する)で JNDI ルックアップを実行できませんが、リモート JNDI ルックアップを実行できます。もう 1 つの一般的な問題は、JBoss ON サーバーがそれ自体で再起動操作を実行できないことです。

CLI スクリプトをアラート応答として使用する場合は、潜在的なセキュリティーへの影響やリソースの制約に注意してください。

25.3.4.2. アラート関連の CLI スクリプトの作成

サーバー側のスクリプトは、強力かつ多用途のスクリプトです。サーバー機能や、リソース、グループ、またはその他のオブジェクトにほぼすべてのサーバーに影響を及ぼすことができ、一連のコマンドを実行できます。この汎用性により、CLI スクリプトはプロアクティブな方法でアラートに応答するのに非常に便利ですが、アラートが特定の条件で通知するように計画され、スクリプトがその特定の状況に応答するように設計される必要があります。
つまり、アラートを固有にし、CLI スクリプトに関連するものにします。
このスクリプトは、Web アプリケーションの最近の監視統計を確認し、接続に問題がある場合は Web サーバーデータベースを再起動します。
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')
}
JBoss ON CLI のコマンド、オプション、および変数は、「 JBoss ON のコマンドラインスクリプト 」に記載されています
アラートスクリプトのサンプルは、serverInstallDir のサーバーファイルに含まれてい ます/alert-scripts/

25.3.4.3. CLI スクリプト通知の設定

  1. スクリプトをコンテンツリポジトリーにアップロードします。
    注記
    アラート CLI スクリプト用に個別のリポジトリーを作成します。
  2. リソースを検索し、にあるように基本アラート定義を設定し 「リソースに対するアラート設定の基本的な手順」 ます。
  3. アラート定義の Notifications タブで、通知メソッドに名前を付け、Alert Senders ドロップダウンメニューから CLI Script メソッドを選択します。
  4. まず、スクリプトを実行するときに JBoss ON ユーザーを選択します。デフォルトは、通知を作成するユーザーです。
  5. CLI スクリプトが含まれるリポジトリーを選択します。新しいスクリプトをアップロードする場合は、スクリプトを追加するリポジトリーです。
  6. ドロップダウンメニューから使用する CLI スクリプトを選択します。指定したリポジトリーのすべてのスクリプトが一覧表示されます。Upload ボタンをクリックして、ローカルマシンのスクリプトを参照します。
  7. OK をクリックし、通知を保存します。Notifications タブ内の行には、スクリプト、リポジトリー、および実行されるユーザーが表示されます。

25.3.5. 通知用の SNMP の設定

SNMP アラートを送信するよう JBoss ON を設定するには、以下の 2 つの部分があります。
  • サーバーの SNMP アラートプラグインの設定。
  • SNMP 通知を使用して実際のアラートを設定する。

25.3.5.1. JBoss ON SNMP 情報

JBoss ON は、アラート通知の一部として SNMP トラップを他の管理用システムに送信することができます。送信されたデータには、トリガーされたアラート名やリソース名など、アラートに関する詳細が含まれます。
他の SNMP 通知と同様にトラップに含まれるデータは、serverRoot の JBoss ON MIB ファイルで定義され ます/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)
注記
デフォルトの MIB ファイルでは、各トラップはアラート定義名、リソース名、プラットフォーム、アラート条件、重大度、および URL をアラートの詳細ページに送信します。変換された MIB を表示するには、MIB の場所を SNMP トラップサーバーに渡すことができます。たとえば、NetSNMP を使用します。
[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
の出力はで tcpdump、同じ行すべてに似ています。
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 アラートプラグインの設定

SNMP アラート送信プラグインは、通知方法を使用する前に追加の設定を必要とする唯一のアラート通知プラグインです。SNMP プラグインは、適切な SNMP バージョンと SNMP エージェント情報で設定する必要があります。
  1. トップメニューで、Administration タブを選択します。
  2. System Configuration メニューで ServerPlugins 項目を選択します。
  3. リスト内の SNMP プラグインの名前をクリックします。
  4. プラグインの詳細ページで Plugin Configuration セクションを展開します。
  5. 必要な SNMP 設定を入力します。
    • 適切な SNMP バージョンを選択します。
    • SNMP トラップサーバーのホスト名、ポート番号、およびトランスポートプロトコルを指定します。デフォルトの設定は、JBoss ON サーバーおよびポート 162 の localhost を参照します。
    • トラップ OID を設定します。これはデフォルトでは RHQ OID です。
    • SNMP 1 および 2 の場合コミュニティーに名前を付けます。
    注記
    これにより、SNMP アラート通知のグローバルデフォルトが設定されます。アラート定義の作成時に、個別のアラート通知に異なる設定を指定することができます。
  6. SNMP バージョン 1 およびバージョン 3 には、表25.3「SNMP v1 構成設定」 およびに記載されている追加設定が必要です 表25.4「SNMP v3 構成設定」。バージョン固有の設定セクションを展開し、SNMP エージェントに関する情報を入力します。
    フィールドを編集するには、チェックボックスの選択を Unset 解除する必要がある場合があります。
表25.3 SNMP v1 構成設定
フィールド 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 アドレス)。
表25.4 SNMP v3 構成設定
フィールド description
Auth プロトコル 認証要求の暗号化アルゴリズム。これを設定するには、対応する認証パスフレーズを設定する必要があります。パスフレーズがない場合、この値はである必要があり noneます。
プライバシープロトコル トラップメッセージで使用する暗号化方法を設定します。これは認証プロocol に使用されます。
エンジン ID
ターゲットコンテキスト名
認証パスフレーズ 認証に使用されるパスワードを設定します。最小長は 8 文字です。これは、Auth Protocol 値が設定されている場合に必要になります。
プライバシーパスフレーズ 暗号化通信の管理に使用するパスワードを設定します。これは、認証が使用される場合に必要になります。
セキュリティー名 トラップレシーバーへの認証に使用するユーザー名を指定します。

25.3.5.3. SNMP アラート通知の設定

JBoss ON が SNMP 通知を送信する前に、サーバーに SNMP トラップを設定する必要があります。
アラートを設定する場合は、SNMP Trap 通知タイプを選択し、JBoss ON SNMP 情報を入力します。

図25.9 JBoss ON SNMP トレース情報

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
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.