rsyslog (rocket-fast system for log processing) は汎用のログ管理システムです。入力を指定しておき、用意したフィルターに合致したログを所望の場所に出力します。ここでは v7 を扱います。
CentOS 6 の場合について v7 をインストールする手順を示します。他の OS などについてはこちらをご覧ください。
$ sudo yum remove rsyslog
$ sudo yum install rsyslog7 sysstat
$ sudo service rsyslog start
$ sudo chkconfig rsyslog on
$ sudo chkconfig --list | grep syslog
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
設定ファイル生成ツールを用いると簡易な手続で設定ファイルの雛形を生成できます。例えば /tmp/myfile を入力として、特にフィルタリングせずにすべてを /var/log/myapp.log に出力するように設定すると以下のようなテンプレートが生成されます。
入力
出力
全体
生成結果
# This configuration has been generated by using the
# rsyslog Configuration Builder which can be found at:
# http://www.rsyslog.com/rsyslog-configuration-builder/
#
# Default Settings
# Load Modules
module(load="imfile")
# rsyslog Templates
# rsyslog Input Modules
input(type="imfile"
File="/tmp/myfile"
Tag="myapp"
StateFile="mystatefile"
Severity="info"
Facility="user"
ruleset="myRuleSet")
# rsyslog RuleSets
ruleset(name="myRuleSet") {
action(type="omfile"
File="/var/log/myapp.log")
}
# Default RuleSet
# This configuration was generated on '2015-04-16 15:40:11'
これを /etc/rsyslog.conf の末尾に追記します。
$ sudo vim /etc/rsyslog.conf ← 上書きではなく末尾に追記
$ sudo service rsyslog restart
すると、例えば
$ vim /tmp/myfile
と編集すると、ログファイルが更新されます。
$ sudo tail /var/log/myapp.log
Apr 16 15:46:55 vagrant myapp 123456789
Apr 16 15:47:25 vagrant myapp aa
Apr 16 15:47:25 vagrant myapp bbb