基本的な使い方は公式サイトに記載されているが、癖のある閾値の見方をするトリガー設定もあるので📝しておく。
regexp(), iregexp()
- 最新値がregular expressionと一致するかどうかチェックする。
- parameterはPOSIXのregular expression。
iregexp("WARNING", 10(sec)[#3])
((({xxx:log[/var/log/messages,"error"].iregexp(error)})=1) and (({xxx:log[/var/log/messages,"error"].nodata(60)})=0))
出力ログにて WARNING
が含まれている場合、トリガーが実行される。
{Template_xxx:check_xxx[{Conditional expression}].iregexp("WARNING")}<>0
count
前提: アイテムの取得間隔は1分とする。
直近7回で、CPU利用率80%以上が3回以上(3/7回)続いた場合はトリガーが実行される。
{Template OS Windows:system.cpu.util[,system,avg1].count(#7, 80, "gt")}>3
dayofweek()
月(18:00~)から金(24:00)までで、 WARNING
が検出されたらトリガーが実行される。
({Template_xxx:check_xxx[{Conditional expression}].str("WARNING")}=1) and ({Template_xxx:check_xxx[{Conditional expression}].dayofweek()}<6) and (({Template_xxx:check_xxx[{Conditional expression}].dayofweek()}=1) and ({Template_xxx:check_xxx[{Conditional expression}].time(0)}<180000)=0)
6:00から6:30までで、CPUのLAをチェックする。
({Template_xxx:system.cpu.load[percpu,avg5].avg(20m)}>5) and (({Template_xxx:system.cpu.load[percpu,avg5].time(0)}<060000) or ({Template_xxx:system.cpu.load[percpu,avg5].time(0)}>063000))
regular expression
error_message 1 » WARNING|CRITICAL|UNKNOWN|ERROR [result is true]
@error_message
を検出した場合、トリガーが実行される。
{Template_xxx:check_xxx[{Conditional expression}].iregexp(@error_message)}<>0
ping
icmpping
監視間隔(60秒)ごとに3回pingを実行し、0.5秒以内に1つでも応答がある場合は1を返し、それ以外の場合は0を返す。3回(60秒* 3)以上だとトリガーが実行される。
{Template Module ICMP Ping:icmpping.max(#3)}=0
icmppingloss
packet loss率($ICMP_LOSS_WARN)が5分以上で20〜99%継続すると、トリガーが実行される。
{Template Module ICMP Ping:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Template Module ICMP Ping:icmppingloss.min(5m)}<100
web monitoring
{template_xxx:web.test.rspcode[Web-Monitoring_xxx,http://{HOST.IP}/_hc.html].last(#5)}<>200
Trigger 同士の依存関係
- trigger_WARNING threshold 80%
- trigger_CRITICAL threshold 90%
2つの別々のしきい値が同じアイテムに紐付いていた場合、復帰時にトリガーが重複して実行される。そのような場合は、trigger expressionを使用できる。
trigger_WARNING
は trigger_CRITICAL
を依存関係先として設定出来る。