Syslogdでルータのログを記録する
Modified: 19 May 2001
まず、YAMAHAの「RT80i」のログをLinuxのサーバで受信、記録します。そして、その内容は、いつでも遠隔地からブラウザで確認できるようにするという実験です。
実験したのは「RT80i」ですが、他のルータでもコマンドは(ほとんど)同じですので、YAMAHAであれば、他のルーターでも適用できます。
ルータを設定する
"/etc/syslogd.conf" を設定する
syslogdを再起動する
ブラウザで参照できるようにする
ログが肥大化してきたら、切り替える必要があります。単にリネームしただけでは、切替できません。
まず、現在のログを、”mv”コマンドでリネームします。
# mv router.log router-200102.log 新しい、サイズ0のファイル、を作ります。
# touch router.log デーモンを再起動します。
# /etc/rc.d/init.d/syslog restart 以上で、OKです。
ルータがログを出力するように設定します。
出力するホストを指定
# syslog host 192.168.0.6
ファシリティを指定します
要は、ログの種別です。受け取ったとき、専用のファイルに保存するために指定します。
# syslog facility user
ログの対象を指定します
# syslog notice on
# syslog info on
# syslog debug off
DNSの参照により、IPアドレスでなくURLで記録する
# dns syslog resolv on
# 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;news.none;authpriv.none /var/log
/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg *
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
#
# INN
#
news.=crit /var/log/news/news.crit
news.=err /var/log/news/news.err
news.notice /var/log/news/news.notice
#
# RT80i
#
user.debug;user.notice;user.info /var/log/rt80i-logサイズ0のファイルを作っておきます。
# touch /var/log/rt80i-log
# /etc/rc.d/init.d/syslog restart 再起動しても有効にするためには、以下のように "syslogd" に、"-r"オプションをつけて起動できるようにします。
#!/bin/sh
#
# syslog Starts syslogd/klogd.
#
#
# chkconfig: 2345 30 99
# description: Syslog is the facility by which many daemons use to log \
# messages to various system log files. It is a good idea to always \
# run syslog.
# Source function library.
. /etc/rc.d/init.d/functions
[ -f /sbin/syslogd ] || exit 0
[ -f /sbin/klogd ] || exit 0
RETVAL=0
# See how we were called.
case "$1" in
start)
echo -n "Starting system logger: "
# we don't want the MARK ticks
daemon syslogd -r -m 0
RETVAL=$?
echo
echo -n "Starting kernel logger: "
daemon klogd
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
;;
stop)
echo -n "Shutting down kernel logger: "
killproc klogd
echo
echo -n "Shutting down system logger: "
killproc syslogd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/syslog
;;
status)
status syslogd
status klogd
RETVAL=$?
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: syslog {start|stop|status|restart}"
exit 1
esac
exit $RETVAL
Webファイルを置いた位置を、"/home/tomo/htdocs"をすると、まずそこに移動します。
# cd /home/tomo/htdocs "syslog"というデレクトリを作成し、"rt80i-log"のロジカルリンクを作成します。
# mkdir syslog
# cd syslog
# ln -s /var/log/rt80i-log rt80i-log以下のURLで参照できます。
http://www.aaaa.com/syslog/rt80i-log