syslogdでルーターのログを取り、
Webで参照する実験Modified: 14 August 2002
まず、YAMAHAの「RTA54i」のログをLinuxのサーバで受信、記録します。そして、その内容は、いつでも遠隔地からブラウザで確認できるようにするという実験です。
サーバの設定
syslogdの小技
重要度
重要度 数値 内容 LOG_EMERG 0 パニック LOG_ALERT 1 要対応 LOG_CRIT 2 重大なエラー LOG_ERR 3 エラー LOG_WARNING 4 警告 LOG_NOTICE 5 通知 LOG_INFO 6 情報 LOG_DEBUG 7 デバッグ情報
ファシリティ
ファシリティ 内容 LOG_KERN カーネルからのメッセージ LOG_USER ユーザプロセスからのメッセージ LOG_MAIL メールシステムからのメッセージ LOG_DAEMON システムデーモンからのメッセージ LOG_AUTH 認証関連のメッセージ LOG_SYSLOG syslogdからのメッセージ LOG_LPR プリンタ関連のメッセージ LOG_NEWS ネットニュース関連のメッセージ LOG_UUCP UUCP関連のメッセージ LOG_CRON CRON関連のメッセージ LOG_AUTHPRIV 認証(プライベート)関連のメッセージ LOG_FTP FTP関連のメッセージ LOG_NTP NTP関連のメッセージ LOG_SECURITY セキュリティ関連のメッセージ LOG_CONSOLE コンソール関連のメッセージ LOG_LOCAL0 リザーブ LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7
RedHatLinux7.3 では、デフォルトで、syslogdとcronの動作で、一週間ごとにログをローテート(世代管理される)切り替えるように設定されていて、動作しています。
ルーターのログファイルをローテート対象とするためには、そのログファイルの名称を登録する必要があります。
設定ファイルは、"/etc/logrotate.d/syslog" です。
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}上記を、以下のように追加します。
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /home/tomo/www/html/rta54i-log {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}ログが肥大化してきたら、切り替える必要があります。単にリネームしただけでは、切替できません。
まず、現在のログを、”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;authpriv.none;cron.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
# 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
#
# RTA54i
#
user.debug;user.notice;user.info /var/www/html/rta54i-loghtmlファイルを置いているホームデレクトリに書き込みます。
サイズ0のファイルを作っておきます。
# touch /var/www/html/rta54i-log
# /etc/rc.d/init.d/syslog restart 再起動しても有効にするためには、以下のように "syslogd" に、"-r"オプションをつけて起動できるようにします。
:
start() {
echo -n $"Starting system logger: "
daemon syslogd -r $SYSLOGD_OPTIONS
RETVAL=$?
echo
echo -n $"Starting kernel logger: "
daemon klogd $KLOGD_OPTIONS
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
return $RETVAL
}
: