Cosminexus アプリケーションサーバ V8 機能解説 運用/監視/連携編
運用管理エージェントのプロセスを監視し,論理サーバを起動・停止するための汎用スクリプトファイルを作成します。
なお,論理サーバの稼働状況を示すステータスが異常停止状態(自動再起動回数を超えた状態,または自動再起動回数の設定が0の場合で障害を検知した状態)になったタイミングで系を切り替える設定のときは,汎用スクリプトファイルにManagement Serverの監視処理を追加してください。
相互系切り替えの場合の汎用スクリプトファイルの例(GenericScriptA.vbs)を次に示します。なお,汎用スクリプトファイルに定義する関数と変数については,「(2) 汎用スクリプトファイルの関数」,および「(3) 汎用スクリプトファイルの変数」を参照してください。
Dim WshShell, oExec, oRun, oCosmiHome, oAdmin, oMngsvut, oCjsleep, oMngHost, oAAHost
Set WshShell = CreateObject("WScript.Shell")
oCosmiHome = WshShell.ExpandEnvironmentStrings("%COSMINEXUS_HOME%")
oAdminac = """" & oCosmiHome & "\manager\bin\adminagentctl"""
oMngsvut = """" & oCosmiHome & "\manager\bin\mngsvrutil"""
oCjsleep = """" & oCosmiHome & "\CC\server\bin\cjsleep"""
oMngHost = "192.168.0.11" '--- Management Server
oAAHost = "192.168.1.111" '--- Adminagent Server
' ==== Open ====
Function Open( )
Resource.LogInformation "======== Entering Open. ========"
Open = True
End Function
' ==== Online ====
Function Online( )
Resource.LogInformation "======== Entering Online. ========"
'--- mngsvrutil ---
oRun = oMngsvut & " -m " & oMngHost & ":28080 -t " & oAAHost & " -k host -s -l 360 start server"
Set oExec = WshShell.Exec(oRun)
Do While oExec.Status = 0
WshShell.Run oCjsleep & " 1", 0, True
Loop
If oExec.ExitCode <> 0 Then
Resource.LogInformation "### Logical Servers start failed. ### rtn=" & oExec.ExitCode
Resource.LogInformation oExec.StdErr.ReadAll
End If
Online = True
End Function
' ==== LooksAlive ====
Function LooksAlive( )
Resource.LogInformation "======== Entering LooksAlive. ========"
'--- tasklist ---
Set oExec = WshShell.Exec("tasklist /NH /FI ""IMAGENAME eq adminagent.exe""")
Do While oExec.Status = 0
WshShell.Run oCjsleep & " 1", 0, True
Loop
If InStr(1, oExec.StdOut.ReadAll, "adminagent.exe", 1) <> 0 Then
LooksAlive = True
Else
LooksAlive = False
End If
End Function
' ==== IsAlive ====
Function IsAlive( )
Resource.LogInformation "======== Entering IsAlive. ========"
'--- mngsvrutil ---
oRun = oMngsvut & " -m " & oMngHost & ":28080 -t " & oAAHost & " -k host check adminAgent"
Set oExec = WshShell.Exec(oRun)
Do While oExec.Status = 0
WshShell.Run oCjsleep & " 1", 0, True
Loop
If oExec.ExitCode <> 0 Then
Resource.LogInformation "### Administration Agent command failed. ### rtn=" & oExec.ExitCode
Resource.LogInformation oExec.StdErr.ReadAll
IsAlive = False
Else
IsAlive = True
End If
End Function
' ==== Offline ====
Function Offline( )
Resource.LogInformation "======== Entering Offline. ========"
'--- mngsvrutil ---
oRun = oMngsvut & " -m " & oMngHost & ":28080 -t " & oAAHost & " -k host -s -l 360 stop server"
Set oExec = WshShell.Exec(oRun)
Do While oExec.Status = 0
WshShell.Run oCjsleep & " 1", 0, True
Loop
If oExec.ExitCode <> 0 Then
Resource.LogInformation "### Logical Servers stopping failed. ### rtn=" & oExec.ExitCode
Resource.LogInformation oExec.StdErr.ReadAll
End If
Offline = True
End Function
' ==== Close ====
Function Close( )
Resource.LogInformation "======== Entering Close. ========"
End Function
' ==== Terminate ====
Function Terminate( )
Resource.LogInformation "======== Entering Terminate. ========"
End Function
|
なお,この汎用スクリプトファイルは,Node1(現用系1と予備系2)で稼働する,運用管理エージェントのプロセスを監視する場合の例です。この汎用スクリプトファイルをNode2(予備系1と現用系2)で使用する場合には,次のように置き換えてください。
汎用スクリプトファイルには,関数を定義する必要があります。各関数の戻り値は,正常終了時にはTrueを,異常終了時にはFalseを返します。汎用スクリプトファイルの関数を次の表に示します。
表20-3 汎用スクリプトファイルの関数(相互系切り替えシステムの場合)
| 関数名 | 内容 |
|---|---|
| Open | この汎用スクリプトファイルが開かれるときに実行される関数です。Resource.LogInformationメソッドでクラスタログにログを出力します。 |
| Online | 汎用スクリプトリソースのオンライン時に実行される関数です。この関数で,論理サーバを起動します。 |
| LooksAlive | リソースの稼働状況を簡単に把握するための関数です。この関数では,tasklistコマンドで運用管理エージェントのプロセスの有無を確認します。 |
| IsAlive | リソースの稼働状況を厳密に把握するための関数です。この関数では,mngsvrutilのcheckコマンドで運用管理エージェントが正常に動作しているかを確認します。 |
| Offline | 汎用スクリプトリソースのオフライン時に実行される関数です。この関数で論理サーバを停止します。 |
| Close | この汎用スクリプトファイルが閉じるときに実行される関数です。 |
| Terminate | 汎用スクリプトリソースの強制終了時に実行される関数です。 |
汎用スクリプトファイルでは,必要に応じて次の表に示す変数の値を変更してください。
表20-4 汎用スクリプトファイルの変数(相互系切り替えシステムの場合)
| 変数名 | 内容 |
|---|---|
| oMngHost | Management Serverが稼働しているホストです。 自ホストのステーショナリIPアドレスを指定してください。 |
| oAAHost | 運用管理エージェントが稼働しているホストです。 現用系の仮想ホストのクラスタIPアドレスを指定してください。 |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.