Custom Search

JITAKU_SVR_Wiki

rsyslog環境

OS:CentOS6.4
PKG:rsyslog-5.8.10-6.el6.x86_64
サーバIP:10.60.1.10

基本的にクライアントの制御を今回は行わないので、サーバ側のIPアドレスのみ記述。
パッケージのインストールはyumを使用しているので、詳細は省略。

クライアントの設定は

こちらを参考に。

設定ファイル

# rsyslog v5 configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability


#### コメントアウト削除
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

#### コメントアウト削除
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf


#### RULES ####

# 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


# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###

# A template to for higher precision timestamps + severity logging
$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp %%msg:::drop-last-lf%\n"

### 各ホストごとのログを出力
$template logrotate,"/var/log/secure.d/%fromhost%_%$year%%$month%%$day%.log"
*.* ?logrotate

:programname, startswith, "spice-vdagent"       /var/log/spice-vdagent.log;SpiceTmpl



解説

変更箇所のみ解説

TCP/UDP通信

$ModLoad imudp
$UDPServerRun 514

UDP/514番ポートを使用する際の宣言


$ModLoad imtcp
$InputTCPServerRun 514

TCP/514番ポートを使用する際の宣言

TCPのみ使用する場合、UDPのみ使用する場合があると思うので、設計段階でしっかり決めておくこと。

各ホストごとのログを出力

&$template logrotate,"/var/log/syslog.d/%fromhost%_%$year%%$month%%$day%.log";
この一行はこのまま使用しても問題ないが、注意点は
・ディレクトリはrsyslogデーモンが作成してくれる
・ログは各ホスト(ノード)ごとに分けて作られる
・日付を指定することで、自動でローテートしてくれる

という点。

上記のテンプレートだと、
/var/log/syslog.dのsyslog.dはデフォルトで作成されていないディレクトリだが、
デーモンを起動、再起動させると自動で作成してくれるので、特に何もしなくて良い。

%fromhost%はリモートホストのホスト名で記述される(はず)。
ただし、名前が引けない場合はIPアドレスでファイルが作成される。

%$year%%$month%%$day%の箇所は見たとおり、日付のついたファイルで作成される。
作成されるファイル名はYYMMDDになる。

例)
/var/log/syslog.d/localhost_20150709.log
/var/log/syslog.d/10.60.1.100_20150709.log
という様な感じ。

*.* ?logrotate
上記のテンプレートを割り当てる。
ちなみに(*.* -?logrotateとすれば非同期になる)

ここではファシリティとログレベルは*(ALL)にしているが、ログを絞りたい場合はどういうログを収集するかをちゃんと設定しておくこと。

サーバはこれくらいの設定で終わり。
特に難しいことはないが、起動させてポートをListenしていることを確認しておく。

起動、確認

# /etc/init.d/rsyslog restart
システムロガーを停止中:                                    [  OK  ]
システムロガーを起動中:                                    [  OK  ]
 
# netstat -an |grep 514
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN
tcp        0      0 :::514                      :::*                        LISTEN
udp        0      0 0.0.0.0:514                 0.0.0.0:*
udp        0      0 :::514                      :::*

参考

http://opamp.hatenablog.jp/entry/2014/05/03/025410
http://hogem.hatenablog.com/entry/20120326/1332772781


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-22 (火) 14:15:23 (644d)