mdadmを使うためのPostfixの簡単設定

LinuxソフトウェアRAIDを実現するmdadmは以前から使っていた。本格的にビジネスでRAIDを構成するのであればRAIDカードなどのハードウェアを使うだろうからmdadmは個人が安価にRAIDマシンを実現するのに使われることが多いのではないだろうか。私もその一人だが。

一方でmdadmを次のようにインストールするとメールシステムのパッケージとしてpostfixがセットでインストールされる。

# apt-get install mdadm

ところが個人でコジンマリと使うにはPostfixは大げさになってしまう。自宅に本格的なメールサーバでも立てて無い限り、返って設定が大変だと思う。Postfixの豊富な機能は使わずに利用しているプロバイダへ中継する機能だけを使いたい。

現在、mdadmは使っているのだが、当初の設定時に時間が無く、メールの設定は省略してしまった。(mdadmをインストール後、postfixだけをアンインストールしてもRAIDの機能そのものには影響がない。)ここに来てRAIDシステムをリモートで設置する可能性が出てきたため、遠隔での健康診断のためにメールの設定を改めてトライしてみた。

Postfixによる中継の設定は利用しているプロバイダで微妙に違ってくるので、ここでは誰でも無料で利用できるGmailSMTPサーバを利用した設定をメモっておく。

Postfixのインストール

Postfixのインストールとしってもmdadmをインストールすると自動的にインストールされ、“Postfix Configuration”という初期設定の画面が出てくる。ここでは“Internet with smarthost”を選んでおく。

次に、このマシンのホスト名をドメイン名ともに聞かれる。例として“raid.localnet”としておく。(“localnet”はこのマシンが動いているLANのドメイン名(参照:http://d.hatena.ne.jp/adsaria/20090129)。

更に“SMTP relay host”を聞かれるので、ここではGmailのSNTPサーバの名前(“[smtp.gmail.com]:587”)を指定する。以上でインストールは終わり。

Postfixの設定

インストールの初期設定だけではGmailを使えないのでいくつか設定をしておく。(その前にGmailのアカウントを取得しておく必要がある。ここでは“raid-report@gmail.com”というアカウントと開いたと仮定して話を進める。)

まずは、/etc/postfix/main.cf の設定。コマンドを実行する。

# postconf -e relay_transport=smtp
# postconf -e smtp_use_tls=yes
# postconf -e smtp_sasl_auth_enable=yes
# postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl/sasl_passwd
# postconf -e smtp_sasl_security_options=noanonymous
# postconf -e smtp_sasl_mechanism_filter=plain

次にGmailのアカウント名とパスワードを記述した“/etc/postfix/sasl/sasl_passwd”を作成する。

# touch /etc/postfix/sasl/sasl_passwd
# chmod 600 /etc/postfix/sasl/sasl_passwd

内容は以下の通りとなる。

[smtp.gmail.com]:587 raid-report@gmail.com:password

raid-report@gmail.com”はGmailのアカウント、“password”はそのパスワード。次にこのファイルからデータベースを作成する。

# postmap /etc/postfix/sasl/sasl_passwd

最後にPostfixデーモンを再起動して終わり。

# /etc/init.d/postfix restart

Postfixの動作確認

簡単な方法は自分にメールを送ってみることだろう。そのためにMUA(いわゆるメイラ)をインストールする。

# apt-get install heirloom-mailx

それでは自分自身にメールを送ってみよう。

# mail adsaria@sample.jp
Subject: Test Mail
This is a test mail.
.

自分にメールが届けばOK。

mdadmのメール設定

ここでは、mdadmでRAIDを構成する方法は記述しない。既にmdadmでRAIDが動作してるものとする。

/etc/mdadm/mdadm.conf の“MAILADDR”の行をメールを飛ばしたいアドレスに変更する。

MAILADDR adsaria@sample.jp

mdadmを再起動する。

# /etc/init.d/mdadm reload

mdadmのメールの確認

次のコマンドで目的のアドレスへメールが送られるかを確認する。

# mdadm --monitor --scan --oneshot --test

これでモニタモードの結果がメールで送られてくればOK。

参考:http://d.hatena.ne.jp/aked0n/20090916/1253113199
参考:http://d.hatena.ne.jp/komamitsu/20090604/1244129409

運用上のコメント

上記の例では、設定の過程を分かり易くするため直接、遠隔監視する管理者のアドレスを書いたが、これではローカルには監視メールが残らないのでトラブル時に現場でログを確認できない。また、管理者グループを設定してメールアドレスの変更にも柔軟に対応できるようにする方がいい。

そこで、まず、/etc/aliasesに管理者のエイリアスを作る。

admin: root, adsaria

(aliases変更後は“postalias /etc/aliases”を実行する。)

次に各管理者ごとに自分が普段使っているメールに転送するように設定する。“~/.forward”を例えば次の様に設定する。

\adsaria
adsaria@sample.jp

これでメールはローカルにも残り、プロバイダのメールとしても読める。

最後に、管理者グループに対して監視メールを送るように /etc/mdadm/mdadm.confを設定しておく。

MAILADDR admin

今回はmdadmのメール通知機能を使うためにPostfixを簡単設定したが、この設定をしておけばmdadm以外のシステムでもメール通知が利用できるので便利だろう。