ログ収集を自動化する - さくらのVPSを使ってみた

ログ

誰かがログインしたとか、yumで新しくパッケージをインストールしたとか、cronでの実行に失敗したなどの情報はログとしてファイルに記録されます。

一般的なログは/var/logディレクトリにファイルとして出力されるので見たことのない人は一度のぞいてみてください。

サーバーでおかしなことが起きていないかの確認は、基本的にはログを確認するということになります。しかし毎日サーバーにログインしていくつものログファイルの内容を確認するのは大変ですし、ファイルを見ていただければ分かりますが普通にサーバーを使っているだけでログに出力されるメッセージもたくさんあって、ログ出力されたことが必ずしも問題があるということにはなりません。

ログを要約する

ログファイルを直接見て問題を見つけるのは難しいので、ツールを使ってログを要約して全体の傾向をつかみ、問題がありそうだったらログを細かく調べるという運用にします。

ログを要約するツールの一つにLogwatchがあります。

Logwatchとは

さまざまなログを解析し、読みやすい形にレポーティングしてくれるツールです。設定をすればレポートを毎日メール送信することもできます。

Logwatchをインストールする

Logwatchはyumコマンドでインストールできます。

$ sudo yum -y install logwatch

レポートをメール送信する

Logwatchの設定は/etc/logwatch/conf/logwatch.confで行います。なお、デフォルトの設定が/usr/share/logwatch/default.conf/logwatch.confに記載されているので、どんな設定項目があるか知りたい方はそちらものぞいてみてください。

$ sudo vi /etc/logwatch/conf/logwatch.conf

MailToに送信先のメールアドレスを設定してください。

MailTo=送信先メールアドレス

動作確認する

設定が終わったら一日待てばメールでレポートが届くわけですが、正しく設定できているかどうかチェックしておきます。レポートの内容を確認するには次のコマンドを実行します。

$ sudo logwatch --print

メール送信の確認は次のコマンドです。

$ sudo logwatch --mailto 送信先メールアドレス

ファイアウォールの設定をするの設定例を参考にiptablesを設定していると、メール送信をブロックしてしまうのでメール送信用のポートを開けるようにしてください。すでにポートが開いていれば改めての設定は不要です。