13 June 2009

Openfiler エラー発生時のメール通知を使う (sendmailのESMTPリレー設定)

Openfilerで、RAIDのデグレードなど致命的エラーが発生した場合、メールでSEに通知するように出来る。しかし、標準ではESMTPなど認証を用いる外部のメールサーバを用いることは出来ない。

sendmail-cfスクリプトの強制インストール

/use/shareディレクトリに、sendmail-cfがインストールされていないため、他のLinuxマシンよりディレクトリごとコピーする (私はCentOS 5.2のものを丸ごとコピーして利用)。
あるいは、sendmail-cfがインストールされている他のマシンで、sendmail.mcの変換作業を行うという手段もある… お好きなほうをどうぞ w

sendmail-cf.centos5.tarのダウンロード
(今回利用したものを欲しい人はどうぞ。保証など一切無いですけど…。/usr/share/sendmail-cf/ ディレクトリで解凍する)

sendmailの設定

外部のSMTPサーバ(ユーザ認証あり)を用いるように、sendmail.mcを修正。(次の例でmail.example.com は自分の利用するメールサーバに合わせること)

/etc/mail/sendmail.mc の修正行、追加行

define(`SMART_HOST',`esmtp:[mail.example.com]')
define(`ESMTP_MAILER_ARGS',`TCP $h 587') ← この行は新規追加
FEATURE(authinfo, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`authinfo') ← この行は新規追加

dnl EXPOSED_USER(`root')dnl ← この行は無効化
MASQUERADE_AS(`mail.example.com')dnl
FEATURE(masquerade_envelope)dnl

上記の修正を済ませたら、次のように変換を行い、sendmail.cfを作成する。


m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

次に、ESMTP認証ファイルを作成する。

次の例で、日本語のところは、適宜、メールサーバへのログオンアカウントに合わせて設定する。認証方式はLOGINという文字列に置き換える。(CRAM-MD5をサポートしているなら、その文字列でもよい)


echo AuthInfo:SMTPサーバー名 \"U:ユーザー名\" \"P:パスワード\" \"M:認証方式\" > /etc/mail/authinfo

makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo

ここまで済めば、sendmailを再起動(/etc/rc.d/init.d/sendmail restart)して、mailコマンドで外部アドレスへメールが送信できるか確認を行う。

異常時メール送信の設定

20090613-of15.png
"System"タブの、"Notification"メニューで設定する。

Mail Server (Optional) は空欄のままにしておく。(sendmailが自動的にリレーするため)

異常時メールのサンプル

RAID-1がデグレードしたときのメールの例


Sat 13 Jun 2009 07:42:20 PM JST
localhost.localdomain

This email has been automatically generated by
Openfiler to inform you that a DegradedArray event has been
detected on the RAID array /dev/md2.

Full details are listed below
_____________________________________________________

/dev/md2:
Version : 00.90.03
Creation Time : Sat Jun 13 09:31:39 2009
Raid Level : raid1
Array Size : 144512 (141.15 MiB 147.98 MB)
Used Dev Size : 144512 (141.15 MiB 147.98 MB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 2
Persistence : Superblock is persistent

Update Time : Sat Jun 13 19:42:01 2009
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

UUID : b0d3d94b:44ac3d03:8ce88a09:7f68adb5
Events : 0.32

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 0 0 1 removed

参考にしたホームページ
メールサーバー構築(sendmail+Dovecot)
OP25B(Outbound Port 25 Blocking)対策