dポイントプレゼントキャンペーン実施中!

初めまして。

ご教示ください。

はじめての試みで、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でも、通信の制限をかけていない事も確認しております。

何か設定が足りないのでしょうか。
もしくは設定に間違いがあるのでしょうか。

プロの皆様のアドバイスをお伺いいたしたく、
どうぞよろしくお願い致します。

A 回答 (2件)

>今は、/var/log/messages に記録しないで、サーバAのlocal0が優先される設定をどのようにしたらよいのか悩んでおります。



どっちの/var/log/messagesなのかは不明ですが…
/etc/rsyslog.confの下記の行の設定ににより/var/log/messagesに書き込まれているのですから、その辺りの調整でしょうね。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
ファシリティのmailとauthprivとcronを除くinfo以上のプライオリティの場合に/var/log/messagesに書き込む。という指定だったはずです。

http://hagio.org/wiki/index.php/Rsyslog
プロパティベースのフィルタでリモーホスト名でもフィルタできそうですが…
細かい設定はやったことないので不明です。
# セレクタでlocal0.noneでいったん禁止。プロパティベースのフィルタでホスト名など判定して、自ホストなら/var/log/messagesへ…とか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
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に集めたかったのですが、そこが今後の課題になりそうです。

お礼日時:2013/12/30 18:13

>サーバBから、logger -i -t ABC hoge でテストしましたが、


>サーバAにはlogが送信されてきません。

で、サーバBのどこにも記録されていない…んですか?

-pオプションでlocal0.infoを指定する…とかは不要なんでしょうか?
http://linuxjm.sourceforge.jp/html/util-linux/ma …
の例では-pオプション使用していますが。
    • good
    • 0
この回答へのお礼

ご教示ありがとうございます。

サーバBのlogを確認しましたところ、/var/log/messages にlogger の結果が出ておりました。

さらに、-pオプションを使うことで、logger でのテストがサーバAに記録されました。

今は、/var/log/messages に記録しないで、サーバAのlocal0が優先される設定をどのようにしたらよいのか悩んでおります。

お礼日時:2013/12/28 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!