プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用
12c (12.2.1.3.0)
E90355-02
目次へ移動
目次

前
次

9 ポリシーとアクションの構成

WebLogic診断フレームワーク(WLDF)のポリシーおよびアクション・コンポーネントは、サーバーとアプリケーションの状態を監視し、ポリシーに設定された基準に基づいてアクションを実行するための手段を提供します。ポリシーとアクションは、ドメイン内の1つ以上のサーバー・インスタンスを対象にした診断モジュールの一部として構成します。

注意:

WebLogic Server 12.2.1以降、監視および通知という用語は、それぞれポリシーおよびアクションに置き換えられています。しかし、これらの用語の定義は変更されません。

次に示す項では、ポリシーおよびアクション・コンポーネントの概要を説明し、さらにポリシーおよびアクション・コンポーネントの構成例を取り上げます。

ポリシーとアクション

ポリシーは、ログ・レコード、データ・イベント、および収集されたメトリックを分析するよう構成できます。

ポリシーは、モニターまたは診断目的で捕捉する状況を識別します。

ポリシーの内容は次のとおりです。

  • ポリシー式(カレンダ・ベース・ポリシーを除く)

    ポリシー式のデフォルト言語は、WLDF問合せ言語ですが、WLDF問合せ言語は非推奨です。ポリシー式には、Java式言語(EL)も使用できます。

  • アラーム設定

  • 1つ以上のアクション・ハンドラ

ポリシーを構成して、動的クラスタの拡張度を有効化するポリシーを構成することもできます(つまり、特定の数のサーバー・インスタンスを単位として動的クラスタを自動的にスケール・アップまたはスケール・ダウンできます)。拡張度について次の2つの大きなカテゴリを有効化するポリシーを定義できます。

  • カレンダ・ベース・スケーリング - 特定の日時に実行される動的クラスタに対するスケーリング操作。

  • ポリシー・ベース・スケーリング - 関心のある変更に応答して実行される動的クラスタに対するスケーリング操作。

注意:

動的クラスタのエラスティック・スケーリング・ポリシーを構成するには、スケーリング・ポリシーを定義するドメイン・スコープ診断システム・モジュールを作成してから、その診断モジュールのターゲットを管理サーバーにする必要があります。

デモンストレーション例をダウンロードおよび実行する手順など、WebLogic Serverの拡張度を有効化する方法の詳細は、『Oracle WebLogic Server動的クラスタの拡張度の構成』の「ポリシーベースのスケーリング」を参照してください。

アクションは、ポリシー式がtrueに評価されたときに実行される操作です。WLDFでは、次の種類のアクションをサポートしています。

  • 動的クラスタのスケーリング

  • Java Management Extensions (JMX)

  • Java Message Service (JMS)

  • 電子メールなどのSimple Mail Transfer Protocol (SMTP)

  • Simple Network Management Protocol (SNMP)

  • 診断イメージ

  • ログ

  • REST

  • スクリプト

  • ヒープ・ダンプ

  • スレッド・ダンプ

ポリシーは、実行中のサーバーの指定した状態またはアクティビティについて管理者に通知する場合など、役に立つ診断アクティビティのアクションに関連付ける必要があります。

ポリシーとアクションは、相互に別々に構成します。アクションは、複数のポリシーに関連付けることができ、ポリシーは、複数のアクションに関連付けることができます。そのため、現在のニーズに応じて、ポリシーおよびアクションを柔軟に再結合し、再利用することができます。

ポリシーおよびアクションの構成の概要

完全なポリシーおよびアクションの構成には、1つ以上のポリシー、1つ以上のアクション、およびアクション媒体で必要な基底の構成(SNMPベースのアクションに必要なSNMP構成など)の設定が含まれます。

WLDFシステム・リソース記述子ファイルDIAG_MODULE.xmlの、ポリシーおよびアクションの構成に必要な主な要素を例9-1に示します。例で示すように、ポリシーおよびアクションを定義するための基本要素は、<watch-notification>です。ポリシーは<watch>要素で定義され、アクションは、種類ごとに指定されている要素<jms-notification>、<jmx-notification>、<smtp-notification>、<image-notification>などで定義されます。

