◆動作環境は次の通りである。
・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.48SYSLOGファシリティを指定した。 (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日