Linuxでさまざまなログを効率よくチェックするなら「Logwatch」

Linuxでさまざまなログを効率よくチェックするなら「Logwatch」

Linuxマシンでは、システムや導入しているアプリケーションが日々ログを出力しています。Linuxマシンを安定して稼動させるためには、これらのログを日々確認して問題が起こっていないか確認することが重要ですが、ログファイルを一つ一つ確認するのはとても面倒です。

そこでここでは、Linux上で出力されるさまざまなログを効率よくチェックできるツール「Logwatch」を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4.1708

Logwatchとは

Logwatchは、各種ログファイルを分析し、分析結果を人間が見やすいレポートとして作成してくれるツールです。主な特徴は以下のとおりです。

  • デフォルトで毎日cronジョブとしてログファイルの分析結果が出力されます。
  • レポートは標準出力や電子メールで送信することができます。

Logwatchはログを定期的に確認するのには向いていますが、リアルタイムにログ監視する場合はログ監視ツールを別途導入することを奨めます。

Logwatchの使い方

Logwatchのインストール

CentOS 7では、Logwatchは標準リポジトリから簡単にインストールできます。

# yum -y install logwatch

Logwatchの設定

Logwatchの設定は、デフォルト設定が「/usr/share/logwatch/default.conf/logwatch.conf」に記述されており、このファイルを「/etc/logwatch/conf/logwatch.conf」にコピーしてから設定をカスタマイズするとよいでしょう。

# cp -p /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf
# vi /etc/logwatch/conf/logwatch.conf

主な設定項目は以下のとおりです。すべて既定値のままでも動作します。

Mailto

「MailTo」には、レポート送信先を指定でき、スペースで区切れば複数の宛先を設定することもできます。

MailTo = root

Detail

「Detail」には、レポートに記載される内容の詳細度を設定します。まずは既定値の「Low」でレポートを確認してみた後、設定を調整するのが良いと思います。

設定は「Low」「Med」「High」または数字で設定します。
「Low = 0」「Med = 5」「High = 10」

Detail = Hight

Output

レポートの出力先を指定します。「stdout:標準出力」「mail:電子メール」「file:ファイル」のいずれかを指定できます。

Output = stdout

Format

通知されるレポートのフォーマットを設定します。「text」「html」のいずれかを指定できます。

Format = text

Range

解析するログの時間範囲を設定します。「All」「Today」「Yesterday」のいずれかを指定でき、通常は既定値「Yesterday」のままで問題ないと思います。

Range = Yesterday

Logwatchの動作確認

設定を完了したら、以下のコマンドを実行し、レポートが標準出力に表示されればOKです。

# logwatch --output stdout

以下のコマンドを実行すれば、レポートをメール送信できます。

# logwatch --output mail

Logwatchが出力するレポート

レポートに記載される内容をざっくりと説明します。なお、マシンにインストールされているアプリケーションによって項目は違ってきますので、以下は一例としてご覧ください。

ヘッダー

ヘッダー部分には、logwatchの実行日時、分析したログの期間、レポートの詳細度などが記載されています。

Cron Begin ~ Cron End

Cronに関する情報が記載されており、どのプログラムがCronから何回実行されたかをチェックできます。

fail2ban-messages Begin ~ fail2ban End

fail2banに関する情報が記載されており、フィルターにマッチしたときのログや、BANしたログをチェックできます。

kernel Begin ~ kernel End

カーネルに関する情報が記載されており、サービスを再起動した履歴などをチェックできます。

nginx Begin ~ nginx End

nginxに関する情報が記載されており、不正アクセスと推測されるログの接続元IPアドレスや、エラー応答コードの履歴などをチェックできます。

pam_unix Begin ~pam_unix End

ユーザー認証に関する情報が記載されており、suした回数や認証に失敗した回数などをチェックできます。

Postfix Begin ~ Postfix End

Postfixに関する情報が記載されており、送信メール数・転送先ホスト名・接続失敗の履歴などをチェックできます。

SSHD Begin ~ SSHD End

SSHでの接続履歴に関する情報が記載されており、接続元IPアドレス(またはホスト名)やログインユーザー名、アクセス拒否した履歴などをチェックできます。

Disk Space Begin ~ Disk Space End

サーバーのパーティションごとの使用状況をチェックできます。

あとがき

レポートを毎日確認するのは大変ですが、いつもと内容が大きく違っていないかだけでも確認することで、問題の早期発見につながると思います。