syslogd+Logwatch+Swatchを用いたログ関連の操作
★syslogd
syslogdはLinuxカーネルや、各種サービス・ソフトウェアのログを取るサービスである。syslogdによって記録されたログを見る事によってシステムの状態を把握する事ができる。管理者にとって、これを見る事は欠かせない作業の一つである。
ほとんどのサービスはsyslogdを利用してログを出力するが、ApacheやSambaなどのように独自にログを生成するソフトウェアもある。
syslogdに関係するファイルは次のとおり
・ /var/log/フォルダ
・ /etc/logrotate.conf
・ /etc/syslog.conf
・ /etc/sysconfig/syslog
ログはシステムの運用・管理のための重要な手がかりとなる。
デフォルトでは、ログは/var/log/ディレクトリ以下に置かれる。
代表的なログファイルとして、
/var/log/messages システムに関する様々な情報
/var/log/wtmp ログイン情報。lastコマンドで参照できる
/var/log/maillog メールに関する情報
/var/log/secure セキュリティ関連
/var/log/httpd/access_log Webサーバへのアクセスログ
/var/log/dmsg デバイスの状態
ログはすぐに肥大化するので、ログを分割する機能を持っている。デフォルトでは1週間ごとに分割される。その際、それまでのものが「messages」なら「messages.1」という名前に変わり、新しい0バイトの「messages」が生成される。ちなみに「messages.1」だったものは「messages.2」に変わる。分割されて残しておくファイル数は「messages.4」までとなっている。これらの設定はデフォルトであり、分割の周期やファイル数を変更したければ/etc/logrotate.confファイルをいじれば良い。
■ログを他のマシンに送信する
syslogdは自分の中にログを作るのではなく、他のPCにログを溜める事もできる。普段は/etc/syslog.confにて/var/log/messagesに保存するように設定されている。それを@192.168.0.1などのように書き換える事によって、192.168.0.1にログを送るようになる。
# Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none @192.168.0.1 # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* /var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log |
■ログを受信する
ログを受信するマシンには受信設定を行なう必要がある。/etc/sysconfig/syslogの中のSYSLOGD_OPTIONS=”-m 0”という一行に-rを追加する。
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r # See syslogd(8) for more details SYSLOGD_OPTIONS="-m 0 -r" # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-x" |
これで、以後ログを送信するマシンにはログは溜まらず、受信する側のマシンの/var/log/messagesにログが溜まる事になる。
★Logwatch
Logwatchは最近のRed Hatには標準搭載されている定期的にログを監視してくれるツールである。動作としては文字列を監視し、特定のパターンの文字列がログに現れたら通知してくれる。
設定ファイルは/etc/log.d/conf/logwatch.conf
ログファイルの格納されているディレクトリ LogDir = /var/log
ログファイルのレポートメールを送信したい場合、rootに置き換えてメールアドレスを記述 変更しない場合はroot宛にレポートが送信 MailTo
=
Yesにするとメール送信が行なわれなくなるかわりにコンソール上にLogwatchの出力結果が表示される Print = No
コメントアウトを外すとメール送信やレポート出力が行なわれず、指定のファイルにレポートが保存される #Save = /tmp/logwatch
Archivesの#を外すと圧縮された過去のログファイルも一緒に解析してくれる Archivesを有効にしたらRangeも有効にし、日付の範囲を指定 #Archives = Yes #Range = All
いつのログを解析するかを指定。All、Today、Yesturdayの3種類から選択 Range = yesterday
詳細度を設定。Low、Med、Highもしくは0-10の数字のどれかを指定 Detail = Low
特定のサービスのログのみを抜き出してチェックしたい場合にはこのパラメータを変更 /etc/log.d/scripts/services/にある実行ファイル名を指定できる Service = All
解析するログファイル名を指定できるが、その前にService=Allの記述があれば無効 #LogFile = messages |
★Swatch
Swatchはメモリ上に常駐し、ログの監視をするソフトウェアである。ジャンルとしてはIDS(侵入検知システム)もしくは不正アクセス監視システムだと捉えればよいだろう。厳密にはIDSではないが、syslogが吐き出したログを対象にマッチングをかけるので、ログをよく知っているなら非常に便利なソフトウェアである。
日ごろからLinxuをインターネットに繋げて稼動させていれば、syslogに様々なアクセス状況が記録される。様々なシステムを抱える管理者にとって、これらのログを全て監視し続けるのはかなり現実的では無い。そのため、専用のツールを使って、ある程度はモニタリングさせる事になる。
■インストール
このソフトウェアはPerlで書かれているので、インストール時にパールモジュールが必要となる。
以下のファイルを入手し、カーネルにインストールしておく必要がある。
CPAN(http://search.cpan.org)で以下の4つのファイルを検索し、ダウンロードする。
File-Tail-0.98.tar.gz
Date-Calc-4.3.tar.gz
TimeDate-1.10.tar.gz
Time-HiRes-01.20.tar.gz
|
|
|
|