ZABBIXエージェントの値取得ができない場合の検知について
環境:CentOS6.3 ZABBIX2.2
監視元:Windows2003 Server+ZABBIXAgent2.2
上記の環境でZABBIXで監視を行おうといろいろ試しています。
CPU利用率などを設定してみましたが、値は無事取得することができましたが、トリガーの値がいろいろ試行錯誤しているのですが、動いてくれません。
敷居値のトリガーもうまく動きましたが、値を取得失敗した場合にトリガーで引っかかってくれないようです。
条件としては、値の取得失敗や前のログのタイムスタンプで10秒ぐらいずれていれば検知するといったトリガーをためしているのですが、何か情報ありませんでしょうか?
参考までに以下のようなトリガーを設定しています。
トリガーのキー:
{zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].last()}>80
| {custom_zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].nodata(0)}=0
また上記で動かないので、タイムスタンプなどで取得できないのかなと考え下記設定しても同じでした
{zabbixagent_Windows:system.cpu.util[,user,avg1].last()}>80
| {custom_zabbixagent_Windows:system.cpu.util[,user,avg1].fuzzytime(10)}#0
ZABBIXでは値が取得できなかった場合に対応する方法ありますか?
kng - 投稿数: 30
t-tommyさん
nodata 関数について、書式が間違えているように思います。
# https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions
-> 1 - if no data received during period of time in seconds. The period should not be less than 30 seconds.
マニュアルに記載のある通り、nodata関数は30秒以上を設定する必要があります。
80より大きいか、データが取得できなかった場合はアラームとしたい場合は、
{zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].last()} > 80
| {custom_zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].nodata(監視周期以上)}=1
で、できませんか?
fuzzytimeについてですが、値取得ができなかった場合には評価ができなと思います。
予定時間に値取得ができていないことを検知するには、nodataを使うのが妥当と思います。
t-tommy - 投稿数: 4
kngさん
ありがとうございます。
ご指摘の通り記載が間違っておりました。
{zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].last()} > 80
| {custom_zabbixagent_Windows:perf_counter[\Processor(_Total)\% Processor Time].nodata(30)}=1
で無事アラート検知できるようになりました。
監視周期をテストもために5秒程度と極端に短くしていたのとマニュアル読み不足でした。
監視周期を1分単位に設定し、nodata(30)で記載したところ想定通り値が取れないアラートを検知してくれるようになりました。
fuzzytimeの件了解です。
上記nodataで評価するようにトリガーを設定したいと思います。
ご指摘感謝いたします。