【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で複雑なログ監視を実装する方法-count関数編-
Zabbixのcount関数を使った複雑な条件のログ監視を行う方法をご紹介します。ログ監視で、5分間で5回”ERROR”という文字列が含まれるといった条件はパッと作成できますか?さらには、5分間で連続で5回”ERROR”という文字列が含まれるといったように、「連続で」という条件がつくとさらに頭を悩ませるのではないでしょうか。そこで今回は、このような条件式を作成できるcount関数を用いたログ監視について紹介していきます。
タイトルとURLをコピーしました