[comment]: # translation:outdated

[comment]: # ({fc0a59fb-e25ccc09})
# 3 カスタムアラートスクリプト

[comment]: # ({/fc0a59fb-e25ccc09})

[comment]: # ({107059b3-bc410af8})
#### 概要

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

アラートスクリプトは Zabbix server 上で実行されます。これらのスクリプトはサーバの[configuration file](/manual/appendix/config/zabbix_server) の <br>**AlertScriptsPath** 変数で定義されたディレクトリに配置されています。

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

``` {.bash}
#!/bin/bash

to=$1
subject=$2
body=$3

cat <<EOF | mail -s "$subject" "$to"
$body
EOF
```

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

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

[comment]: # ({/107059b3-bc410af8})

[comment]: # ({77e5cecb-47055351})
#### 設定

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

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

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

![](../../../../../assets/en/manual/config/notifications/media/media_script.png)

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

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

|パラメータ|説明|
|---------|-----------|
|*Script name*|Enter the name of the script.|
|*Script parameters*|Add command-line parameters to the script.<br>{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE} [macros](/manual/appendix/macros/supported_by_location) are supported in script parameters.<br>Customizing script parameters is supported since Zabbix 3.0.|

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

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

:::

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

[comment]: # ({/77e5cecb-47055351})

[comment]: # ({83685be3-6a270eac})
### メディアタイプのテスト

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

1. メディアタイプの[リスト](/manual/config/notifications/media#overview)から該当するスクリプトを探します。

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

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

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

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

![](../../../../../assets/en/manual/config/notifications/media/script_test.png){width="600"}

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

[comment]: # ({/83685be3-6a270eac})

[comment]: # ({a35c720e-525cb972})
#### ユーザーメディア

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

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

[comment]: # ({/a35c720e-525cb972})
