vfs.file.md5sumはハッシュ値のついでにファイルの存在を確認してくれるのか

お世話になります。

発報条件として
「ファイルの存在しない場合」あるいは「ファイルのハッシュ値が変わった場合」を設定したいのですが
vfs.file.md5sumがあればvfs.file.existsはアイテム登録する必要がないと思うのですがどうでしょうか?

条件式は

{TEST:vfs.file.exists[/etc/passwd].last()}=1
or
{TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=0

と設定すれば発報条件は満たせるのですが
vfs.file.md5sumは「戻り値が前回のハッシュ値と異なれば発報する」というものであれば

{TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=0

のみで発報条件を満たすのでしょうか?

コメント表示オプション

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

vfs.file.md5sum[]で引数に指定したファイルが存在しない場合、
そのアイテムの状態は、「取得不可」となります。

取得不可の状態になってしまうと、トリガーの条件式は評価されま
せん。
そして、デフォルトでは、5分後にならないと再度アイテムの値を
取得しにいかないのでご注意ください。

vfs.file.exists[]の方は、引数で指定したファイルが存在しなけ
れば0となりますし、存在すれば1となります。

なので、ファイルが存在しないというのは、

{TEST:vfs.file.exists[/etc/passwd].last()}=0

ではないでしょうか?

あと、

 {TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=0

とありましたが、ハッシュ値が変わったことを示すなら、

 {TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=1

ではないでしょうか?

あと、この条件式のみとした場合、アイテムの状態が取得不可にな
った時に注意が必要です。

ご確認ください。

ユーザー yk_taiko の写真

トリガー条件の中にエラーのアイテムが一つでもあるとトリガーは動かなかった と思いますので、
vfs.file.exists を使う場合も、「or」で繋げずトリガーは分けた方が無難かと思いました。

ユーザー sho-san の写真

>vfs.file.md5sum[]で引数に指定したファイルが存在しない場合、
>そのアイテムの状態は、「取得不可」となります。

>取得不可の状態になってしまうと、トリガーの条件式は評価されません。

ありがとうございます。
ファイルが無い=戻り値が異なる
とzabbix側が勝手に解釈してくれるだろうと思いこんでいました。。。

>vfs.file.exists[]の方は、引数で指定したファイルが存在しなけ
>れば0となりますし、存在すれば1となります。
>なので、ファイルが存在しないというのは、
>{TEST:vfs.file.exists[/etc/passwd].last()}=0
>ではないでしょうか?
>あと、
> {TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=0
>とありましたが、ハッシュ値が変わったことを示すなら、
> {TEST:vfs.file.md5sum[/etc/passwd].diff(0)}=1
>ではないでしょうか?

ご指摘感謝いたします。
おっしゃる通り全くの逆の事を言っていました。。。
失礼しました。

ユーザー sho-san の写真

ご回答ありがとうございます。
なるほど、zabbixが良いように解釈してくれると勘違いしていました…

>トリガー条件の中にエラーのアイテムが一つでもあるとトリガーは動かなかった と思いますので、
>vfs.file.exists を使う場合も、「or」で繋げずトリガーは分けた方が無難かと思いました。
管理しやすいようにorで無理やり繋げて一つにまとめるやり方をとっていましたが
仰る通り発報しなくなるリスクを考えると、トリガーをあえて分けたほうが良いかもですね。
今後の参考にいたします。