|
Logデーターを分析しよう  |
| 外部からサーバーにアクセスした場合、各サービスによってそれぞれログデーターが残せるようになっています。ログ管理の内容には、日々蓄積されるデーターがHD内で肥大化しないように監視しファイルを圧縮したり、削除することや、各サービスが正常に動作しているのかをチェックしたり、不正アクセスが無いかや、ネットワークトラフィックは十分かなどをチェックすることです。それらの維持管理が重要になります。それでは、今回外部公開をしたサービス、(webサービス、ftpサービス、メールサービス)についてlessonしたいと思います。 |
webサービスのlogについて  |
apache2.0におけるログファイル(v1.3でもほぼ同じ)
apacheには、ErrorLogとCustomLogの2種類あります。
ErrorLogは、
ErrorLog logs/error_log
で指定されていますので、ほかのディレクトリーへ変えたい場合は、
ErrorLog /home/mydata/logs/error_log
というように書き換えればよいのです。
また、エラーログには、エラーメッセージの重要度に応じたレベル設定があります。
デフォルトでは、下記の設定になっています。
LogLevel warn
warnは、注意が必要な状態になった場合のメッセージが出力されます。
その他のレベルは、技術書等を参考にしてください。
CustomLogには、
CustomLog logs/access_log common
と
CustomLog logs/referer_log referer
と
CustomLog logs/agent_log agent
がありさらに、
CustomLog logs/access_log combined
があります。
デフォルトの設定では、CustomLog logs/access_log commonが有効になっています。
refererログとは、自分のサイトへ「どこから来たのか」という情報が記録されます。
デフォルトでは無効になっています。
agentログとは、どのようなwebブラウザでアクセスしてきたのかが記録されます。
デフォルトでは無効になっています。
最後にcombinedログとは、上記の、common、referer、agentを組み合わせた情報が記録されます。デフォルトでは無効になっています。
それらのフォーマットは、下記のディレクティブによって指定されています。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
デフォルトでは、/usr/local/apache2/logsにaccess_logとerror_logが出力されます。
この状態ですと、このファイルが次第に肥大化してディスクを圧迫してしまします。
そこで、ログローテーションを行い、複数のファイルに分割する仕組みがあります。
以下の設定は、1日単位で30日分のログを保存したい場合の設定です。
分割されたデーターは、access_log.1、access_log.2と増えていきます。
/etc/logrotate.confファイルに以下の内容を追記する。
"/usr/local/apache2/logs/access_log"
{
daily
rotate 30
postrotate
/usr/local/apache2/bin/apachectl restart
endscript
}
後は自動的にやってくれます。
また、上記内容を/etc/logrotate.dにapacheというファイルを作って行っても同じ結果が得られます。詳しくは、別途技術書を参照してください。
apacheのログについては以上です。 |
アクセスログ解析ソフトWebalizer  |
Apacheと連携して動作するフリーのログ解析ソフトの設定です。
1.まず、下記のサイトからパッケージソフトを入手(10/16現在)
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/TurboLinux/ia32/Server/8/install/turbo/RPMS/
からwebalizer-2.01.06-2.i586.rpmをダウンロードし、インストールしてください。
2.インストールが出来たら
/etc/webalizer.confがあるのを確認してください。
本体が格納されているのは、/usr/bin/webalizerです。(英語版)
また、ここには、各言語用があり日本語用も用意してある。/usr/bin/webalizer.japaneseがそうです。
日本語版で利用する場合は、上記ファイルを利用すればよい。
ただし文字化けが多い。
3.では、設定に入ります。
/etc/webalizer.confを編集します。
#LogFile /var/log/httpd/access_logを
LogFile /var/log/httpd/access_logと言うように、#をはずし、access_logのある場所を指定する。
#OutputDir /var/www/html/usageを
OutputDir /var/www/html/usageと言うように、#をはずし、解析結果を保存するディレクトリを指定する。
#Incremental noを
Incremental yesとする
#IncrementalName webalizer.currentを
IncrementalName webalizer.currentとする
#DNSCache dns_cache.dbを
DNSCache dns_cache.dbとする
#DNSChildren 0を
DNSChildren 10とする
以上で終了です。
4.次は、起動です。
日本語の場合は
# /usr/bin/webalizer.japanese -c /etc/webalizer.conf
すると、OutputDir で設定したディレクトリー/var/www/html/usageにファイルが作られます。
ブラウザから、そのディレクトリーのindex.htmlを開いて見ましょう。
サンプル

