日本語アラートメールの送信方法
ZabbixサーバはアラーとメールをUTF-8で送信します。最近のメールクライアントではUTF-8のメールも問題なく扱えますが、古い携帯電話などはUTF-8のメールを適切に表示できずに文字化けしてしまう場合があります。
また、ZabbixサーバはSMTP Auth認証に対応していないため、標準のメール送信機能では認証が必要なメールサーバを利用することができません。
ここでは、ZABBIXのカスタムスクリプト機能を利用して、スクリプトで適切な情報の付加とエンコード処理を行ってメールを送信したり、SNMP Auth認証に対応するためのスクリプトを紹介します。
なお、スクリプトを利用した場合はZabbixサーバがメール送信のたびに外部コマンドとしてスクリプトを呼び出して実行するため、標準のメール送信機能よりは実行に負荷がかかります。特に文字化けなどの問題がない場合はZabbixサーバ標準のメール送信機能を利用されることを推奨します。
Zabbixサーバ以外のサーバ上で動作しているSMTPサーバを利用する場合 (認証が必要なSMTPサーバにも対応)
スクリプトファイルのダウンロードと設置
- ZABBIX-JPがgithub上に公開している通知用のプラグインのURL https://github.com/zabbix-jp/plugins にアクセスして、右上のダウンロードボタンをクリックしてダウンロードします。Windowsであれば「Download ZIP」というボタンになっていてクリックすると「plugins-master.zip」というファイル名でダウンロードできると思います。
- /tmp/ などの任意のディレクトリにファイルを解凍します。
# cd /tmp/ # unzip plugins-master.zip
# mkdir /var/lib/zabbix
# cp -r plugins-master/notification/sendmessage-php/ /var/lib/zabbix/ # cd /var/lib/zabbix/
# chmod 755 /var/lib/zabbix/sendmessage_smtp_php/sendmessage_smtp_php.sh
設定項目 | 設定値 |
---|---|
$MAIL_FROM = "zabbix@localhost"; | 「zabbix@localhost」の箇所に送信元にするメールアドレスを記述 |
$MAIL_FROMNAME = "Zabbix 障害通知"; | 「Zabbix 障害通知」の箇所に送信元の表示名を記述 |
$MAIL_SMTP_HOST = 'smtp.example.com:25'; | 「smtp.example.com:25」の箇所に「SMTPサーバ:ポート」の形式で記述 |
$MAIL_SMTP_USER = 'XXXXXXXX'; | XXXXXXXX の箇所にユーザ名を記述 |
$MAIL_SMTP_PASS = 'XXXXXXXX'; | XXXXXXXX の箇所にパスワードを記述 |
カスタムスクリプトの登録
設置した sendmessage_smtp_php/sendmessage_smtp_php.sh をカスタムスクリプトに登録します
- [管理] → [メディアタイプ]をクリックします
- 次のように設定し、「保存」をクリックします
設定項目 | 設定値 |
---|---|
Description | sendmessage_smtp_php.sh |
Type | Script |
Script name | sendmessage_smtp_php/sendmessage_smtp_php.sh |
ユーザのメディア設定に登録
先に登録したカスタムスクリプトをユーザのMediaに登録します。
- [管理] → [ユーザ]をクリックします
- リストからカスタムスクリプトを登録したいユーザをクリックします
- Media設定の「追加」をクリックします
- 次のように設定し、「追加」をクリックします
- 「保存」をクリックします
設定項目 | 設定値 |
---|---|
Type | sendmessage_smtp_php.sh |
Send to | 送信先メールアドレス |
Zabbixサーバ上のSMTPサーバを利用する場合
スクリプトファイルのダウンロードと設置
- ダウンロードのページから、php/perl版のいずれかのsendmessage_XXX.sh.gzをダウンロードします
- ZABBIXサーバにスクリプトを置くディレクトリを作成します。
# mkdir /var/lib/zabbix
# gzip -d /var/lib/zabbix/sendmessage_XXX.sh.gz
# chmod 755 /var/lib/zabbix/sendmessage_XXX.sh
カスタムスクリプトの登録
設置したsendmessage_XXX.shをカスタムスクリプトに登録します
- [Administration] → [Media Types]をクリックします
- 右上の「Create Media Type」をクリックします
- 次のように設定し、「Save」をクリックします
設定項目 | 設定値 |
---|---|
Description | sendmessage_XXX.sh |
Type | Script |
Script name | sendmessage_XXX.sh |
ユーザのメディア設定に登録
先に登録したカスタムスクリプトをユーザのMediaに登録します。
- [Administration] → [Users]をクリックします
- リストからカスタムスクリプトを登録したいユーザをクリックします
- Media設定の「Add」をクリックします
- 次のように設定し、「Add」をクリックします
- 「Save」をクリックします
設定項目 | 設定値 |
---|---|
Type | sendmessage_XXX.sh |
Send to | 送信先メールアドレス |