Syslog Server on FreeNAS 7 1

Facebooktwittergoogle_plusmail

カスタマイズ可能なUSB bootのFreeNASができあがったので、試しにルーターのログをFreeNASで動作しているsyslog serverに転送してみます

  1. コンソールshellかsshでroot login
  2. /etc/rc.d/syslogdのバックアップ
  3. freenas:~# cp /etc/rc.d/syslogd /root

  4. /etc/rc.d/syslogdの編集
  5. 変更内容としては

    • 外部から送信されてくるログの受信を許可する
    • syslogd_flags=”-a 192.168.1.0/24″がその部分になります。通常は/etc/rc.confに記述すればいいのですが、何故か起動スクリプトに埋め込まれていますのでこちらを修正します

    • ルーターからのログを保存するファイル等の設定
    • これも /etc/syslog.confへの記述で大丈夫だろうと思っていると再起動すると消えてしまいます。起動スクリプトの/etc/rc.d/syslogdの中で/etc/syslog.confをechoで作成しているので、この部分の修正を行います。192.168.1.1はルーターのIPアドレスです

    freenas:~# vi /etc/rc.d/syslogd

    [変更前]
    (snip)
    # Check if syslog’ing to remote syslog server is disabled
    if ! configxml_isset //syslogd/remote/enable; then
    syslogd_flags=”-ss”
    command_args=”-f ${syslogd_config}”
    fi

    syslogd_mkconf()
    {
    echo “local3.* %${clog_logdir}/sshd.log
    local4.* %${clog_logdir}/rsyncd.log
    local5.* %${clog_logdir}/smartd.log
    ftp.* %${clog_logdir}/ftp.log
    daemon.* %${clog_logdir}/daemon.log
    *.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
    security.* %${clog_logdir}/system.log
    auth.info;authpriv.info %${clog_logdir}/system.log
    *.emerg *” > ${syslogd_config}
    (snip)

    [変更後]
    (snip)
    # Check if syslog’ing to remote syslog server is disabled
    if ! configxml_isset //syslogd/remote/enable; then
    syslogd_flags=”-a 192.168.1.0/24″
    command_args=”-f ${syslogd_config}”
    fi

    syslogd_mkconf()
    {
    echo “local3.* %${clog_logdir}/sshd.log
    local4.* %${clog_logdir}/rsyncd.log
    local5.* %${clog_logdir}/smartd.log
    ftp.* %${clog_logdir}/ftp.log
    daemon.* %${clog_logdir}/daemon.log
    *.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
    security.* %${clog_logdir}/system.log
    auth.info;authpriv.info %${clog_logdir}/system.log
    *.emerg *
    +192.168.1.1
    *.* /var/log/router.log” > ${syslogd_config}
    (snip)

  6. log file作成
  7. freenas:~# touch /var/log/router.log
    freenas:~# chmod 600 /var/log/router.log

  8. syslogdの再起動
  9. freenas:~# /etc/rc.d/syslogd restart
    Stopping syslogd.
    Starting syslogd.
    freenas:~# ps ax | grep syslog
    1812 ?? Ss 0:00.01 /usr/sbin/syslogd -a 192.168.1.0/24 -f /var/etc/syslog.conf

  10. ルーター側設定
  11. ルーター側の設定でsyslog serverの設定を行います。ログレベル, syslog serverのIPを指定すれば大丈夫と思います

さて、テストでルーターのログレベルをinfoにして暫く様子をみます
ルーターからログが流れてくると/var/log/router.logに記録されていきます

freenas:~# cat /var/log/router.log
Apr 30 13:08:27 192.168.1.1 [INSPECT] PP[03][out][202098] TCP 192.168.1.199:50301 > xxx.xxx.xxxx.xxx:443 (2012/04/30 13:06:25)
Apr 30 13:08:38 192.168.1.1 LAN2 Rejected at IN(default) filter: next header=103 fe80::21f:6dff:fe90:dc1a > ff02::d
Apr 30 13:08:40 192.168.1.1 [INSPECT] PP[03][out][202081] UDP 192.168.1.254:43647 > xxx.xxx.xxx.xxx:53 (2012/04/30 13:08:38)

取り敢えずルーターのログが記録されていますが、同じものが/var/log/system.logにも記録されています。これをsystem.logには記録されないようにします
ルーターから流れてくるログのfacilityはuserでしたので

freenas:~# vi /etc/rc.d/syslogd

[変更前]
syslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *
+192.168.1.1
*.* /var/log/router.log” > ${syslogd_config}

[変更後]
syslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none;user.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *
+192.168.1.1
user.* /var/log/router.log” > ${syslogd_config}

これでルーターのログは/var/log/router.logのみに記録されます
でもlogrotateは行わないのでログの肥大化が発生します。注意!

One comment on “Syslog Server on FreeNAS 7

  1. Reply Olli Warelius 5月 26,2012 22:33

    What a very informative site, I have found alot of very useful information here and still have a lot more to read. Thank you very much for the time and effort you have put in….

Leave a Reply