2012-09-25

logwatch の結果を複数の gmail アドレスに送る

1. gmail に送るための設定

ほとんど全て
http://linux.matchy.net/archives/35
http://tomslabo.exblog.jp/12665450
と同じことをしただけ。先人に感謝。以下、自分用に変えたところだけメモ。

main.cf について

計算機が複数台あるので、main.cf はコピーして使いまわした。いったん Windows のエクスプローラで自分のユーザ (maz) のホームディレクトリにでもコピーしておいて、

$ su -
# mv /home/maz/main.cf /etc/postfix/main.cf
mv: overwrite `/etc/postfix/main.cf'? y

としてから、いちおう、

# vim /etc/postfix/main.cf

して、myhostname だけは計算機ごとに変えた。ただ、上記エントリにもあるように gmail に送られてくるメールは全部自分の username@gmail.com になってしまうので、あんまり意味ないかも…


sasl_passwd について

# vim /etc/postfix/sasl_passwd

の後の chown と chmod は省略。そのかわり

# postmap /etc/postfix/sasl_passwd

でハッシュ化したらすぐに

# rm /etc/postfix/sasl_passwd

で削除。これは自分以外にも共同で root やってる人間がいるので、gmail のパスを知られないために必須。sasl_passwd.db さえあれば問題ないっぽい。

その他

別にこのケースに限らないし、細かいけど、


# /etc/init.d/postfix status

のかわりに


# service postfix status

でいい。他のサービスに対しても同様。参考: http://itpro.nikkeibp.co.jp/article/COLUMN/20070605/273739/


2. なんかうまくいかない


以上の結果、うまくいくはずなんだが、なぜか root 宛のメールが Delivery Error とかなる(参考にしたエントリでは「sent mailにしか入らない」となっているのに自分の場合普通に inbox にも来ているから、なにか設定がおかしいのかも)。ので、下記のように、root には送らずに gmail へ送るように変更してみた。この場合、いったん自分の gmail に送って、そこ経由で他のメールアドレスに送られる、のだと思う。

まず、/etc/aliases での root: username@gmail.com へのコメントアウト・書き換えはしない。それから以下のように logwatch を設定した。


3. logwatch の設定


インストール


もし logwatch インストールされていない場合、

# yum -y install logwatch

でインストール。さらに、cron で実行されるようにシンボリックリンクを作っておく:

# ln -s -i /usr/share/logwatch/scripts/logwatch.pl /etc/cron.daily/0logwatch

これでいいのか若干自信がないが、たぶんいいはず。

設定

設定は、ローカルなものは /etc/logwatch/conf/logwatch.conf に追記する形でもいいようだが、面倒なので、デフォルトの方を直接編集する:

# vim /usr/share/logwatch/default.conf/logwatch.conf

ここで、MailTo = root となっているところの root を消して、username1@gmail.com username2@gmail.com username3@gmail.com などとする。コメントに「複数追加する場合はスペースを開けろ」とある。実際やってみたら送れた。ついでに、Detail = Low もなんとなく Med にしてみた。

root 宛に送れないってのがなんかちぐはぐだけど、動いてるっぽいからひとまずこれで。

CentOS 向けではないが、
http://vine-linux.ddo.jp/linux/app/logwatch.php
も参考になった。


[2012-10-18追記]
毎日来られるとちょっと…という場合は週に一回だけということもできるようだ。Logwatch の通知を weekly にする のとおりにやってみた。自分の場合一点だけ違いがあり、logwatch の設定ファイルは、上の方にもあるように、
/etc/logwatch/conf/logwatch.conf
ではなく、
/usr/share/logwatch/default.conf/logwatch.conf
にある。要はこのファイルの Range を daily でなく "between -7 days and -1 days" とすることで、一週間分のログをまとめる。かつ、cron.daily にあった 0logwatch という symbolic link を cron.weekly に移動して週に一度の配信とする、と。yum update で問題が起きるかはまだ試していないので不明。

4. うまくいった

主に書き間違いのせいだったかもしれない…。あとで書く。

No comments: