This is a translation of the original English documentation page. Help us make it better.

3 カスタムアラートスクリプト

概要

警告を送信するための既存のメディアタイプに満足できない場合、別の方法があります。独自の方法で通知を処理するスクリプトを
作成することができます。

アラートスクリプトは Zabbix server 上で実行されます。これらのスクリプトはサーバのconfiguration file
AlertScriptsPath 変数で定義されたディレクトリに配置されています。

以下はアラートスクリプトの例です。:

#!/bin/bash
       
       to=$1
       subject=$2
       body=$3
       
       cat <<EOF | mail -s "$subject" "$to"
       $body
       EOF

バージョン3.4以降、Zabbix は実行されたコマンドとスクリプトの終了コードをチェックします。終了コードが ** 0 **以外の終了コードは、
command execution エラーとみなされます。この場合、Zabbixは実行に失敗したコマンドを 再度実行しようとします。

環境変数はスクリプトのために保存も作成もされないので、明示的に処理する必要があります。

設定

カスタムアラートスクリプトをメディアタイプとして設定するには:

  • Administration → Media types に進みます。
  • Create media type をクリックします。

Media type タブには、メディアタイプに関する一般的な属性が含まれています:

すべての必須入力フィールドには、赤いアスタリスクが表示されます。

以下のパラメータは、スクリプトメディアタイプに固有のものです:

パラメータ 説明
Script name Enter the name of the script.
Script parameters Add command-line parameters to the script.
{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE} macros are supported in script parameters.
Customizing script parameters is supported since Zabbix 3.0.

common media type parameters でデフォルトのメッセージとアラート処理オプションを設定する方法の詳細について説明します。

アラートスクリプトがデフォルトのメッセージを使用しない場合でも、このメディアタイプで使用される操作タイプ用の
メッセージテンプレートが定義されていなければなりません。そうでなければ、通知は送られません。

メディアタイプの並列処理は Zabbix 3.4.0 から実装されているため、複数のスクリプトメディアタイプが設定されている場合、これらの
スクリプトはアラータプロセスによって並行して処理される可能性があることに注意することが重要です。アラータプロセスの総数は、
StartAlerters parameter によって制限されます。

Media type testing

To test a configured script media type:

  • Locate the relevant script in the list of media types.
  • Click on Test in the last column of the list (a testing window will open).
  • Edit the script parameter values, if needed (editing affects the test procedure only, the actual values will not be changed).
  • Click on Test.

ユーザーメディア

メディアタイプを設定したら、Administration → Users セクションで、ユーザープロファイルを編集して、このタイプのメディアを
ユーザーに割り当てます。ユーザーメディアの設定方法は、すべてのメディアタイプに共通なので、Media typesに記述されています。

ユーザーメディアを定義する場合、Send to フィールドを空にすることはできないことに注意してください。このフィールドを アラートスクリプトで使用しない場合は、検証要件を回避するために、サポートされている文字の任意の組み合わせを入力してください。