WindowsServerにおけるログの監視設定方法について

お世話になっております。初歩的な質問で申し訳ありませんがWindowsServerにおけるログ監視の設定方法についてご教示いただきたいです。

■環境
監視対象サーバ:WindowsServer2012 R2
Zabbixサーバ:バージョン2.2(年内に4.0にする予定です)

■やりたいこと
1日1回実行される処理結果のログファイルの中身を監視し、条件に一致した文言が出力された場合にアラート通知されること

・監視対象ログ
D:\Dir-A\log\SampleYYYYMMDD.log (YYYYMMDDは年月日)

・条件一致文字列
正常に処理が完了しました。

上記を監視すべく、テストとしてアイテムキーを
タイプ:Zabbixエージェント
キー:vfs.file.regmatch[D:\Dir-A\log\Sample20191001.log,"正常にエクスポート処理が完了しました",Shift_JIS]

と、YYYYMMDDの箇所を明示的に指定しての検知、アラート通知は実現できたのですが
実際は最新日付のファイルを監視対象としたいため、YYYYMMDDの箇所を正規表現か何かで本日日付に読み替えさせるようにしたいのですが
キー内のYYYYMMDD箇所をどのように記述すれば良いのか判らない状態です。

実現可不可も含めご助言いただけますと幸いです。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

vfs.file.regmatch[]の引数に指定するのは、静的なファイル名し
か指定できないようです。
そのログファイルがどのようなフォーマットであるのかわかりませ
んが、フォーマットによっては、logrt[]を使用してログに出力さ
れた文字列を取得して、トリガーで判断するという方法が選択でき
るかもしれません。

logrt[]であれば、引数で指定した正規表現のファイル名に合致す
るファイルの中から最新のファイルのみのデータを取得することが
できます。

ユーザー NAS の写真

TNKさん

お世話になります、ご回答ありがとうございます。

> vfs.file.regmatch[]の引数に指定するのは、静的なファイル名しか指定できないようです。
そうなのですね。そのような情報が調べても出てこなかったので非常に助かります、ありがとうございます。

> logrt[]であれば、引数で指定した正規表現のファイル名に合致するファイルの中から最新のファイルのみのデータを取得することができます。
こちらも最新ファイルのみを参照のは知りませんでした。。(合致するファイル全てを見に行くと思っていました。)

一度、logrt[] で実現可能か検証してみます。
結果は別途ご報告させていただきます。

ユーザー TNK の写真

正規表現に合致するファイル全てを確認するのですが、以前読み込
んだタイムスタンプよりも古いファイルは読み込みません。
最初に設定するときはskipオプションを追加しておいた方が良いと
思います。

ユーザー NAS の写真

本件についてその後の報告をさせていただきます。

結論から言うと監視が実現できていません。
他に時間を取られて中々検証ができていないのと、そもそも正規表現の知識が足りないのか
Windowsサーバの「ログファイルYYYYMMDD.log」を認識させるのにアイテムキーの記述で度のように記載をすれば良いのか・・・。

もう少し色々試してみて、どうしてもダメそうであればバッチ自体に手を入れてファイル名を「ログファイル.log」と出力させるように修正し、
追加でローテーションバッチを作成しようかと思います。

ユーザー kaeru の写真

アイテムキーはTNK様のご回答通りlogrtを使用すれば良いと思います。
→logrtについては以下マニュアル
https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtype...

設定例は以下です。

■アイテムキー
logrt["D:\Dir-A\log\^Sample.*\.log$","正常にエクスポート処理が完了しました",shift_jis,,skip]

■トリガー
{<ホスト名>:logrt["D:\Dir-A\log\^Sample.*\.log$","正常にエクスポート処理が完了しました",shift_jis,,skip].regexp(.*)}=1
and
{<ホスト名>:logrt["D:\Dir-A\log\^Sample.*\.log$","正常にエクスポート処理が完了しました",shift_jis,,skip].nodata(30)}=0
※"正常にエクスポート処理が完了しました"を検知後、30秒後に自動的にトリガーを復旧。

ユーザー NAS の写真

Kaeru様

お世話になります、書き込みいただきありがとうございます。
Kaeru様の内容と見比べたところ、Sample.*\の「\」が抜けておりました。。。。

設定し直したところ無事アイテムで指定文言を拾っていること、及びand条件でのトリガー復旧の動作まで確認することができました。

本当に助かりました、ありがとうございました!TNK様にも感謝です。