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)対策