こんな感じに表示されます。
注意:OutputDirは、ホームディレクトリー内に作るべきです。ただしアクセス制限をかけないと勝手に見られてしまいます。良ければそのままで!。工夫が必要です。
また、アクセスログは、combinedを利用したほうが多くの情報が表示されます。
ログデータは、常に蓄積されていきますので、最新の情報を見たい場合は、もう一度起動をかける必要がありますがこれを自動で行う方法があります。定期的に起動するには、crontabを利用します。
/etc/crontabに下記の内容を記述します。
01 1 * * * root /usr/bin/webalizer.japanese -c /etc/webalizer.conf
この意味は、午前1時1分にwebalizerを毎日起動させる設定です。
|
proftpdのログおよびメールログおよびその他のログ  |
|
proftpdのログ
Lesson8にて、proftpdのバージョンアップを行ったと思います。そこで、proftpd.confを編集したことを思い出してください。proftpdの場合デフォルトでは、ログファイルの出力先が、
ExtendedLog /var/log/proftpd.log で指定されています。
この部分を変更すれば、出力先を変えることができます。
ログデーターは、
192.168.0.21 UNKNOWN root [20/Oct/2003:20:57:25 +0900] "PORT 192,168,0,21,7,2"
200 -
こんな感じに出力されます。
左側のipアドレスに見覚えの無いアドレスがあると誰かが侵入を試みた跡です、また右側がメッセージです。この部分で200と言う数字がでていたなら、ログインに成功したことです。
FTP操作時の日付について
ついでに、ログ以外の設定でffftpなど起動しファイル転送を行った時に日付が変な時間になっていませんか?、これは、GMTを標準時間として扱っているからです。これを日本時間に合わせるには、
TimesGMT off
とすれば、日本時間に変わるのでやってみてください。
メールログ
メールの送受信が行われるとログを残します。このログは、
/var/log/maillog にのこります。
ここもFTPのログのように見覚えの無いアドレスとか宛先が無いか時々確認しましょう。
尚、このログは、apacheのログのように設定しなくても、ログローティションを行ってくれます。(デフォルトで設定されている)maillog.1,2のように作成されます。
その他、linuxにはログが出力されます。
そのた全てのログファイルは、/var/log に残ります。
重要なログには、
messagesで、専用のログファイルを持たないプログラムは全てここに記録されます。bindやsshd、Couldなどが利用しています。
ログファイルは、色々な情報がのります、うまくデーモンが起動しない時やエラーメッセージが出るときなどこれらのログ情報を見ると何か解決の糸口が見つかるでしょう。またログファイルをリアルタイムで見るコマンドがあります。たとえばmessagesの出力を常に監視した場合は、
tail -f /var/log/messages
と実行するとmessagesの最終行が常に表示されます。
それでは、くれぐれもハッカーされないように気を配ってサーバーを維持管理してください。
これを持ってレッスンは終了とします。
今後の予定として、ダイナミックDNSサーバーを利用しないで自前のDNSサーバーの設定方法や
1台のサーバーでバーチャルドメインを利用したwebサーバーの設定およびバーチャルsendmailの設定方法を個別に掲載して行きたいと思います。その他プロキシサーバーやDHCPサーバー、namazuなど構築したいと思っています。時間ができたらチャレンジしたいと思いますので気が向いたころアクセスして見てください。
それでは・・・ |
本サイト利用者数は 名です。本日は 名、 昨日は 名の受講ありがとうございます. |
| TOPページへ Lesson12 サーバを公開しよう Lesson14 My DNSサーバを構築しよう |
|
| Since 2003/2/8 Copyright(C) 2003 Parterre.homelinux.net All Rights Reserved. |