ファイル監視
ファイル監視についてまとめています。
監視内容
監視項目 | アイテムキー | 説明 |
---|---|---|
ファイルの有無 | vfs.file.exists[file]
file - ファイルへのフルパス |
ファイル存在チェック。ファイルが存在しない場合は「0」を返し、通常のファイルが存在するか存在する通常のファイルへのリンク(シンボリックでもハードでも)があれば「1」を返す。 |
ファイルサイズ | vfs.file.size[file]
file - ファイルへのフルパス |
バイト単位のサイズ。 ファイルには、ユーザーzabbixに対する読み取り権限が必要。 |
ファイルの時刻情報 | vfs.file.time[file,mode]
file - ファイルへのフルパス |
ファイルの時刻情報。UNIXのタイムスタンプで整数値を返す。 |
ファイルのチェックサム | vfs.file.cksum[file]
file - ファイルへのフルパス |
UNIXのcksumにより使用されるアルゴリズムで計算されるファイルのチェックサム。 |
アイテムの設定
ファイルの有無
・名前:1.ファイルの存在チェック
・タイプ:Zabbixエージェント
・キー:vfs.file.exists["c:\temp\test.txt"]
・データ型:数値(整数)
ファイルサイズ
・名前:2.ファイルサイズ
・タイプ:Zabbixエージェント
・キー:vfs.file.size["c:\temp\test.txt"]
・データ型:数値(整数)
・単位:B
ファイル時刻情報
・名前:3.ファイル時刻情報
・タイプ:Zabbixエージェント
・キー:vfs.file.time["c:\temp\test.txt",modify]
・データ型:数値(整数)
ファイルのチェックサム
・名前:4.ファイルのチェックサム
・タイプ:Zabbixエージェント
・キー:vfs.file.cksum["c:\temp\test.txt"]
・データ型:数値(整数)
動作確認
アイテムの設定が完了したら、データが問題なく取得できているか確認します。
「監視データ」-「最新データ」をクリックします。
右上にあるホスト欄で、監視対象機器を選択します。
データが取得できているか確認します。
設定例
サンプル1
特定の場所にファイルが存在するかを1日ごとにチェックする。(C:\temp\test.txt)
ファイルが存在しなければアラートメールを送信する。
環境
Server:3.0.7
Agent:3.0.4
アイテムの設定
トリガーの設定
{Test Template File:vfs.file.exists["C:\temp\test.txt"].last()}=0
アクションの設定
サンプル2
可変ファイルが存在するか1日ごとにチェックする。(C:\temp\test-YYYYMMDD.txt)
ファイルが存在しなければアラートメールを送信する。
環境
Server:3.0.7
Agent:3.0.4
アイテムの設定
キーの 「 file.check 」 はユーザパラメータを使用しています。ユーザーパラメータの設定は後述のコンフィグファイルの項目を参照。
トリガーの設定
{Test Template File:file.check.last()}=0
アクションの設定
サンプル1の設定と同様
コンフィグファイル
監視対象のサーバで「zabbix_agentd.win.conf」ファイルを開き、UserParameterを追加して下さい。
UserParameter=file.check,dir c:\temp\test-%date:~0,4%%date:~5,2%%date:~8,2%.txt /B 2>null | find /c /v ""
意味は、以下の通り。
C:\temp\test-YYYYMMDD.txtファイルがあれば1、なければ0を返します。
解説
%date:~0,4%%date:~5,2%%date:~8,2% : 年月日を返す。20170101
/B : ファイル名のみを表示。 (見出しや要約はなし)
2>null : エラー出力をNULへ出力することで結果的にエラー出力はどこにも表示されない
/c : 指定した文字列を含む行の数(行数)を出力する
/v : 指定した文字列を含まない行を出力する
サンプル3
可変ファイルが存在するか1日ごとにチェックする。(C:\temp\test-YYYYMMDD.txt)
ファイルが存在しなければアラートメールを送信する。
(※サンプル2のようにユーザパラメータを使用しない方法)
環境
Server:3.0.7
Agent:3.0.4
アイテムの設定
system.run["dir c:\temp\test-%date:~0,4%%date:~5,2%%date:~8,2%.txt /B 2>null | find /c /v \"\""]
トリガーの設定
{Test Template File:system.run["dir c:\temp\test-%date:~0,4%%date:~5,2%%date:~8,2%.txt /B 2>null | find /c /v \"\""].last()}=0
アクションの設定
サンプル1の設定と同様
コンフィグファイル
監視対象のサーバで「zabbix_agentd.win.conf」ファイルを開き、以下のパラメータを追加して下さい。
EnableRemoteCommands=1
サンプル4
特定のファイルが1時間以上更新されない場合にアラートメールを送信する。
環境
Server:3.0.7
Agent:3.0.4
トリガーの設定
{Test Template File:vfs.file.time["C:\temp\test.txt",modify].now()}-{Test Template File:vfs.file.time["C:\temp\test.txt",modify].last()}>3600
アクションの設定
サンプル1の設定と同様