【ZABBIX】トリガーアクション実行時のスクリプト、どこに書く??
はじめに
どうも、よしたけ(@yoshitake945)です。Zabbix Advent Calendar 2025 として、「Zabbixのあるある」、1個だけあります🙋
私は約3年ほどZabbix5.0LTSに慣れたなか、最新LTS(Zabbix7.0, 8.0)に向け学んでる最中となります。(2025年に、認定プロフェッショナルを5.0→7.0に更新しました!関係者のみなさま、ありがとうございました!!)
実際にZabbix7.xで手を動かしたり、トレーニングを受ける中で、いくつか印象に残った変更点があります。
| 印象に残った変更点 | バージョン |
|---|---|
| トリガー条件式の記法変更 | 5.4 |
| テンプレートが、ホストグループからテンプレートグループに分離 | 6.2 |
| プロセスがマルチスレッド化へ移行(段階的) | 7.0 |
今年で設立20周年となり、多くの改善がされてきたZabbixで、覚え直すことのひとつを記録したいと思います。
Zabbixのトリガーアクション
Zabbixのトリガーアクションは、ざっくりZabbixがトリガーイベントを生成したときに、何をさせるかという設定です。設定は、「通知 > アクション > トリガーアクション」からできます。

トリガーアクションでは大きく2パターンに分類でき、「メールやSlackなどに通知させる」か、「何かしらスクリプト実行させる」かになります。
後者は、「アラート発報したときの初動を自動化したいな」という希望を叶えてくれる機能です。
今までのノリで設定してみる
ほんの一例として、Zabbixの中心となるキャッシュ領域(Value Cache)がlow-memory modeになったときに、「Zabbixサーバは無条件でリスタートさせる」という自動化は、トリガーアクションに設定すれば、やれちゃう想定です。
「新規アクション」として、ホスト: Zabbix serverが トリガー: Zabbix value cache working in low-memory modeが等しいことを、実行条件として設定します。

次に、実行内容を指定して、

スクリプトを書きたいんですが、、、

あれ?かけない??選択できない??😇😇😇
以前は、上記の操作でスクリプトまで書けました。
果たしてこれからは、どこに書けば良いのでしょうか???
グローバルスクリプトとして別に設定しておく
トリガーアクションに書いてたスクリプトは、Zabbix5.4からグローバルスクリプトに移動されました。「通知 > スクリプト」から設定します。

デフォルトでお馴染みの、監視ホストのOSチェックやPing、Tracerouteもここで管理されてますね。

ここに、新しくスクリプトを作ります。トリガーアクションで使用するには、「範囲: アクション処理」を指定することが必要です。

Zabbix server リスタートのスクリプト設定が追加されましたね!👏👏👏

トリガーアクションからスクリプト設定を選択する
もう一度、トリガーアクションの設定を確認すると、実行内容としてZabbix server リスタートのスクリプト設定が選択できるようになりました!

最終的に、アクション設定を追加して、完了です!

感想・まとめ
トリガーアクションに書くスクリプトの設定箇所は、トレーニング受講済みでした。
しかし、業務で質問された際、即座に答えられなかったのが印象的で、Advent Calendarネタとして記録しています。
過去バージョンを知らない初見の方だと、むしろ分かりやすいかもしれませんね。
以上、「トリガーアクション実行時のスクリプト、どこに書くか見失いがち」という、Zabbixあるあるでした〜〜👏👏👏
Discussion