8.ログ管理


8.1 ログ管理

8.1.1 ログ
Linux(UNIX)では、システムの各種情報をログとしてファイルに出力します。
管理者はログを確認することにより、システムの異常や不正アクセスなどを速やかに発見することが可能になります。
ログは、故障等発生時の原因究明に関し非常に重要な手がかりになります。
また、異常を検出するためには、日頃からシステムを監視して正常時の値を把握しておく必要があります。
これのためにもログは重要な役割を担っています。
8.1.2 ログファイル 
Linux(UNIX)でのログは通常、/var/log ディレクトリ以下に出力されます。
ログの採取を行うデーモンは syslogd であり、 /etc/syslog.conf ファイルにログ採取のルールが記述されています。
主なログは、/var/log/messages ファイルに採取されます。/var/log ディレクトリにある他のファイルは、目的別/サーバー別のログファイルでです。
でも、あれ? 上のでは /var/log/messages ではなく /usr/adm/messages になっているよ。
試しに /var/log を見てみました。

  ↓
ああ、ありましたね。じゃー /etc/syslog.conf にある /usr/adm との関係は?
なるほど、こういう関係ね!
  ↓
    
ログファイルは、システムの状態を逐一記録していくものであるため、ファイルサイズは非常に大きくなります。
このため、tail や grep などを利用して、自分の必要とする情報を抽出した方がよいでしょう。
vi などで開けるのはやめましょう。
また、ログ解析ツールなどを活用してもよいでしょう。
次のは、/var/log/messages ファイルからFailed というキーワードで検索をした結果です。
これによって、ログインや su コマンドで失敗した情報のみを抽出することができます。
また、システムの不具合原因の目安がついた場合、 tail -f コマンドを利用することも有効です。
これは結構便利です。私はWebサーバーへのアクセスをこれでほぼリアルタイムで監視したりしてます。
tail のディフォルトは最後の10行を報告します。
8.1.3 ログあふれの防止
一般的にログは大量に発生するためログファイルのサイズは膨大なものとなり、ディスクスペースを圧迫しかねません。
Linux(UNIX)では、 loglotate コマンドを cron から実行させることにより、ログを定期的にローテーションしてログあふれを防止しています。
私のPlamo Linux 3.3 (98) には /etc/crontab や run-parts コマンド、 /etc/cron.daily ディレクトリがありませんでしたが、一般には次のような記述があります。

(例)  02 4 * * * root run-parts /etc/cron.daily
          ↓
ログローテーションは、/etc/cron.daily/loglotate スクリプトで行われています。
/etc/cron.dairy/loglotate スクリプトは次のようになっています。
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf

# 設定ファイル(/etc/logrotate.conf)の設定にしたがってローテーションを行う。
設定ファイル /etc/logrotate.conf の内容は次のようになっています。

Prev Top Next
バックアップ 目次 システムの運用管理(プロセス管理、メモリ・ディスク管理)

サイトトップへ