VPSにログ監視ツールlogwatchをインストール
Linuxサーバのログを整形して管理者(root)に1日1回メール送信してくれるツールです。
メール送信なのでMTAが必要です。既に設定済の場合は読み飛ばしてください。
今回は個人的なサーバなので正直sSMTPで十分ですが、最近のLinuxならPostfixが標準だと思うのでそっちを使います。また、ドメインは信頼と実績のexample.comなので適時読み替えてください。外部からの受信、転送はしないのでDNSは触りません。
インストール
yumでサクッとインストール。
sudo yum install -y postfix logwatch
Postfixの設定
ローカルと外向きにメール送信できるように以下を編集します。メールボックスはMaildir形式。
/etc/postfix/main.cf
myhostname = mail.example.com // 自FQDN名
mydomain = example.com // 自ドメイン名
myorigin = $mydomain // 送信元ドメイン名
inet_interfaces = localhost // 待ち受けるネットワークインタフェース
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain // ローカルで受信するドメイン名
home_mailbox = Maildir/ // メールボックス形式
smtpd_banner = $myhostname ESMTP unknown // バージョン非表示
Maildir形式のメールボックスを使うので、新規ユーザ用にスケルトンを作っておく。既存ユーザのメールボックスを移行する場合はググればすぐ見つかります。
sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
sudo chmod -R 700 /etc/skel/Maildir/
メール送信できるか確認
echo "test message." | mail -s test <受信確認用の外部のメールアドレス>
echo "test message." | mail -s test <受信確認用のローカルユーザ>
外部のメールアドレスにメールが届くのと、ローカルユーザの$HOME/Maildir/newにメールが届いていることを確認します。
logwatchの設定
と言っても、今回はlogwatch自体は設定しません。ログレベルやアーカイブ有無など設定したい場合は/etc/logwatch/conf/logwatch.confを編集します。
設定するのはこっち。logwatchはデフォルトでroot宛てのメール転送先を設定します。
/etc/aliases
root: example@example.com
logwatchをインストールすると/etc/cron.daily/00logwatchも作られるので、ほっといても1日1回メール送信されます。が、コマンドでメール送信できるので確認しておきます。
logwatch --mailto root
とりあえずこれで簡単にログ監視できます。