アクション実行前のメッセージの取得方法

いつもお世話になっております。

Zabbix APIにて、トリガー実行後でアクション実行前のメッセージを
取得出来ないかと考えております。
アクション実行後であれば、alert.getで取得できることは確認できたのですが、
何か良い方法はありますでしょうか。

最悪、SQL文でDBから直接取得するしかないと思っておりますが、
何とか避けたいと思っております。

Zabbixのバージョンは2.0.9になります。

コメント表示オプション

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

トリガーで判定して障害と判断されたら、すぐにアラートの情報として
登録されるので、それをフックするとなると、ソースの改変をしない
限り値を取得することは不可能だと思います。

もう少し、どのようなことを実現されたいかをお教え頂ければ、代替案
がないか検討してみます。

ユーザー toku1975 の写真

TNKさん

回答いただきありがとうございます。

> もう少し、どのようなことを実現されたいかをお教え頂ければ、代替案
> がないか検討してみます。
現在、トリガー実行後、アクションにてスクリプトを実行し、
シスログへのメッセージ出力を行っております。
このスクリプト実行は、トリガーが実行されてから30秒後(デフォルト)に
実行される設定になっていると認識しております。

そのため、トリガーが実行されてからスクリプトが実行されるまでの間に
Zabbixサーバに障害等が発生し、スクリプトが実行されなかった場合の
ことを考え、トリガー直後の情報が取得できればと考えております。

> トリガーで判定して障害と判断されたら、すぐにアラートの情報として
> 登録されるので、それをフックするとなると、ソースの改変をしない
> 限り値を取得することは不可能だと思います。
ふと思ったのですが、登録されたアラート情報をもとにスクリプトが実行
されるのであれば、アラート情報が取得できれば前述のことは
満たしているのではと思いました。
検証してみたいと思います。

ユーザー TNK の写真

このスクリプト実行は、トリガーが実行されてから30秒後(デフォルト)に
実行される設定になっていると認識しております。

30秒後ではなく、デフォルトでは30秒間隔で実行すべきアクション
が登録されていないかDB上のチェック処理が行われます。
ですので、トリガーが発生して最悪30秒後ですが、タイミングによ
ってはすぐに実行されます。

より短い時間間隔で処理させたいのであれば、zabbix_server.conf
内のSenderFrequencyの値を短く設定してみてください。

そのため、トリガーが実行されてからスクリプトが実行されるまでの間に
Zabbixサーバに障害等が発生し、スクリプトが実行されなかった場合の
ことを考え、トリガー直後の情報が取得できればと考えております。

DBが壊れればスクリプトが実行されない可能性はありますが、DBが
壊れない限り、再度Zabbixサーバが起動されDBをチェックしてアクシ
ョンを実行すべきものがあれば、アクションが実行されるようになって
います。

ユーザー toku1975 の写真

TNKさん

> 30秒後ではなく、デフォルトでは30秒間隔で実行すべきアクション
> が登録されていないかDB上のチェック処理が行われます。
> ですので、トリガーが発生して最悪30秒後ですが、タイミングによ
> ってはすぐに実行されます。
ご指摘ありがとうございます。

> より短い時間間隔で処理させたいのであれば、zabbix_server.conf
> 内のSenderFrequencyの値を短く設定してみてください。
試してみたいと思います。

ユーザー KAZ の写真

tkcurlさん


このスクリプト実行は、トリガーが実行されてから30秒後(デフォルト)に
実行される設定になっていると認識しております。

デフォルトでステップ1なら即時(Immedately)で動くはずですが…

↓ここを参考になりますかね?
マニュアルの3 エスカレーション
https://www.zabbix.com/documentation/jp/2.0/manual/config/notifications/...

ユーザー toku1975 の写真

KAZさん

> ↓ここを参考になりますかね?
> マニュアルの3 エスカレーション
> https://www.zabbix.com/documentation/jp/2.0/manual/config/notifications/...
ありがとうございます。
参考にさせていただきます。