システムは様々なメッセージを出力しています。例えば、システムが認識したハードウェア情報、ユーザーのログイン情報、サーバープログラムの起動や停止に関する情報などがあります。システムが出力したこれらのメッセージのほとんどは、/var/log/ ディレクトリにあるログファイルに記録されていきます。/var/log/ ディレクトリに存在する主なログファイルを以下に示します。
表 28-1. /var/log/ ディレクトリのログファイル
| ログファイル名 | 概要 |
|---|---|
| /var/log/messages | システムに関する一般的なログ |
| /var/log/cron | cron の処理結果に関するログ |
| /var/log/maillog | メールサービスに関するログ |
| /var/log/secure | セキュリティに関するログ |
| /var/log/boot.log | システムの起動に関するログ |
| /var/log/XFree86.0.log | X Window System のログ |
| /var/log/cups/access_log、/var/log/cups/error_log、/var/log/cups/page_log | プリントサーバー cups のログ |
| /var/log/http/access_log、/var/log/http/error_log | Web サーバー apache のログ |
| /var/log/samba/log.nmbd、/var/log/samba/log.smbd | ファイル共有サーバー samba のログ |
| /var/log/squid/access.log、/var/log/squid/cache.log、/var/log/squid/store.log | プロキシサーバー squid のログ |
これらのログは、カーネルや各サーバープログラムから出力されますが、多くのプログラムはログの出力にシスログを利用しています。シスログは、syslog ライブラリと syslogd デーモンから構成され、シスログを利用しているプログラムは、syslogd ライブラリを使用してシスログメッセージを出力します。そして、出力されたシスログメッセージは syslogd デーモンが受け取り、syslogd の設定ファイル(/etc/syslog.conf)に記述に従い、ログファイル等へ記録されます。
![]() | すべてのプログラムが syslogd を利用しているわけではありません。Apache、Samba、Squid のように独自の仕組みでログを出力しているプログラムも存在します。システム管理者は、各種プログラムがどのような仕組みでログを出力しているのかを確認しておかなければなりません。 |
シスログを利用しているプログラムは大きく以下の書式でログを出力します。
date hostname information |
以下は、/var/log/messages の一部です。
Jul 20 16:58:03 turbolinux su: (to root) taro on /dev/pts/0 Jul 20 16:58:03 turbolinux su(pam_unix)[917]: session opened for user root by taro(uid =500) |
このログは、一般ユーザー taro が su コマンドを実行し、認証に成功したときのものです。ログが出力された日時、ホスト名(turbolinux)に続き、メッセージの内容が出力されています。逆に認証に失敗したときは、以下のようなログが出力されます。
Jul 20 16:59:52 turbolinux su(pam_unix)[941]: authentication failure; logname=taro uid =500 euid=0 tty= ruser=taro rhost= user=root Jul 20 16:59:54 turbolinux su: FAILED SU (to root) taro on /dev/pts/0 |
FAILED の記述から認証に失敗したことが分かります。information に出力される内容は、プログラムにより異なりますが、シスログを参照することにより、どのプログラムで問題が発生したのかを確認することができます。このように、本来であれば出力されることのない失敗したログを確認できることにシスログの意味があります。日常的にログを監視し、システムが正常に稼働しているときのログを把握しておけば、不正なログが出力されたときに、システム管理者は、システムに何かが起こっていることを知ることができます。また、システムに異常が発生したときの原因解決に役立てることができます。ときには、クラッキングの予兆や痕跡を探る手がかりとなることもあります。このように、記録されたログを収集して監視することは、システム管理者の重要な業務の 1 つです。