サーバを運用していくと/var/log に様々なログが溜まってくる。 ログを見ることで、メール配信の状況(メールが送れているか、遅延していないか)や誰がいつサーバにログインしたかを知ることができる。 また、さくらVPSなどでサーバを公開すると、外部からSSH接続やメールアカウントなどに攻撃を仕掛けられることが多いのでログを監視して対策を練ることもある。 しかし、毎日ログを手動で監視することは面倒だし、時間が無かったりする。 そこで、logwatchをインストールすることで、毎日定期的にログをまとめてメールで送ってくれるので便利。
- logwatchのインストール yum で一発でインストールできる。
- ログレポートの確認
- メールアドレスの設定 上記の出力結果をメールで送信することができる。 事前にsendmailやpostfix等でメール送信の設定をしておく必要がある。
- cronの設定 毎日定期的にメール送信するためには、cronで設定する。 ただ、さくらVPSの場合はデフォルトで毎朝4時30分ぐらいにメール送信されるように設定されている。
$ sudo yum -y install logwatch
$ sudo logwatch --print
実行すると、以下のように出力される。
################### Logwatch 7.3.6 (05/19/07) #################### Processing Initiated: Sun Mar 3 04:20:14 2013 Date Range Processed: yesterday ( 2013-Mar-02 ) Period is day. Detail Level of Output: 0 Type of Output: unformatted Logfiles for Host: xxxxxx.sakura.ne.jp ################################################################## --------------------- Postfix Begin ------------------------ 2.307K Bytes accepted 2,362 2.307K Bytes delivered 2,362 ======== ================================================ 1 Accepted 33.33% 2 Rejected 66.67% -------- ------------------------------------------------ 3 Total 100.00% ======== ================================================ 2 Reject relay denied 100.00% -------- ------------------------------------------------ 2 Total Rejects 100.00% ======== ================================================ 2 Connections made 2 Connections lost 2 Disconnections 1 Removed from queue 1 Sent via SMTP 1 Connection failure (outbound) ---------------------- Postfix End ------------------------- --------------------- Disk Space Begin ------------------------ Filesystem Size Used Avail Use% Mounted on /dev/vda3 97G 12G 81G 13% / /dev/vda1 251M 53M 186M 23% /boot ---------------------- Disk Space End ------------------------- ###################### Logwatch End #########################logwatchは実行された前日のログを見やすい形にまとめてくれる。
$ sudo vim /etc/logwatch/conf/logwatch.conf
# 受信したいメールアドレスを設定する
MailTo = hogehoge@fuga.com
送信確認
$ sudo logwatch
以下の様なエラーが出た場合は、logwatch.confにsendmailの設定を追記する。
Can't exec "sendmail": No such file or directory at /usr/sbin/logwatch line 1018,/etc/logwatch/conf/logwatch.confline 1. Can't execute sendmail -t: No such file or directory
# メール送信コマンドを設定
mailer = "/usr/sbin/sendmail -t"