tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

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


"/etc/syslogd.conf" を設定する

# 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-log

htmlファイルを置いているホームデレクトリに書き込みます。

サイズ0のファイルを作っておきます。

# touch /var/www/html/rta54i-log

syslogdを再起動する

# /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
}
    :

To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)