この章では、特定の状態が存在する場合に通知するアラートの作成方法について説明します。オプションで、これらのアラートを電子メール、コマンドライン・インタフェースまたはSimple Network Management Protocol (SNMP)で配信できます。
この章の内容は次のとおりです。
Oracle GoldenGate Monitorアラートは、指定した状態がOracle GoldenGateコンポーネントに存在する場合に通知します。たとえば、プロセスが停止した場合、または指定したラグのしきい値に達した場合に通知されるようにリクエストできます。メッセージに含まれる情報はユーザーが選択します。アラートを定義するには、ユーザー・インタフェースで「Alert Definitions」に移動し、オンライン・ヘルプの指示に従います。
Oracle GoldenGate Monitorによって生成されるアラート・タイプは、各ユーザーが指定します。あるユーザー用のアラートを有効にするには、Oracle GoldenGate Monitorのユーザー・インタフェースの「User Profile」に移動し、オンライン・ヘルプの指示に従います。
Oracle GoldenGate Monitorアラートが電子メール・アカウントに配信されるように構成できます。
この機能を使用するには、次の手順を実行する必要があります。
インストール中に「SMTP (Simple Mail Transfer Protocol) alerts」ボックスを選択するか、次の項で説明するように、monitor.properties
ファイル内の電子メール・アラート・プロパティを後で設定して、電子メール・アラートを有効にします。
Oracle GoldenGate Monitorのユーザー・インタフェースの「User Management」タブに、ユーザーの電子メール・アドレスを入力します。
Oracle GoldenGate Monitorのユーザー・インタフェースの「User Profile」に移動し、適切なセキュリティ・レベルの通知タイプとして電子メールを選択します。
インストール中に電子メール・アラートを設定しなかった場合は、monitor.properties
ファイルで次のプロパティを設定して電子メール・アラートを設定できます。
次のプロパティをtrue
に設定して、電子メール・アラートを有効にします。
monitor.smtp.alerts.enabled=true
電子メール・サーバーから生成されるOracle GoldenGate Monitor通信用の送信者名を指定します。
monitor.smtp.from=sender_name
電子メール・サーバーのホスト名を指定します。
monitor.smtp.host=email_host_name
電子メール・サーバーによって使用されるポートを指定します。
monitor.smtp.port=port_number
電子メール・サーバーがセキュア・モードであるかどうかを指定します。
monitor.smtp.secure={true | false}
電子メール・サーバーがセキュア・モードである場合、ログインが許可されているユーザーを指定します。
monitor.smtp.user=user_name
電子メール・サーバーがセキュア・モードで実行されている場合、パスワードを変更するには、WebLogic Scripting Tool (WLST)にログインし、次の例のようにcreateCred()
コマンドを使用する必要があります。
wls:/test_domain/serverConfig>createCred(map="OGGMONITOR",key="WEB.SMTP.EMAIL.PASSWORD",user="<email user id>",password="<email password>",desc="SMTP EMAIL Password")
WLSTの使用の詳細は、「WebLogic Scripting Toolの理解」を参照してください。
Oracle GoldenGate MonitorのCommand-Line Integration (CLI)を使用すると、アラートがトリガーされたときに、Oracle GoldenGate Monitorサーバー上でスクリプトまたはオブジェクト・ファイルを実行できます。
この機能を使用するには、インストール中に「CLI alerts」ボックスを選択するか、後でmonitor.properties
ファイルのmonitor.cli.alerts.enabled
プロパティをtrue
に設定して、CLIアラートを有効にする必要があります。
Oracle GoldenGate Monitorのインストールでは、CLIインタフェースの構成に役立つファイルが提供されます。これらは、インストール場所のcfg
サブディレクトリに格納されます。
CommandLineHandlers.xml
CLIインタフェースは、CommandLineHandlers.xml
ファイルで構成されます。
インストールには、UNIX用とWindows用の2つのサンプルCommandLineHandlers.xml
ファイルが含まれています。それぞれに、CLIインタフェース構成用のサンプル構文が含まれています。適切なバージョンをコピーし、引数を追加および変更して、独自のCLIインタフェースを構成するCommandLineHandlers.xml
を作成します。
このファイルには、CommandLineHandlers.xml
ファイルの定義が含まれます。XSDからサンプルのXMLを作成する商用またはオープン・ソースのXML生成ツールを使用して、CommandLineHandlers.xml
を生成する際に使用できます。
変更を有効にするには、CommandLineHandlers.xml
の構成後、Oracle GoldenGate Monitorサーバーを一度停止してから再び開始します。この方法は、「Oracle GoldenGate Monitorサーバーの開始および停止」を参照してください。
次のUNIX構成例は、XML構成ファイルの構造および引数を示すものです。ヘッダー値は変更できません。これらの値で、XML.のバージョンおよびコーディングが指定されます。
引数は、例に示すように等号(=)の後に値を引用符で囲んで入力します。この例では、ネームスペースおよびスキーマの情報は省略記号(. . .
)で示され、省略されています。
<?xml version="1.0" encoding="UTF-8"?> <CommandLineHandlers . . .> <CommandLineHandler dateTimeFormat="MMddyyyyHHmmssSSS" executeIn="/home/user" name="CMDLINE"> <externalCommand>touch</externalCommand> <arguments> <argument argText="filename" name="hostname" presentIfEmpty="true" quoted="false"/> </arguments> <alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings> </CommandLineHandler> </CommandLineHandlers>s
CommandLineHandler
は、CLIアラート・ハンドラの親タグです。これは、CommandLineHandlers
タグ内で指定されます。
<CommandLineHandler dateTimeFormat="MMddyyyyHHmmssSSS" executeIn="/home/user" name="CMDLINE">
CommandLineHandler
タグには、次の引数が含まれます。
これは、Javaドキュメントで説明されている標準のJavaフォーマットの引数です。
executeIn
引数によって、外部スクリプトまたはオブジェクト・ファイルが実行される前に、指定されたディレクトリへの移動処理がトリガーされます。デフォルトでは、スクリプトまたはコマンドが起動されたディレクトリである、仮想マシン(VM)の現在の実行ディレクトリが使用されます。
RunTimeException
は、指定されたディレクトリが存在しない場合、またはexecuteIn
属性が空であるか存在しない場合に、アラートのトリガー時に生成されます。
名前
これは、常にCMDLINE
です。
次の例には、CommandLineHandler
タグ内でネスト可能なタグが示されています。
<externalCommand>touch</externalCommand> <arguments> <argument argText="filename" name="hostname" presentIfEmpty="true" quoted="false"/> </arguments> <alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings>
externalCommand
externalCommand
の値では、スクリプトまたはオブジェクト・ファイルへの絶対パスを指定します。システムのPATH環境変数が、実行されるファイルのディレクトリを指している場合は、スクリプトまたはオブジェクト・ファイル名をパスなしで指定できます。
arguments
arguments
タグでは、externalCommand
タグで指定されるディレクトリ値に追加される1つ以上の値を指定します。
各引数に次の属性を指定できます。
argText
- externalCommand
タグを使用して送信されるリテラル・テキスト引数を指定します。
name
- 名前を指定するか、次に説明するように、alertMappings
を使用して検索した名前を使用できます。
presentIfEmpty
- alertMappings
タグと連携し、アラート定義に関連付けられている選択された情報をexternalCommand
タグに追加します。詳細は、次の「alertMappings」を参照してください。
alertMappings
alertMappings
タグは、アラート定義情報から抽出された値をexternalCommand
タグで指定されている値に追加します。
<alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings>
alertFieldには、アラート定義に関連付けられている次のいずれかの値が指定されます。
host
- 監視ポイントでアラートをトリガーするOracle GoldenGateオブジェクトのホスト。
alertObjectName
- EXACCTという名前のExtractプロセスなど、監視ポイントでアラートをトリガーするオブジェクトに関連付けられている名前。
alertSeverity
- アラートに定義されたセキュリティ・レベル(WarningまたはErrorのいずれか)。
alertMessage
- アラートによって生成されたメッセージ。これは、アラートに定義された状態、監視ポイントの値およびリテラル・テキストの組合せです。
changedValue
- アラートをトリガーした新しい監視ポイント値。たとえば、ラグが5秒を超える場合にトリガーされるアラートを作成します。ラグは4秒で、その後7秒になります。これによりアラートがトリガーされ、changedValue
は7になります。
次の例では、argument
およびalertMapping
タグのname
属性は、alertField
属性から値を抽出するために一致しています。argument
name
"hostname
"は、alertMapping
name
"hostname
"と一致し、"host
"であるalertField
の値が検索されます。これにより、アラートをトリガーしたOracle GoldenGateオブジェクトのホストを、externalCommand
タグで指定されている値に追加するようシステムが設定されます。
<arguments> <argument argText="text" name="hostname" presentIfEmpty="true" quoted="false"/> </arguments> <alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings>
presentIfEmpty
属性では、alertField
が有効でない場合、またはname
属性が一致しない場合の処理がalertMappings
タグを使用して決定されます。
presentIfEmpty="true"
argText
属性の値は、外部コマンドで使用されます。
presentIfEmpty="false"
引数全体が省略されます。
これらの例では、Oracle GoldenGate Monitorサーバー上でバッチ・スクリプトが実行されています。
次の例では、Oracle GoldenGate MonitorサーバーをホストしているWindowsサーバー上で、バッチ・スクリプトsample_cli.bat
が実行されています。アラートをトリガーしたOracle GoldenGateインスタンスのサーバー("host
")が、externalCommand
で指定されているバッチ・スクリプトの名前に追加されています。
<?xml version="1.0" encoding="UTF-8"?> <CommandLineHandlers xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.yourlocation/monitor/commandlinehandlers/CommandLineHandlers.xsd"> <CommandLineHandler dateTimeFormat="MMddyyyyHHmmssSSS" executeIn="C:\" name="CMDLINE"> <externalCommand>c:\sample_cli.bat</externalCommand> <arguments> <argument argText="" name="hostname" presentIfEmpty="true" quoted="false"/> </arguments> <alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings> </CommandLineHandler> </CommandLineHandlers>
次の例では、Oracle GoldenGate MonitorサーバーをホストしているUNIXサーバー上で、sample_cli.sh
スクリプトが実行されています。アラートをトリガーしたOracle GoldenGateインスタンスのサーバー("host
")が、externalCommand
で指定されているバッチ・スクリプトの名前に追加されています。
<?xml version="1.0" encoding="UTF-8"?> <CommandLineHandlers xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.yourlocation/monitor/commandlinehandlers/CommandLineHandlers.xsd"> <CommandLineHandler dateTimeFormat="MMddyyyyHHmmssSSS" executeIn="/home/user" name="CMDLINE"> <externalCommand>bash</externalCommand> <arguments> <argument argText="/home/user/sample_cli.sh" name="hostname" presentIfEmpty="true" quoted="true"/> </arguments> <alertMappings> <alertMapping alertField="host" name="hostname"/> </alertMappings> </CommandLineHandler> </CommandLineHandlers>
Oracle GoldenGate Monitor Simple Network Management Protocol (SNMP)インタフェースでは、アラートはデータグラムの形式で送信されます。これらは、指定されたポート上でリスニングしているSNMPトラップの受信者によって取得されます。
この機能を使用するには、インストール中にSNMPアラートを有効にするか、後でmonitor.properties
ファイルのmonitor.snmp.alerts.enabled
プロパティをtrue
に設定する必要があります。
GoldenGate-Monitor-mib.mib
ファイルは、Oracle GoldenGate Monitorのインストール中にcfg
サブディレクトリに格納されます。これには、ターゲットによってアラートの解釈に使用される管理情報ベース(MIB)定義が含まれます。トラップで受信される情報を解釈する必要がある場合、このファイルをターゲット・ツールにインポートします。
SNMPアラートは、Oracle GoldenGateのインストール中にcfg
サブディレクトリ内に格納されるSNMPJMXMapping.xml
ファイルで構成されます。
SNMPJMXMapping.xml
ファイルへの変更はすべて、Oracle GoldenGate Monitorサーバー・ソフトウェアをインストールしたホスト管理者が、Oracle GoldenGate Monitorのユーザー・インタフェース外で行う必要があります。
SNMPJMXMapping.xml
ファイル内では、SNMPバージョンを設定するセクションおよびターゲットを定義するセクションのみを変更する必要があります。
. . . <MIBTree> . . . <notifications type="NOTIFICATIONS"> <notification version="2" enabled="true"> <targets> <target timeout="200" retry="0">localhost/162 </target> </targets> . . . </notification> <notification version="1" enabled="false"> <targets> <target>localhost/162 </target> </targets> . . . </notification> </notifications> </MIBTree>
SNMPバージョンは、入力内容に基づいてインストール中に初期設定されます。後で、notification version 1 enabled
値およびnotification version 2 enabled
値をリセットして変更できます。1つをtrue
に、もう1つをfalse
に設定します。
有効なバージョンに定義されたターゲットが使用されます。無効なバージョンのターゲットは無視されます。
Oracle GoldenGate Monitor管理者は、任意のカテゴリのアラートを無効化し、これらのアラートがリモート・クライアントに配信されないようにできます。たとえば、メンテナンス・ウィンドウ中にプロセスが停止されるときなど、計画停止中はアラートを無効にする場合があります。無効化されたアラートはリモート・クライアントには送信されませんが、Oracle GoldenGate Monitorのユーザー・インタフェースには記録されます。
アラートを無効にする手順:
Oracle GoldenGate Monitorサーバーのmonitor.properties
ファイルの適切なプロパティをfalseに設定します。
SMTP配信を無効化するには、monitor.smtp.alerts.enabled=false
を設定します。
CLI配信を無効化するには、monitor.cli.alerts.enabled=false
を設定します。
SNMP配信を無効化するには、monitor.snmp.alerts.enabaled=false
を設定します。
Oracle GoldenGate Monitorサーバーを一度停止してから再び開始します。この方法は、「Oracle GoldenGate Monitorサーバーの開始および停止」を参照してください。
アラートを再び有効化するには、プロパティをtrueに戻し、Oracle GoldenGate Monitorサーバーを一度停止してから再び開始します。