[[サーバ関連]]
目次~
#contents
*概要 [#f6771af6]
ログ転送されたログを送信元毎に振り分ける設定。~
*振り分け定義 [#pbcf317b]
サーバ側が受信したログを振り分けて保管する場合の設定。~
ログファイルの保管ルールを定義した後、振り分けルールと保管ルールを紐付けた設定を行う。~
~
**ログファイル保管の定義 [#y209abed]
-書式
$template [LogFormat名],"/[PATH]/[FILE NAME]"
~
--例:ログフォーマット(/data-syslog/syslog/[IP Address]_[HostName]/[YYYY]/[IP Address]_[HostName].YYYY-MM.messages.log)
$template HostIP-Logs, "/data-syslog/syslog/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.messages.log"
~
--例:ログフォーマット(/data-syslog/syslog/[IP Address]_[HostName]/[IP Address]/[IP Address].messages.log)
$template HostIP-Logs,"/data-syslog/syslog/%fromhost-ip%/%fromhost-ip%_messages.log"
**振り分けルール [#afe06c1a]
***全てのログを振り分け [#hd4a11fc]
-書式
:fromhost-ip, isequal, "[IP Address(完全一致)]" -?[LogFormat名]
~
--例:全てのログを[LogRule]に従い振り分ける
*.* -?LogRule
& ~
~
***IPアドレスを基準とした振り分けの定義(完全一致) [#ta7b7529]
-書式
:fromhost-ip, isequal, "[IP Address(完全一致)]" -?[LogFormat名]
~
--例:IPアドレス振り分け(192.168.230のアドレスを[LogRule]に従い振り分ける)
:fromhost-ip, isequal, "192.168.1.230" -?LogRule
& ~
~
--例:IPアドレス振り分け除外(192.168.230のアドレス以外を[LogRule]に従い振り分ける)
:fromhost-ip, !isequal, "192.168.1.230" -?LogRule
& ~
***IPアドレスを基準とした振り分けの定義(前方一致) [#bd6f2b5e]
-書式
:fromhost-ip, startswith, "[IP Address(前方一致)]" -?[LogFormat名]
~
--例:IPアドレス振り分け(192.168.230〜239のアドレス)
:fromhost-ip, startswith, "192.168.1.23" -?LogRule
& ~
**ログローテーション [#z6a7ae67]
rsyslogdを使用してもローテーションに近い動きは出来るが、緻密な制御を行うにはlogrotateを使用する方が適切である。~
***設定例 [#m27ed9cf]
以下の動作を行うローテーションの例。~
-動作~
--/data-syslog/syslog配下のログ(*.log)を対象とする~
--月次でローテーションする~
--ログ圧縮する~
--ローテーション時には圧縮せずリネームのみ。次回のローテーションで圧縮する~
--ログファイルが存在しない場合も処理を続行~
--空のログファイルはローテーションしない~
--処理実行後にrsyslogdをリロード(ファイルのinodeを掴む問題を解消)
--処理実行後にrsyslogdをリロード(ファイルのinodeを掴む問題を解消)~
~
-/etc/logrotate.d/remote-syslog
/data-syslog/syslog/*/*.log
{
monthly
rotate 12
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
*設定サンプル [#ua04057e]
**rsyslogd.conf [#nf0cebd2]
***例1. 全てのログに振り分けルールを適用する [#l475dc23]
#### 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 ####
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
#### RULES ####
##
## Log Rules
##
$template HostIP-Logs,"/data-syslog/syslog/%fromhost-ip%/%fromhost-ip%_messages.log"
##
## Remote Log
##
*.* -?HostIP-Logs
& ~
***例2. IPアドレス毎に振り分ける [#k02c4064]
## Provides UDP syslog reception
##
$ModLoad imudp
$UDPServerRun 514
# Restrict incoming source IP address(UDP)
#
$AllowedSender UDP, 10.0.0.0/8
## Provides TCP syslog reception
##
$ModLoad imtcp
$InputTCPServerRun 514
# Restrict incoming source IP address(TCP)
#
$AllowedSender TDP, 10.0.0.0/8
#### TEMPLATE ####
## Log Format Template
$template TraditionalFormat,"%timestamp% %hostname% %syslogtag%%msg%:::drop-last-lf%\n"
## File Format Template
# Base Template
$template DynamicFileName1,"/data-syslog/syslog/%fromhost-ip%_%fromhost%/%fromhost-ip%_%fromhost%.messages.log"
$template DynamicFileName2,"/data-syslog/syslog/%fromhost-ip%_%fromhost%/%fromhost-ip%_%fromhost%.%programname%.messages.log"
# Year/Month/Day Template
$template MonthFiles1,"/data-syslog/syslog/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.messages.log"
$template MonthFiles2,"/data-syslog/syslog/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.%programname%.log"
#### RULES ####
##
## IP Level rules
##
## 192.168.23x
:fromhost-ip, startswith, "192.168.1.23" -?MonthFiles2
& ~
## 192.168.1.xxx
:fromhost-ip, startswith, "192.168.1." -?MonthFiles1
& ~