例9-1 ポリシーおよびアクションの構成のスケルトン(DIAG_MODULE.xml内)

<wldf-resource>
<!-- ----- Other system resource configuration elements ----- -->
  <watch-notification>
  <log-watch-severity>
     <!-- Threshold severity for a log watch to be evaluated further 
           (This can be narrowed further at the watch level.) -->
  </log-watch-severity>
   <wldf-resource>
<!-- ----- Other system resource configuration elements ----- -->
  <watch-notification>
  <log-watch-severity>
     <!-- Threshold severity for a log policy to be evaluated further 
           (This can be narrowed further at the policy level.) -->
  </log-watch-severity>
    <!-- ----- Policy configuration elements: ----- -->
    <watch>
      <!-- A policy expression -->
    </watch>
    <watch>
      <!-- A policy expression -->
    </watch>
    <!-- Any other policy configurations -->

    <!-- ----- Action configuration elements: ----- -->
    <!-- The following action configuration elements show one of each 
         type of supported actions. However, not all types are 
         required in any one system resource configuration, and multiples 
         of any type are permitted. -->
    <jms-notification>
      <!-- Configuration for a JMS-based action; requires a
           corresponding JMS configuration via a jms-server element and a
           jms-system-resource element -->
    </jms-notification>

    <jmx-notification>
      <!-- Configuration for a JMX-based action -->
    </jmx-notification>
    <smtp-notification>
      <!-- Configuration for an SMTP-based action; requires a
           corresponding SMTP configuration via a mail-session element -->
    </smtp-notification>
    <snmp-notification>
      <!-- Configuration for an SNMP-based action; requires a 
           corresponding SNMP agent configuration via an snmp-agent
           element -->
    </snmp-notification>
    <image-notification>
      <!-- Configuration for an image-based action -->
    </image-notification>
  <watch-notification>
<!-- ----- Other configuration elements ----- -->
</wldf-resource>

注意:

通知媒体は、その通知媒体に応じたアクションで使用できるように構成する必要がありますが、その構成は、診断モジュール自体の構成の一部ではありません。つまり、通知媒体は、診断モジュールの構成ファイルの<wldf-resource>要素で構成されるものではありません。

ポリシーまたはアクションに対して個別に<enabled>true</enabled>または<enabled>false</enabled>を設定することにより、個々のポリシーおよびアクションを個別に有効化および無効化できます。また、すべてのポリシーおよびアクションに対して<enabled>true</enabled>または<enabled>false</enabled>を設定すると、ポリシーおよびアクションの機能全体を有効化および無効化できます。デフォルト値は<enabled>true</enabled>です。

<watch-notification>要素には、<log-watch-severity>下位要素があります。この下位要素は、ログ・ポリシーによって実行されるアクションの起動に影響します。

ポリシーをトリガーしたログ・メッセージの最大の重大度レベルが、指定されている重大度レベルと同じレベル以上でなければ、そのポリシーでトリガーされるアクションは実行されません。ただし、これはログ・ポリシーによって実行されるアクションにのみ適用されます。この要素を、ポリシーに対して定義する<severity>要素と混同しないでください。<severity>要素は、ポリシー自体に重大度を割り当てるものですが、<log-watch-severity>要素は、ログの種類のポリシーによってどのアクションが実行されるかを指定します。

WebLogic Server管理コンソールを使用してポリシーおよびアクションを構成する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプポリシーおよびアクションの構成に関する項を参照してください。

ポリシーおよびアクションの構成のサンプル

ポリシーおよびアクションのセットは、DIAG_MODULE.xmlという名前の診断モジュール・ファイルで構成されます。

例9-2は完全な構成を示しています。この例については、次のトピックで詳しく説明します。

例9-2 ポリシーおよびアクションの構成のサンプル(DIAG_MODULE.xml内)

