ファイル監視

file.png

ファイル監視についてまとめています。


監視内容

監視項目 アイテムキー 説明
ファイルの有無 vfs.file.exists[file]

file - ファイルへのフルパス

ファイル存在チェック。ファイルが存在しない場合は「0」を返し、通常のファイルが存在するか存在する通常のファイルへのリンク(シンボリックでもハードでも)があれば「1」を返す。
ファイルサイズ vfs.file.size[file]

file - ファイルへのフルパス

バイト単位のサイズ。 ファイルには、ユーザーzabbixに対する読み取り権限が必要。
ファイルの時刻情報 vfs.file.time[file,mode]

file - ファイルへのフルパス
mode - modify(デフォルト。変更時刻)、access - 最終アクセス時刻、change - 最終変更時刻

ファイルの時刻情報。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"]
・データ型:数値(整数)

動作確認

アイテムの設定が完了したら、データが問題なく取得できているか確認します。
「監視データ」-「最新データ」をクリックします。
右上にあるホスト欄で、監視対象機器を選択します。
データが取得できているか確認します。

 

zabbix-file-result10

設定例

サンプル1

特定の場所にファイルが存在するかを1日ごとにチェックする。(C:\temp\test.txt)
ファイルが存在しなければアラートメールを送信する。

 

環境

Server:3.0.7
Agent:3.0.4

 

アイテムの設定

zabbix-file-sample-item10

 

トリガーの設定

{Test Template File:vfs.file.exists["C:\temp\test.txt"].last()}=0
zabbix-file-sample-trigger10

 

アクションの設定

zabbix-file-sample-action10

 

 

サンプル2

可変ファイルが存在するか1日ごとにチェックする。(C:\temp\test-YYYYMMDD.txt)
ファイルが存在しなければアラートメールを送信する。

 

環境

Server:3.0.7
Agent:3.0.4

 

アイテムの設定

キーの 「 file.check 」 はユーザパラメータを使用しています。ユーザーパラメータの設定は後述のコンフィグファイルの項目を参照。
zabbix-file-sample-item15

 

トリガーの設定

{Test Template File:file.check.last()}=0
zabbix-file-sample-trigger15

 

アクションの設定

サンプル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 \"\""]
zabbix-file-sample-item17

 

トリガーの設定

{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
zabbix-file-sample-trigger17

 

アクションの設定

サンプル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()}>3600zabbix-file-sample-trigger20

 

アクションの設定

サンプル1の設定と同様

トップへ戻る