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 によって制限されます。

メディアタイプのテスト

設定済みのスクリプトメディアタイプをテストするには:

  1. メディアタイプのリストから該当するスクリプトを探します。

  2. リストの最後の列にあるテストをクリックすると、ポップアップウィンドウにテストフォームが開きます。

テストフォームには、スクリプトメディアタイプに設定されているパラメータと同じ数が表示されます。

  1. 必要に応じて、スクリプトパラメータの値を編集します。編集はテスト手順のみに影響し、実際の値は変更されません。

  2. テストをクリックします。

設定されたスクリプトメディアタイプをテストする場合、{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}、およびユーザーマクロはそれぞれの値に解決されますが、イベントに関連するマクロ(例:{HOST.HOST}、{ITEM.LASTVALUE}など)は解決されません。これは、テスト中に詳細を取得するための関連イベントが存在しないためです。 {ALERT.SUBJECT}および{ALERT.MESSAGE}マクロ内のマクロも解決されないことに注意してください。 例えば、{ALERT.SUBJECT}の値が"問題: {EVENT.NAME}"で構成されている場合、{EVENT.NAME}マクロは解決されません。

ユーザーメディア

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

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