- 追加された行はこの色です。
- 削除された行はこの色です。
[[サーバ関連]]
目次~
#contents
**概要 [#f6771af6]
rsyslogを使用したログ転送の設定。~
*概要 [#f6771af6]
ログ転送されたログを送信元毎に振り分ける設定。~
**転送設定 [#v1897901]
***サーバ側 [#p21fa142]
サーバ側は受信モジュールの有効化と受信ポート・プロトコルの定義を行う。~
-【変更前】/etc/rsyslogd.conf
# Provides UDP syslog reception
#$ModLoad imudp.so
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp.so
#$InputTCPServerRun 514
-【変更後】/etc/rsyslogd.conf
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514
送信元アドレスを基準としたアクセス制限を設ける場合には以下の設定を追加する。~
TCPとUDPの設定は1行では記述することができなため、個別に定義する必要がある。~
尚、初期状態では全アドレスから受け付ける動作となるため、制限を設けない場合には以下の設定は不要である。~
*振り分け定義 [#pbcf317b]
サーバ側が受信したログを振り分けて保管する場合の設定。~
ログファイルの保管ルールを定義した後、振り分けルールと保管ルールを紐付けた設定を行う。~
~
-書式:/etc/rsyslogd.conf
$AllowedSender [TCP|UDP], [IP Address]/[bit],[IP Address]...
**ログファイル保管の定義 [#y209abed]
-書式
$template [LogFormat名],"/[PATH]/[FILE NAME]"
~
-例:10.0.0.0/8と192.168.1.254のみ受信
$AllowedSender UDP, 10.0.0.0/8, 192.168.1.254
$AllowedSender TCP, 10.0.0.0/8, 192.168.1.254
--例:ログフォーマット(/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"
***クライアント側 [#r84ac20b]
クライアント側には送信内容と送信先アドレスを定義する。~
@の数で転送プロトコルを制御しており、1つはUDP、2つはTCPとなる。~
通常は転送と同時にローカルディスクへの書き出しも行うが、設定の末尾にログ破棄の設定を入れることで、転送のみとすることも可能。~
-書式:/etc/rsyslogd.conf
[facility].[severity] [@@|@][Server]:[Port]
**振り分けルール [#afe06c1a]
***全てのログを振り分け [#hd4a11fc]
-書式
:fromhost-ip, isequal, "[IP Address(完全一致)]" -?[LogFormat名]
~
-例:全てのログをTCP(514)で転送する
*.* @@[IP Address]:514
--例:全てのログを[LogRule]に従い振り分ける
*.* -?LogRule
& ~
~
-例:全てのログをUDP(514)で転送する
*.* @[IP Address]:514
***IPアドレスを基準とした振り分けの定義(完全一致) [#ta7b7529]
-書式
:fromhost-ip, isequal, "[IP Address(完全一致)]" -?[LogFormat名]
~
-例:infoのログをUDP(514)で転送する
*.info @[IP Address]:514
--例: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
& ~
-例:既存の振り分け設定に転送設定を追加する
*.info;mail.none;authpriv.none;cron.none /var/log/messages
& @@[IP Address]:514
***IPアドレスを基準とした振り分けの定義(前方一致) [#bd6f2b5e]
-書式
:fromhost-ip, startswith, "[IP Address(前方一致)]" -?[LogFormat名]
~
-例:転送したログを破棄する(ローカルに書き込まない)
*.info @[IP Address]:514
--例:IPアドレス振り分け(192.168.230〜239のアドレス)
:fromhost-ip, startswith, "192.168.1.23" -?LogRule
& ~
~
**振り分け定義 [#pbcf317b]
サーバ側が受信したログを振り分けて保管する場合の設定。~
ログファイルの保管ルールを定義した後、振り分けルールと保管ルールを紐付けた設定を行う。~
~
**ログローテーション [#z6a7ae67]
rsyslogdを使用してもローテーションに近い動きは出来るが、緻密な制御を行うにはlogrotateを使用する方が適切である。~
***設定例 [#m27ed9cf]
以下の動作を行うローテーションの例。~
-ログファイル保管時の定義
$template [LogFormat],"/[PATH]/[FILE NAME]"
-動作~
--/data-syslog/syslog配下のログ(*.log)を対象とする~
--月次でローテーションする~
--ログ圧縮する~
--ローテーション時には圧縮せずリネームのみ。次回のローテーションで圧縮する~
--ログファイルが存在しない場合も処理を続行~
--空のログファイルはローテーションしない~
--処理実行後にrsyslogdをリロード(ファイルのinodeを掴む問題を解消)~
~
-IPアドレスを基準とした振り分けの定義
:fromhost-ip, startswith, "[IP Address(前方一致)]" -?[LogFormat]
& ~
~
-/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
}
-例:ログフォーマット(/[PAHT]/[IP Address]_[HostName]/[YYYY]/[IP Address]_[HostName].YYYY-MM.messages.log)
$template [LogFormat],"/[PATH]/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.messages.log"
~
-例:振り分け(192.168.230〜239のアドレス)
:fromhost-ip, startswith, "192.168.1.23" -?MonthFiles2
*設定サンプル [#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
& ~
**設定サンプル [#ua04057e]
***サーバ設定 [#k02c4064]
***例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-logs/syslog/%fromhost-ip%_%fromhost%/%fromhost-ip%_%fromhost%.messages.log"
$template DynamicFileName2,"/data-logs/syslog/%fromhost-ip%_%fromhost%/%fromhost-ip%_%fromhost%.%programname%.messages.log"
$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-logs/syslog/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.messages.log"
$template MonthFiles2,"/data-logs/syslog/%fromhost-ip%_%fromhost%/%$year%/%fromhost-ip%_%fromhost%.%$year%-%$month%.%programname%.log"
$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
& ~