内容が古い可能性がありますのでご注意ください。
ここでは各サービスに関するログファイルについてチェックしていきます。
また、ログ管理に便利なツール「LogWatch」を併せて導入します。
【2011.02.04追記】ログファイルに関する読み書き権限について修正および追記いたしました。
ログファイルについて
サーバーのログファイルは/var/log/ディレクトリ以下に集約されています。
主なログファイルの種類は以下の通りです。
- /var/log/message ←内部動作全般のログが記録されます
- /var/log/syslog ←認証関連のログ以外全てが記録されます
- /var/log/daemon.log ←各種サーバーのログが記録されます
- /var/log/auth.log ←認証関連のログが記録されます
- /var/log/kern.log ←カーネルメッセージが記録されます
- /var/log/user.log ←一般的なユーザーレベルのメッセージが記録されます
- /var/log/aptitude ←aptitude関連のログが記録されます
- /var/log/mail.log ←電子メールに関するログが記録されます
- /var/log/faillog ←ログインに失敗した時の情報が記録されます(※)
- /var/log/lastlog ←それぞれのユーザー毎の最終ログイン情報が記録されます(※)
※faillogおよびlastlogは専用のコマンドでしかログを見ることが出来ません。
また、今までの過程で作成したサービスの一部は独自にログを作成するものがあります。
- /var/log/vsftpd.log ←vsftpd(FTPサーバー)関連のログが記録されます
※設定を行っている場合のみ - /var/log/ip.log ←ダイナミックDNSの設定ページにてスクリプトを導入している場合にのみ記録されます
- /var/log/clamav/clamav.log ←Clam AntiVirusのチェックが記録されます
- /var/log/clamav/freshclam.log ←Clam AntiVirusのウィルス定義ファイルの更新記録が保存されます
- /var/log/apache2/access.log ←Apacheのアクセスログ記録ファイルです
- /var/log/apache2/error.log ←Apacheのエラーログ記録ファイルです
- /var/log/ntpstats/loopstats ←自宅サーバーの時刻同期の記録が格納されます
- /var/log/ntpstats/peerstats ←時刻の同期先のサーバーとの記録が格納されます
一部のログを除きほとんどテキストファイルですので、色んなコマンドで確認出来ます。
※ログファイルのほとんどは一般ユーザーにも読み込み権限がありますので、sudoコマンド無しで確認出来ます。
【2011.02.04修正】ログファイルのほとんどはオーナーにしか読み書き権限がありませんので、一般ユーザーは確認することが出来ませんorz 失礼致しました。
[html]tail -f /var/log/syslog
#ファイルの末尾を常に監視続け、変化があるとリアルタイムで反映されます。
サーバーエラーなどを確認する時に便利です。
cat -n /var/log/syslog | head -100 | tail -20
#syslogの81行目から100行目までを行番号付きで表示します。
grep -n “error” /var/log/syslog | tail -20
#syslog内にerrorという文字が含まれている行に行番号を付け、最後の20行を表示します。
sudo faillog
#/var/log/faillogの内容を表示します
sudo lastlog
#/var/log/lastlogの内容を表示します[/html]
これらログファイルの保存方針は/etc/syslog.confにて設定されています。
ログの保存期間
デフォルトでは/var/log/内のログファイルは1週間に一度バックアップを取られ、4週後に最も古いバックアップが自動で削除されます。
ログのローテーション設定は/etc/logrotate.conf(基本設定)および/etc/logrotate.d/ディレクトリ内の設定ファイル(個別設定)に記載されています。
/etc/logrotate.d/以下のファイルは/etc/logrotate.confにインクルードされて基本設定を上書きします。
例えばApacheのログはデフォルトでは52週保存されることになっています。
LogWatchの導入
ログファイルには上記で記載したような様々な情報があらゆるファイルに記録されるため、その中から目的の情報を取り出すのは容易ではありません。
そこで、ログの監視・解析ツールを導入します。
ここでは「LogWatch」パッケージを導入します。
[html]sudo aptitude update
sudo aptitude install logwatch[/html]
パッケージインストール後にcron.dailyにスクリプトが登録され、毎日6時25分に実行され、root宛にメールが届くようになります。
ubuntu server 8.04 for PPCにおけるデフォルトの設定ファイルは
- /usr/share/logwatch/default.conf/logwatch.conf(基本ファイル)
- /usr/share/logwatch/dist.conf/logwatch.conf(ubuntu server用ファイル)
です。最初にdefault.conf/logwatch.confが読み込まれ、その後dist.conf/logwatch.confが読み込まれます。
ここでもubuntu serverの管理方針が生きており、設定を変えたい場合は基本/usr/share/logwatch/dist.conf/logwatch.confファイルで行います。
基本はデフォルトのままでいいと思います。
[html]less /usr/share/logwatch/dist.conf/logwatch.conf
Detail = Med #←詳細度をMed(5)に変更(デフォルトはLow(0))
mailer = “/usr/sbin/sendmail -t” #←sendmailのパスを修正
TmpDir = /tmp #←テンポラリディレクトリのパスを修正
MailFrom = root #←メールのFromを修正[/html]
上記ファイルに記載されているのはこの4行だけです。
また、LogWatchでは/usr/share/logwatch/scripts/services/ディレクトリ以下にあるスクリプトにてログファイルが解析されます。デフォルトでは上記ディレクトリ内全てのスクリプトが実行されます。
LogWatchより届くメール内容
今までのサーバーを構築していた場合、大体下記のようなメールがroot宛に届きます。
※内容はかなり省略しております。一例としてご覧下さい。
[html]▼Clam AntiVirusのfreshclamのログファイル内容
——————— clam-update Begin ————————
The ClamAV update process was started 24 time(s)
※アップデートの回数が表示されます(毎時1回行っているので計24回)
Last ClamAV update process started at Xxx Xxx xx xx:xx:xx xxxx
※最後にアップデートを行った日時が表示されます
Last Status:
~省略~
———————- clam-update End ————————-
▼cronのログファイル内容
——————— Cron Begin ————————
Commands Run:
~それぞれのcronの実行内容と実行回数が表示されます~
———————- Cron End ————————-
▼Apache2のログ内容
——————— httpd Begin ————————
~データの転送量と読み込み回数およびデータの種類別のそれが表示されます~
Requests with error response codes
~エラーコードとエラー内容が表示されます~
———————- httpd End ————————-
▼iptablesのログ内容
————— iptables firewall Begin ——————
Listed by source hosts:
~iptablesのログ内容が表示されます~
—————- iptables firewall End ——————-
▼BINDのログ内容
——————— Named Begin ————————
Unexpected DNS RCODEs:
~エラーの種類と回数が表示されます~
Incorrect response format:
~DNSのエラー内容が表示されます~
———————- Named End ————————-
▼ログイン内容
——————— pam_unix Begin ————————
~どのユーザーがどれだけログインしたか表示されます~
———————- pam_unix End ————————-
▼OpenSSH Serverのログ内容
——————— SSHD Begin ————————
~SSH経由でのログ内容が表示されます~
———————- SSHD End ————————-
▼vsftpdのログ内容
————— vsftpd-messages Begin ——————
User FTP Logins:
~FTPのログイン情報が表示されます~
Outgoing FTP Files:
~やり取りしたデータ内容が表示されます~
TOTAL KB OUT:
~やり取りしたデータの総量が表示されます~
—————- vsftpd-messages End ——————-
▼サーバーのディスク容量(一番最後にこれが表示されます)
——————— Disk Space Begin ————————
Filesystem Size Used Avail Use% Mounted on
/dev/xxx xxG xxG xxG xx% xxxxx
※ファイルシステムの総量、使用済み容量、利用可能容量、使用率、マウントポジションが表示されます
———————- Disk Space End ————————-[/html]
LogWatchから届くメールですが、まだメールサーバーの設定を行っていないのでクライアントPCのメールソフト等で受信することが出来ません。メールサーバーを構築するまではターミナルエミュレーター上にて確認します。
[html]sudo mail
root宛てのメールが一覧で表示されますので、読みたいメールの番号を入力します。終了するには「q」を入力します。[/html]
LogWatchの基本設定について
LogWatchの基本設定ファイルは/etc/logwatch/ディレクトリ以下と/usr/share/logwatch/以下にありますが、/etc/logwatch/ディレクトリには設定ファイルは無く、基本
- LogWatchの各セクションがどのようなログファイルを解析するかといった基本設定→
/usr/share/logwatch/default.conf/services/ディレクトリ以下 - 各ログファイルごとの基本設定→
/usr/share/logwatch/default.conf/logfiles/ディレクトリ以下
となります。
ubuntu serverの場合はこれらのファイルは基本いじらず、
- ログファイルの解析設定変更→
/usr/share/logwatch/dist.conf/services/ディレクトリ以下 - ログファイルの基本設定変更→
/usr/share/logwatch/dist.conf/logfiles/ディレクトリ以下
に追加で記述していきます。
初期状態でどのような設定が含まれるかは、詳しくは「hardy の all アーキテクチャ用 logwatch パッケージのファイル一覧」をご参照下さい。