UNIX USER 2003年11月号より転載
●クライアントの/etc/syslog.conf
クライアントの/etc/syslog.confではリスト11のような設定を行います。基本的に、重要なメッセージはすべてサーバーに送り、クライアント側ではカーネルやローカルマシンの管理に必要なメッセージを残す方針としました。
リスト11 クライアントのsyslog.conf
|
1: *.warning @loghost
2: daemon,auth.info @loghost
3:
4: kern.info /var/log/kern.log
5: *.emerg *
|
この方針に従って、loghostへ送るのは、
・warningレベル以上のメッセージのすべて(1行目)
・daemon、authファシリティでinfoレベル以上のメッセージすべて(2行目)
としています。デーモンや認証プログラムの出すメッセージは少し冗長性を持たせて採取しています。
カーネルの出すメッセージは、warning以上ならloghostに送りますが、ローカルでの管理がまったくできないのも危険なので、info以上をローカルのファイルに残すようにしました。ローカルに保存する情報のほうがloghostに保存するッセージより少し詳しくなります。
後は5行目の指定で、パニックなどの緊急メッセージをローカルの全ユーザーへも通知するようにしています。
クライアント側は以上です。出力先ファイルの設定はサーバー側で行いますので、送信メッセージをファシリティやレベルで別ファイルに分けるような指定は不要です。設定ファイルを変更したら、syslogdを再起動して設定を反映させておきましょう。
●サーバーの/etc/syslog.conf
サーバーの/etc/syslog.confでは、受け取ったメッセージをファシリティごとに分けて保存できるよう、リスト12のようにしました。ここではSolarisの指定を参考に、コンソールへ出力するものを決めました。具体的には、notice以上をコンソールへ出力し、info以上はログファイルに残すようにしています。また、一般的なメッセージは大体/var/log/messagesファイルに採取し、メール、cron、認証に関してはすべてのメッセージをそれぞれのファイルに分けています。
リスト12 サーバーのsyslog.conf
|
1: *.err;kern,auth.notice /dev/console
2: *.err;kern,auth.info /var/log/console.log
3:
4: *.err;kern.info;daemon,auth.notice /var/log/messages
5: mark.debug /var/log/messages
6: mail.debug /var/log/mail.log
7: cron.debug /var/log/cron.log
8: auth,local2.debug /var/log/auth.log
9:
10: *.emerg *
|
ちなみに、5行目のmark.debugファシリティは、タイムスタンプを定期的に書き込むための指定です。こうやってサーバー側のタイムスタンプを定期的に書き込むようにしておけば、クライアントマシンの時刻がずれていても、サーバー側である程度対処できます。サーバー側も、設定ファイルを変更したら忘れずにsyslogdを再起動しておきましょう。
●運用結果
上記の設定による運用結果は、リスト13のようになりました。これは、Debianをシスログサーバーとして、各クライアントのシスログを集中管理したときの出力例です。サーバー側ではメッセージの文字列をそのまま受け取ることになるので、かなり煩雑な感じがするのは否めません。そのほかのOSをサーバーにしたときも同様の出力になりますが、Solarisの場合はホスト名称がFQDNになります。
リスト13 集中管理されたログの例
|
Jul 29 17:45:59 debian -- MARK --
Jul 29 17:50:37 debian syslogd 1.4.1#10: restart (remote reception).
Jul 29 17:51:35 debian sshd[479]: Accepted password for username from 192.168.1.100 port 1353 ssh2
Jul 29 17:51:35 debian PAM_unix[481]: (ssh) session opened for user username by (uid=500)
Jul 29 17:51:40 debian PAM_unix[483]: (su) session opened for user root by username(uid=500)
Jul 29 17:43:25 solaris sshd[10051]: [ID 800047 auth.info] Failed publickey for username from 192.168.1.100 port 1354 ssh2
Jul 29 17:43:27 solaris sshd[10051]: [ID 800047 auth.info] Accepted password for username from 192.168.1.100 port 1354 ssh2
Jul 29 17:45:56 freebsd sshd[20254]: Accepted password for username from 192.168.1.250 port 38724 ssh2
Jul 29 17:46:03 freebsd su: BAD SU username to root on /dev/ttyp7
Jul 29 17:53:01 debian PAM_unix[487]: (cron) session opened for user mail by (uid=0)
Jul 29 17:53:01 debian /USR/SBIN/CRON[488]: (mail) CMD ( if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi)
Jul 29 18:05:59 debian -- MARK --
|
1行目と最下行がmarkファシリティによるタイムスタンプです。クライアントマシンの時刻設定がずれていても、この「MARK」の記述時間から実際にログの原因となった事象の発生時間を絞り込むことができます。
関連リンク
UNIXUSER
定期購読のご案内
バックナンバー販売協力店
読者モニターレポート
|
UNIX USER 11月号
第1特集:WebDAVファイル共有 最新事情
第2特集:まだいるワーム/ウイルスをあぶり出せ
第3特集:カスタムLinuxザウルスを作る
付録CD-ROM 2枚組み
・オリジナルUNIX(V5/V6/V7)のソースコード
・OpenZaurus 3.3.1
・SL-C700用special kernel v11
・GNOPPIX 0.5.5
・最新Linuxカーネル ほか
|
|