G WLDF問合せ言語ベースのポリシー
WebLogic診断フレームワーク(WLDF)には、ポリシー式を作成するためのWLDF問合せ言語が用意されています。
ノート:
WLDF問合せ言語は、WebLogic Serverバージョン12.2.1以降は非推奨です。かわりに、Java式言語(EL)を使用することをお薦めします。WLDF問合せ言語を使用するポリシー式を含む診断システム・モジュールは、下位互換性のためにサポートされています。ポリシー式でのJava ELの使用方法の詳細は、「ポリシーの構成」を参照してください。- ポリシーのタイプ
WLDFでは、WLDF問合せ言語使用のコンテキスト内で構成できるポリシーがサポートされています。 - ポリシーの構成オプション
WLDFには、ポリシーを構成するためのいくつかのツール・オプションが用意されています。 - WLDF問合せ言語を使用したハーベスタ・ポリシーの構成
WLDFでは、WLDF問合せ言語ベースの式で構成できる3つの主なタイプのハーベスタ・ポリシーを提供しています。各ポリシー・タイプは、そのポリシーでモニターできる内容に基づきます。 - WLDF問合せ言語を使用したログ・ポリシーの構成
ログ・ポリシーを使用して、サーバー・ログまたはドメイン・ログ内の特定のメッセージまたは文字列の出現をモニターします。このタイプのポリシーは、指定されたデータを含むログ・メッセージが発行されるとトリガーされます。 - WLDF問合せ言語を使用したインストゥルメンテーション・ポリシーの構成
インストゥルメンテーション・ポリシーは、WLDFのインストゥルメンテーション・コンポーネントに由来するイベントをモニターするために使用します。このタイプのポリシーは、イベントがポストされるとトリガーされます。
ポリシーのタイプ
WLDFでは、WLDF問合せ言語使用のコンテキスト内で構成できるポリシーがサポートされています。
WLDFでは、ポリシーでモニターする内容に基づいて、3つの主なタイプのポリシーを提供しています。
-
ハーベスタ・ポリシーでは、ローカル・ランタイムMBeanサーバーの収集可能なMBeanのセットをモニターします。
-
ログ・ポリシーでは、サーバー・ログまたはドメイン・ログに生成されるメッセージのセットをモニターします。
-
インストゥルメンテーション(またはイベント・データ)・ポリシーでは、WLDFインストゥルメンテーション・コンポーネントによって生成されるイベントのセットをモニターします。
診断モジュールのWLDFシステム・リソース構成ファイルでは、各ポリシー・タイプは、<watch>の子要素である<rule-type>要素で定義されます。たとえば:
<watch> <rule-type>Harvester</rule-type> <!-- Other configuration elements --> </watch>
ルールの種類が異なるポリシーでは、次の2つの点に違いがあります。
-
監視対象となる条件を指定するためのルール構文。ルール構文は、ルールの種類ごとに異なります。
-
ログ・ポリシーとインストゥルメンテーション・ポリシーはリアルタイムでトリガーされますが、ハーベスタ・ポリシーは、現在の収集サイクルが終了してからトリガーされます。
親トピック: WLDF問合せ言語ベースのポリシー
ポリシーの構成オプション
WLDFには、ポリシーを構成するためのいくつかのツール・オプションが用意されています。
ポリシーの構成オプションの詳細は、「ポリシーの構成方法」を参照してください。
親トピック: WLDF問合せ言語ベースのポリシー
WLDF問合せ言語を使用したハーベスタ・ポリシーの構成
WLDFでは、WLDF問合せ言語ベースの式で構成できる3つの主なタイプのハーベスタ・ポリシーを提供しています。各ポリシー・タイプは、そのポリシーでモニターできる内容に基づきます。
ノート:
ハーベスタがデータを収集しないように構成されているMBean (またはMBean属性)をモニターするようにポリシーを定義している場合、ポリシーは実行されます。ハーベスタは、定義されたポリシー式で設定された要件を満たす値を暗黙的に収集します。ただし、この方法で(つまり、ポリシー用に暗黙的に)収集されたデータはアーカイブされません。メトリック・コレクションのハーベスタの構成を参照してください。ハーベスタ・ポリシーは、収集サイクルに応じてトリガーされます。そのためハーベスタ・ポリシーの場合、ハーベスタのサンプル期間は、ある状況が識別されてから、アクションによって報告されるまでの間隔を定義します。平均して、この遅延はサンプル期間/2になります。
例G-1に、複数のランタイムMBeanをモニターするハーベスタ・ポリシーの構成例を示します。<rule-expression>要素で定義されたポリシー式がtrueに評価されると、JMX通知、SMTP通知、SNMP通知、イメージ・アクション、およびトピック用とキュー用のJMS通知を生成するために6つの異なるアクションが実行されます。
ポリシーは、4つのハーベスタ変数で構成される論理式です。式の形式は次のとおりです。
( (A >= 100) AND (B > 0) ) OR C OR D.equals("active")
各変数の形式は次のとおりです。
{entityName}//{attributeName}
上の構文では、{entityName}
はランタイムMBeanサーバーに登録されているJMXのObjectNameまたはハーベスタで定義されている型名、{attributeName}
はそのMBean型に定義されている属性の名前です。
ノート:
比較演算子は、XMLで有効となるように適切な形をとっています。例G-1 ハーベスタ・ポリシーの構成のサンプル(DIAG_MODULE.xml内)
<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/2.0/weblogic-diagnostics.xsd"> <name>mywldf1</name> <harvester> <!-- 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. --> <harvested-type> <name>myMBeans.MySimpleStandard</name> <harvested-instance>myCustomDomain:Name=myCustomMBean1 </harvested-instance> <harvested-instance>myCustomDomain:Name=myCustomMBean2 </harvested-instance> </harvested-type> <!-- Other Harvester configuration elements --> </harvester> <watch-notification> <watch> <name>simpleWebLogicMBeanWatchRepeatingAfterWait</name> <enabled>true</enabled> <rule-type>Harvester</rule-type> <rule-expression> (${mydomain:Name=WLDFHarvesterRuntime,ServerRuntime=myserver,Type= WLDFHarvesterRuntime,WLDFRuntime=WLDFRuntime//TotalSamplingTime} >= 100 AND ${mydomain:Name=myserver,Type= ServerRuntime//OpenSocketsCurrentCount} > 0) OR ${mydomain:Name=WLDFWatchNotificationRuntime,ServerRuntime= myserver,Type=WLDFWatchNotificationRuntime, WLDFRuntime=WLDFRuntime//Enabled} = true OR ${myCustomDomain:Name=myCustomMBean3//State} = 'active') </rule-expression> <severity>Warning</severity> <alarm-type>AutomaticReset</alarm-type> <alarm-reset-period>10000</alarm-reset-period> <notification>myJMXNotif,myImageNotif, myJMSTopicNotif,myJMSQueueNotif,mySNMPNotif, mySMTPNotif</notification> </watch> <!-- Other policy-action configuration elements --> </watch-notification> </wldf-resource>
このポリシーでは、AutomaticResetタイプのアラームを使用しています。つまり、最後に起動されたときからの時間が、アラーム・リセット期間として設定された間隔(この場合10000ミリ秒)よりも長くなると、繰返しトリガーされる可能性があります。
指定された重大度レベル(Warning)は、ポリシーのトリガーには影響しませんが、アクションによって伝達されます。
親トピック: WLDF問合せ言語ベースのポリシー
WLDF問合せ言語を使用したログ・ポリシーの構成
ログ・ポリシーを使用して、サーバー・ログまたはドメイン・ログ内の特定のメッセージまたは文字列の出現をモニターします。このタイプのポリシーは、指定されたデータを含むログ・メッセージが発行されるとトリガーされます。
次の例では、サーバー・ログ・ポリシーのための、DIAG_MODULE.xml
内の構成を示します。
<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/2.0/weblogic-diagnostics.xsd"> <name>mywldf1</name> <watch-notification> <enabled>true</enabled> <log-watch-severity>Info</log-watch-severity> <watch> <name>myLogWatch</name> <rule-type>Log</rule-type> <rule-expression>MSGID='BEA-000360'</rule-expression> <severity>Info</severity> <notification>myMailNotif2</notification> </watch> <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> </watch-notification> </wldf-resource>
上の例では、<rule-type>がLog
であるため、サーバー・ログに書き込まれたメッセージまたは文字列が監視されます。<rule-type>がDomainLog
であるため、ドメイン・ログ内のメッセージまたは文字列がモニターされます。
親トピック: WLDF問合せ言語ベースのポリシー
WLDF問合せ言語を使用したインストゥルメンテーション・ポリシーの構成
インストゥルメンテーション・ポリシーは、WLDFのインストゥルメンテーション・コンポーネントに由来するイベントをモニターするために使用します。このタイプのポリシーは、イベントがポストされるとトリガーされます。
次の例では、インストゥルメンテーション・ポリシーのための、DIAG_MODULE.xml
内の構成を示します。
<watch-notification> <watch> <name>myInstWatch</name> <enabled>true</enabled> <rule-type>EventData</rule-type> <rule-expression> (PAYLOAD > 100000000) AND (MONITOR = 'Servlet_Around_Service') </rule-expression> <alarm-type xsi:nil="true"></alarm-type> <notification>mySMTPNotification</notification> </watch> <smtp-notification> <name>mySMTPNotification</name> <enabled>true</enabled> <mail-session-jndi-name>myMailSession</mail-session-jndi-name> <subject xsi:nil="true"></subject> <body xsi:nil="true"></body> <recipient>username@emailservice.com</recipient> </smtp-notification> </watch-notification>
親トピック: WLDF問合せ言語ベースのポリシー