<?xml version='1.0' encoding='UTF-8'?> 
<wldf-resource xmlns="http://xmlns.oracle.com/weblogic/weblogic-diagnostics" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-diagnostics/1.0/weblogic-diagnostics.xsd"> 
  <name>mywldf1</name> 
  <!-- Instrumentation must be configured and enabled for instrumentation 
       policies -->
  <instrumentation> 
    <enabled>true</enabled> 
    <wldf-instrumentation-monitor> 
      <name>DyeInjection</name> 
      <description>Dye Injection monitor</description> 
      <dye-mask xsi:nil="true"></dye-mask>       <properties>ADDR1=127.0.0.1</properties> 
    </wldf-instrumentation-monitor> 
  </instrumentation> 
  <!-- Harvesting does not have to be configured and enabled for harvester
       policies. However, configuring the Harvester can provide advantages;
       for example the data will be archived. -->
  <harvester> 
    <name>mywldf1</name> 
    <sample-period>20000</sample-period> 
    <harvested-type> 
      <name>weblogic.management.runtime.ServerRuntimeMBean</name> 
    </harvested-type> 
    <harvested-type> 
      <name>weblogic.management.runtime.WLDFHarvesterRuntimeMBean</name> 
    </harvested-type> 
  </harvester> 
  <!-- All policies and actions are defined under the 
       watch-notification element -->
  <watch-notification> 
    <enabled>true</enabled> 
    <log-watch-severity>Info</log-watch-severity>
    <!-- A harvester policy configuration --> 
    <watch> 
      <name>myWatch</name> 
      <enabled>true</enabled> 
      <rule-type>Harvester</rule-type>
      <rule-expression>${com.bea:Name=myserver,Type=ServerRuntime//SocketsOpenedTotalCount} &gt;= 1</rule-expression>
      <alarm-type>AutomaticReset</alarm-type> 
      <alarm-reset-period>60000</alarm-reset-period> 
      <notification>myMailNotif,myJMXNotif,mySNMPNotif</notification> 
    </watch> 
    <!-- An instrumentation policy configuration --> 
    <watch> 
      <name>myWatch2</name> 
      <enabled>true</enabled> 
      <rule-type>EventData</rule-type> 
      <rule-expression>
      (MONITOR LIKE 'JDBC_After_Execute') AND
      (DOMAIN = 'MedRecDomain') AND
      (SERVER = 'medrec-adminServer') AND
      ((TYPE = 'ThreadDumpAction') OR (TYPE = TraceElapsedTimeAction')) AND
      (SCOPE = 'MedRecEAR')
      </rule-expression>
      <notification>JMXNotifInstr</notification> 
    </watch> 
    <!-- A log policy configuration -->
    <watch> 
      <name>myLogWatch</name> 
      <rule-type>Log</rule-type> 
      <rule-expression>MSGID='BEA-000360'</rule-expression> 
      <severity>Info</severity> 
      <notification>myMailNotif2</notification> 
    </watch>
    <!-- A JMX notification -->
    <jmx-notification> 
      <name>myJMXNotif</name> 
    </jmx-notification> 
    <!-- Two SMTP actions -->
    <smtp-notification> 
      <name>myMailNotif</name> 
      <enabled>true</enabled> 
      <mail-session-jndi-name>myMailSession</mail-session-jndi-name> 
      <subject>This is a harvester alert</subject> 
      <recipient>username@emailservice.com</recipient> 
    </smtp-notification> 
    <smtp-notification> 
      <name>myMailNotif2</name> 
      <enabled>true</enabled> 
      <mail-session-jndi-name>myMailSession</mail-session-jndi-name> 
      <subject>This is a log alert</subject> 
      <recipient>username@emailservice.com</recipient> 
    </smtp-notification> 
    <!-- An SNMP notification -->
    <snmp-notification> 
      <name>mySNMPNotif</name> 
      <enabled>true</enabled> 
    </snmp-notification> 
  </watch-notification> 
</wldf-resource>