初めまして。
ご教示ください。
はじめての試みで、rsyslogを使い、logの一元管理を行おうとしております。
ネットで調べ、教本で勉強しながら設定して動かしてみたものの
思ったように動作してくれません。
■環境
・サーバA(rsyslogサーバです)
ディストリビューション:Centos6.5 32bit
rsyslogバージョン:rsyslog-5.8.10-6.el6.i686
rsyslogの保存先:/var/log/sv
ログファイル名:local0.log
・サーバB
rsyslogクライアント(クライアントサーバです)
ディストリビューション:Centos6.5 32bit
rsyslogバージョン:rsyslog-5.8.10-8.el6.i68
rsyslogの送信先:rsyslogサーバ(=サーバA)
・その他
環境はワークグループで、xx.local.domainです。
IPアドレスは、x.x.x.x/24の世界になります。
■目的
サーバBから、514/tcpを使い、ファシリティlocal0、
プライオリティがinfoのログを、サーバAに収集したい。
また、local設定したログが、messagesに紛れない様にしたい。
■設定情報(サーバA)
rsyslog設定ファイル(/etc/rsyslog.conf)
※設定箇所だけ抜粋
#### MODULES ####
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, x.x.xx.0/24, *.local.domain
#### RULES ####
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local0 -/var/log/messages
#### MODULES ####
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, x.x.x.0/24, *.local.domain
local1.info -/var/log/sv/local0.log
⇒サービスを再起動したところ、
/var/log/sv の下にlocal0.logが作成されました。
再起動は特にエラーはありませんでした。
#service rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]
■設定(サーバB)
rsyslog設定ファイル(/etc/rsyslog.conf)
※設定箇所だけ抜粋
# ### 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
local0.info @@x.x.x.x:514
上記以外の設定はデフォルトのままにしております。
⇒rsyslogを再起動しましたところ、エラーなく再起動されました。
#service rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]
■動作テスト
サーバAにおいて、tail -f /var/log/local0.logした状態で
サーバBから、logger -i -t ABC hoge でテストしましたが、
サーバAにはlogが送信されてきません。
iptables -Lで514/tcpポートを開けていることは確認しました。
tcpwrapperでも、通信の制限をかけていない事も確認しております。
何か設定が足りないのでしょうか。
もしくは設定に間違いがあるのでしょうか。
プロの皆様のアドバイスをお伺いいたしたく、
どうぞよろしくお願い致します。
お礼
ありがとうございます。 local0ではなく、すでに設定されておりますものを使った、意図した設定が出来ました。 ■設定内容 authpriv.* @@サーバA:514 $template Secure_log,"/var/log/svsec/%fromhost%_%$year%%$month%%$day%.log" authpriv.* -?secure_log これで、lsをしたらファイルが出来ている事と、tail -fでもログが記載されることが確認できました。 ありがとうございます。 自分が勉強不足なんですが、local0からlocal7はLinux同士でのrsyslogにはあまり利用しないものなのでしょうか。 ネットワークスイッチとかで、local0からlocal6を使ったやり方は文献がありましたが、自分にはlocal の扱い方がよく分からないのが実情です。 configをみると、local7.*の記載はありますし、検証の中で*.* /var/log/test.logで設定したら、一応サーバBからサーバAにログを記録出来たりしたのですが・・・。 問題は解決しましたが、今後も精進してまいります。 追伸: 唯一、意図しない動きとして、サーバA自身も、認証に関するログがサーバBと同じpathに、別ファイルとして作成されました。 自分のイメージだと、サーバAのログはデフォルトのままで、他のサーバを/var/log/svsecに集めたかったのですが、そこが今後の課題になりそうです。