【Zabbix】トリガーアクションでスクリプトを実行する方法

こんにちは、SCSKの坂木です。

Zabbixで監視はできているけど、障害発生時の対応は手作業…面倒ですよね。

そこで、本ブログではZabbixのトリガーアクションで障害対応を自動化する方法を解説します。 今回はトリガーアクションの中でもスクリプトの実行方法について説明します。

この方法をマスターすれば、手作業による対応時間を大幅に削減することができます!

本ブログでは、以下の2パターンの実行方法を紹介します。

  • Zabbixサーバで障害が発生し、Zabbixサーバでスクリプトを実行する
  • Zabbixエージェントで障害が発生し、Zabbixエージェントでスクリプトを実行する

Zabbixサーバでのスクリプト実行

設定

zabbix_server.confを編集し、EnableGlobalScripts=1と設定します。設定変更後の、サービス再起動もお忘れなく!

cat /etc/zabbix/zabbix_server.conf | grep EnableGlobalScripts

 

Zabbixサーバで障害が発生したときに実行するスクリプトを作成します。(通知 >スクリプト から設定ください)

今回実行するコマンドは、障害発生日時と障害名を「/var/log/problemlog」に書き込むものとなっております。
メッセージ内で利用されているマクロはこちらをご覧ください。

また、今回はファイルに書き込むコマンドとしましたが、コマンド次第で特定のプロセスの削除や、サービスの再起動/開始なども実施可能です。

コマンド実行はzabbixユーザにより行われるため、zabbixユーザが/var/log/problemlogに書き込めるよう権限設定をします。

ls -la /var/log/ | grep problem

 

次に、スクリプトを実行するアクションを設定します。(通知 >アクション >トリガーアクション から設定ください)
実行条件は、Zabbix server(ホスト名)のいずれかのアイテムが障害と判断されたときとしています。

 

処理内容に、作成したスクリプト(test-script)を選択します。

ターゲットリストの現在のホストにチェックを入れます。今回は障害の発生したホストでスクリプトを実行するため現在のホストを選択しましたが、障害の発生したホストとコマンドを実行するホストが異なる場合は、ホスト/ホストグループからコマンドを実行するホストを選択してください。

 

動作確認

障害を発生させると、アクションの項目からリモートコマンドが実行されたことを確認できます。

 

ファイルを確認してみましょう。問題なく書き込まれていました。

cat /var/log/problemlog

 

Zabbixエージェントでのスクリプト実行

設定

スクリプトを実行するサーバのzabbix_agentd.confを編集し、EnableRemoteCommands=1とします。

cat /etc/zabbix/zabbix_agentd.conf | grep EnableRemote

 

Zabbixエージェントで実行するスクリプトを作成します。

次で実行は、Zabbixエージェントを選択します。コマンド内容は先ほどと同様です。

 

トリガーアクションを設定します。

実行条件は、test-agent(ホスト名)のいずれかのアイテムが障害と判断されたときとしています。処理内容に、作成したスクリプト(test-script-agent)を選択します。

 

動作確認

障害画面を確認しましょう。リモートコマンドが実行されたことを確認できました。

 

Zabbixエージェント環境にて、書き込み先ファイルを確認すると、問題なくログが出力されていました。

 

まとめ

最後まで読んでいただきありがとうございます。

本ブログでは、Zabbixのトリガーアクションでスクリプトを実行する方法について紹介しました。
アクション設定をすることで、障害対応を自動化でき、手作業で行っていた作業工数を削減できます。

この記事を参考にぜひ試してみてください!

 

SCSK Zabbixチャンネルでは、設定操作のナレッジ動画などを公開しておりますので、ぜひご覧ください。

SCSK Zabbixチャンネル
SCSK Zabbixチャンネルでは、最新のZabbixトレンドや実際の導入事例を動画で解説。明日から使える実践的なノウハウを提供します。 今すぐチャンネル登録して、最新情報を受け取ろう!

お時間のある方は、筆者の他のZabbix記事も見てやってください!

【Zabbix】system.runでスクリプト実行結果を監視する方法
Zabbixのsystem.run設定方法をステップバイステップで解説。標準アイテムにないカスタム監視を実現するため、zabbix_agentd.confの修正、安全なAllowKeyの使い方、スクリプトの権限設定までを網羅。初心者でも安心のガイドです。
【Zabbix】UserParameterでスクリプト実行結果を監視する方法
ZabbixのUserParameter設定ガイド。独自の監視項目を追加する方法、引数を使ったコマンドの使い回し、system.runとの違いを具体例で紹介。監視業務を効率化したい方はぜひ。
スクリプトを用いてZabbixサーバのインストールを自動化してみた-RHEL系OS/MySQL編-
Zabbixサーバのインストールを自動化するシェルスクリプトを紹介します!初心者でも簡単に短時間でZabbixサーバの構築が可能となります。スクリプトを用いた構築で効率化をしましょう!

 

タイトルとURLをコピーしました