ログの出力先が日付のディレクトリ
Windows上のパッケージアプリをログ監視する必要があり、そのアプリはログファイルの出力先が日付のディレクトリを作成して、その中にファイル名YYYYMMDDHHMMSS.logで出力するとってもファンキーな仕様でした。
zabbixでのアイテム指定
まず、試したのがlogrt
これは正規表現が使えるらしいので以下の様に指定してみた。
仮にC:\logs\YYYYMMDD\とした場合
key:log[C:\logs\.*\.*/.log]
しかし、動かない、どうやらlogrtは最後の\から後のファイル名に対してのみ正規表現が使えるらしい。
......なにーーー!ってことはサブディレクトリを毎日作られたら、ログ取得できないじゃん!
仕方がないので
監視対象のWindows側の日次のバッチ処理で、翌日の日付のシンボリックリンク作って対応しました。
mklink /D C:\logs\YYYYMMDD\ C:\logs
こうしておけばアプリは日付のディレクトリにlogを吐いてるつもりでも、実際はC:\logsにファイルが出力されます。
ついでも昨日のシンボリックリンクは掃除のため削除するようにしておく。
この状態ならzabbixで
key:log[C:\logs\.*/.log]
としてすれば、ログを吸い上げてくれましたとさ、めでたしめでたし。
その他
LLDってのを使うと動的にアイテム作れるらしいのでできるっぽいけど試してません。