Logwatch
Logwatch は強力かつ多目的なログパーサー・アナライザーです。Logwatch はサーバーのあらゆる活動の統一的なレポートを作成して、コマンドラインやメールで閲覧することができます。
インストール
Logwatch は pacman で community リポジトリからインストールできます:
# pacman -S logwatch
logwatch バイナリとスクリプト、設定ファイルに加えて、pacman のパッケージには cron ジョブも含まれており、/etc/cron.daily/0logwatch
にインストールされます。logwatch スクリプトは perl を使用するので、perl は logwatch パッケージの依存パッケージです。
設定
Logwatch の設定は分散されています。複数の場所に設定を指定することができ、下の方のファイルの設定が優先されます:
- /usr/share/logwatch/default.conf/*
- /etc/logwatch/conf/dist.conf/*
- /etc/logwatch/conf/*
- スクリプトやコマンドラインの引数
Logwatch が実行されると上記の全てのファイルが読み込まれます。
上記のディレクトリの中で、設定には複数の領域があります。logwatch.conf
ファイルは最も高水準の設定を記述するところで、レポートの送信先やフォーマットなどを設定することができます/usr/share/logwatch/default.conf/logwatch.conf
の設定ファイルには全てのデフォルト設定とコメントが含まれています。デフォルト設定はそのままにして、/etc/logwatch/conf/logwatch.conf
で設定変数を再定義することを推奨します。
logfiles/
ディレクトリの中にある設定ファイルは特定のログファイルを指定しています。デフォルトで、Linux システムで一般的に使われているログファイルは既に対応しています。ログファイルの設定がない特殊なアプリケーションを使っている場合は、default.conf/logfiles/
ディレクトリから既存の設定をコピーして、そのアプリケーション用にカスタマイズしてください。
services/
フォルダには同じような設定の定義が含まれていますが、logwatch によって報告される様々なサービスを定義しています。複数のサービスが同一のログにレポートを出力することはよくあるので必要になります (例: messages, dmesg, boot など)。詳しくは、デフォルトの services/
の設定ファイルを確認してください。
logwatch のメッセージをメールで受け取りたい場合は、Postfix など sendmail フロントエンドを提供するパッケージをインストールする必要があります。
パッケージにはドキュメントが付属しており設定に関する詳細が載っています。/usr/share/logwatch/HOWTO-Customize-LogWatch
を見て下さい。
Cron ジョブ
デフォルトでは cron.daily
に cron ジョブもインストールされます。このジョブは上述の全ての設定ファイルの設定を使います。スクリプトを別の cron フォルダに移動することでレポートの頻度を変更したり、crontab ファイルにカスタム cron ジョブを設定することができます。
systemd サポート
Logwatch はログファイルを読み込みますが systemd journal を直接扱うことはできません。そのため、syslog-ng などのロガーを使って journal の出力を外部のログファイルに複製する必要があります (例: /var/log
)。systemd journal に対応する パッチ が開発中です。もしくは、このブログ記事 にある Python スクリプトのように、journal を直接読み込んでメールを送信することで、logwatch と同じような機能を実装するカスタムスクリプトを作ることもできます。