(無償) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

2016年3月14日月曜日

【YAMAHA RTX1200】ルーターログをCentOS6.7のrsyslogに転送し指定したファイルに記録する【Linux CentOS 6.7 64bit minimal】

RTX1200のログを、CentOS 6.7のrsyslogで受信し、ファイルに記録するための設定を行った。


◆動作環境は次の通りである。

・rsyslogでログを受信する側は、CentOS 6.7 minimalで、iptablesは動作させていない。
(iptablesを停止させているので、安全なネットワーク上で動作させている。)

・ログをsyslogに送信する側は、RTX1200(Rev.10.01.53)である。



■ログを受信するCentOS 6.7側での必要な設定

1、rsyslogがネットワークを通じてログを受信し、ファイルに保存する設定を行った。

RTXはログの送信時にudpを使うようなので、次の様にして、udp 514でListenするよう設定した。
また、RTXからのログは、SYSLOGファシリティは local5 で取り扱うことにした。

# vi /etc/rsyslog.conf
(略)
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514


# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
(略)

さらに続けて、下の方(/var/log/…を含む項目の集まりの一番下)に次の情報を追加した。
(略)
# RTX
local5.*                                                /var/log/rtx1200-1.log
(略)

2、rsyslogの再起動を行った。
# service rsyslog restart


ところで、モジュールのロード($ModLoad imudp)をしていない場合、次のようなエラーが発生した。
Mar 14 19:00:48 test rsyslogd-3003: invalid or yet-unknown config file command - have you forgotten to load a module? [try http://www.rsyslog.com/e/3003 ]
Mar 14 19:00:48 test rsyslogd: the last error occured in /etc/rsyslog.conf, line 14:"$UDPServerRun 514"
Mar 14 19:00:49 test rsyslogd-2124: CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2124 ]


■ログを出力するRTX側での必要な設定

(必須)

rsyslogが動作しているCentOSのアドレスを指定した。
# syslog host 192.168.0.48
SYSLOGファシリティを指定した。 (CentOS側の設定に合わせる。)
# syslog facility local5

(オプション)

出力したい「ログのタイプ」を決定する。
# syslog notice on
# syslog info on
# syslog debug off


■動作確認

○問題なく、rsyslogdが起動したことを確認した。
# tail -5 /var/log/messages

Mar 14 19:46:49 test kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 14 19:46:49 test rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="21086" x-info="http://www.rsyslog.com"] start

○ログイン情報がログファイルに記載されているか確認した。

たとえば、RTXにログインすることによって、そのことがロギングされる。
# tail /var/log/rtx1200-1.log

確認したところ、ログは、rsyslog側だけでなく、RTX自身にも従来通りに記録されていた。



◆logrotateでログファイルを定期的に新しいものに差し替える

大量の情報が記載されるログファイルは、定期的に新しいものに切り替えたほうが良い。
また、古い情報が記載されたログファイルは、ディスクの圧迫を避けるために、削除した方が良い。
これらのことを自動的に行ってくれるのが、logrotateというプログラムである。

○logrotateの設定を行った。

# vi /etc/logrotate.d/rtx1200-1

/var/log/rtx.log {
        daily
        rotate 30
        create 644 root root
        notifempty
        missingok
        postrotate
             /usr/bin/killall -HUP rsyslogd
        endscript
}

(説明)
・daily
 毎日ログファイルを新しいファイルに切り替える。

・rotate 30
 古いログファイルは30個まで保持しておく。(古いものから削除される。)

・create 644 root root
 新しいファイルのパーミッションと所有者・グループを指定したように設定する。

・notifempty
 「not if empty」空っぽの場合はそのログファイルを切り替えない。

・missingok
 ファイルの切り替え時に発生するエラー(file not foundなど)を無視する。

・postrotate/endscript
 これらの間に記されるコマンドは、他の処理が実行された後に実行される。

・/usr/bin/killall -HUP rsyslogd
 rsyslogに、設定ファイルの再読み込みを指示している。
 (これがなければ、切り替えた新しいファイルへログが記入されていかない。)


○指定した設定ファイルでlogrotateがどう行われるか確認した。
# logrotate -d /etc/logrotate.d/rtx1200-1
reading config file /etc/logrotate.d/rtx
reading config info for /var/log/rtx.log

Handling 1 logs

rotating pattern: /var/log/rtx.log  after 1 days (30 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/rtx.log
  log does not need rotating
not running postrotate script, since no logs were rotated

○次のように、ログファイルが毎日自動的に差し替えされた。
-rw-r--r--   1 root  root  13588252 Mar 18 04:14 rtx1200-1.log-20160318
-rw-r--r--   1 root  root  15235739 Mar 19 04:45 rtx1200-1.log-20160319
-rw-r--r--   1 root  root    150179 Mar 20 03:31 rtx1200-1.log-20160320
-rw-r--r--   1 root  root    148226 Mar 21 03:45 rtx1200-1.log-20160321




<参考>

・ヤマハルータでログを取得する(syslog機能)公開
< http://www.marronkun.net/network/yamaha/rtrtx_000051.html > 2016年3月14日

・シスログの管理 rsyslog.conf の設定 〜 CentOS6
< http://easyramble.com/configure-rsyslog.html > 2016年3月14日

・How to Setup Rsyslog Remote Logging on Linux (Central Log Server)
< http://www.thegeekstuff.com/2012/01/rsyslog-remote-logging/ > 2016年3月14日


(logrotateについて)
・20.2. ログファイルの場所の特定
< https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-logfiles-locating.html > 2016年3月21日

・How to use logrotate to manage log files in Linux
< http://xmodulo.com/logrotate-manage-log-files-linux.html > 2016年3月21日


(rsyslogの応用)
・rsyslog 8.18.0.master documentation » Configuration »
< http://www.rsyslog.com/doc/master/configuration/properties.html > 2016年3月14日

・Templates
< http://www.rsyslog.com/doc/master/configuration/templates.html > 2016年3月14日


(ファシリティ―について)
・syslog facility
< https://www.furukawa.co.jp/fitelnet/f/man/100/command-config/global_config/syslog_facility.htm > 2016年3月14日