本記事では、AutoMate サーバー版におけるAutoMate自身の死活監視手法について例を記載します。
(AutoMateで他のシステムの死活監視を行うという話とは異なります)
AutoMateサーバーやエージェントのサービスで何らかの障害が発生していると、AutoMate自身から通知を送ることが出来ません。
タスク内でメールを送信できるのはオンラインのエージェントだけなので、オフラインになっているエージェントで通知を送るという方法はとれません。
また、サーバーに障害が発生していると、エージェントも稼働できずワークフローも稼働できない為、エラーメールを発報することも出来ません。
そのため、AutoMate サーバー版の正常稼働確認を継続的にかつ無人で実行するには、AutoMateとあわせてAutoMate外部の仕組みを使いクロスチェックを行う方法が有効です。
手法としては、以下のようになります。
※下記の例では以下を前提とします
・Agentは24時間稼働する
・監視間隔は1時間に1回
・1時間以上かかるタスクがあり、監視タイミングと被る場合は考えない
--------------------------------------------------------------------
■1. 全エージェントを対象にして実行する、AutoMateのサービス監視用ファイルを作成するタスクを用意する
作成するファイルは、「C:\RPA\Monitoring\AMMonitoring.txt」などとします。書き込む内容は「1」など何でも問題ありません。
また、ファイルを作成することが目的となりますので、「ファイルシステム - ファイルへの書込み」の1アクション以外は必要ありません。
■2. スケジュールトリガーを設定し、各エージェントに該当タスクを1時間おきに実行させる
全エージェントを含んだエージェントグループを作成して、全エージェントを対象に実行させてもかまいません。
■3. 「■1.」のファイルが存在するかどうかを確認するWindowsのバッチファイルまたはプログラムを用意する
AutoMateとは別の仕組みで、「■1.」でAutoMateで作られる予定のファイルが存在するかどうかを確認するプログラムを用意します。
プログラムの要件として、「■1.で指定したファイルの有無を確認することが出来る」かつ「ファイルの存在の確認後、そのファイルを削除することができる」かつ「通知するためのプログラムを呼び出すことが出来る」を満たせばプログラムの種類は問いません。
下記はバッチプログラムの一例です。
@echo off
rem 監視対象ファイルの設定
set MonitoringFileName=C:\RPA\Monitoring\AMMonitoring.txt
rem 通知用プログラムを指定
set AlertProgramName=C:\RPA\Programs\SendAlertMail.bat
rem ファイルが存在するのであれば正常終了
if exist "%MonitoringFileName%" (
echo ファイルが存在するので、削除してプログラムを終了します。
del "%MonitoringFileName%"
rem ファイルが存在しない場合はNGなので、通知用プログラムを実行
) else (
echo ファイルは存在しません。AutoMateが正常に稼働していないと考えられるため通知します。
"%AlertProgramName%"
)
■4. 「■3.」のプログラムを「■2.」の スケジュールの3分後(一例)に実行するよう、Windowsのタスクスケジューラーを各エージェントに仕掛ける。
--------------------------------------------------------------------
■1 ~ ■4を仕掛けることにより、問題なく稼働している場合は通知が飛ばず、一方で通知が飛んできた場合は何かが正常に稼働していないことに気が付くことが出来ます。
また、特定のエージェントについてのみ通知が来た場合はエージェント側の問題、全エージェントについて通知が飛んできた場合はサーバー本体で障害が発生していることが分かります。
仮に障害が発生して稼働できない状態になっていても、いち早く障害を検知することが可能となります。