プロセスの監視で、一定時間落ちている判定で発火するトリガー条件式
OS:Ubuntu20.04
Zabbixサーバ6.0
Zabbixエージェント6.4
投稿者のZabbix経験:数か月
---
特定プロセスの監視をしています。プロセスの動作が怪しいもので試行錯誤しております。
監視したいプロセスのアイテムタイプは今の所Zabbixエージェントです。
アイテムの監視間隔は30sにしています。
① 特定プロセスが3分間落ちている時に初めて発火するトリガーを作成したいのですが、どのような条件式が考えられるでしょうか?
② ①で3分間待っている間に、プロセスが復旧したら解決済みにしたいのですが、どのような条件式が考えられるでしょうか?
③ ②で、プロセスが突然再起動した場合も検知するにはどのような方法が考えられるでしょうか?
アイテムタイプを「Zabbixエージェント(Active)」にして、別のアイテムを作成する必要がありますか?
---
取り敢えず①②は下記で作成して動作しているっぽいのですが、他に方法があればと思いお伺いする次第です。
①障害条件式:
avg(/hostname/proc.num[process_name,,,],3m)=0
②復旧条件式:
last(/hostname/proc.num[process_name,,,])<>0
③わかりません
よろしくお願いいたします!
ama - 投稿数: 76
> ① 特定プロセスが3分間落ちている時に初めて発火するトリガーを作成したいのですが、どのような条件式が考えられるでしょうか?
⇒count関数を使ったら回数でトリガーを発報できるかと思います。
■例
count(/hostname/proc.num[process_name,,,],#6,"eq",0)=6 ※過去6回のプロセス監視で6回「0」だったら障害発報
count関数は時間を条件にもできるのですが、アイテム取得時間とトリガー条件評価時間のずれなのか思うような動きになりませんでした。
もうちょっと検証すればどうにかなりそうですが。。。
> ② ①で3分間待っている間に、プロセスが復旧したら解決済みにしたいのですが、どのような条件式が考えられるでしょうか?
⇒①のトリガーを作れば3分以内のプロセスダウンは拾わないので、トリガーを発報することはありません。
また、「障害イベント生成:条件式」「障害イベント生成モード:単一」で①トリガーを作成すれば、
①の条件式から外れた場合に障害を自動クローズされるので、解決済みにすることを考慮する必要もないと思います。
> ③ ②で、プロセスが突然再起動した場合も検知するにはどのような方法が考えられるでしょうか?
> アイテムタイプを「Zabbixエージェント(Active)」にして、別のアイテムを作成する必要がありますか?
⇒別トリガーでプロセスが復旧した時に検知するよう設定すればよいのではと思います。
どういった条件を突然再起動したとするのかは検討する必要がありますが。
sysido111 - 投稿数: 2
回答ありがとうございます。
① 下記いずれも動作したように見えました。
count(/hostname/proc.num[process_name],#3,"eq",0)=3 ※過去3回のプロセス監視で3回「0」だったら発砲した
count(/hostname/proc.num[process_name],3m,"eq",0)=3 ※3分間でプロセス起動無しが3回で発砲した(アイテム監視間隔は適当に短めに設定)
【参考】下記はアイテムタイプがZabbixエージェント(アクティブ)の時は動作した
nodata(hostname/proc.num[process_name],3m)=1
② 上記①のCount関数で復旧条件式を設定せずに、復旧したら普通に解決済みになりました。
③ プロセス再起動はプロセス監視で拾えないようなのでログ監視で行うことにしました。