rsyslogでログが遠隔で取得できない

このQ&Aのポイント
  • rsyslogを使い、ログの一元管理を行おうとしていますが、ログの収集がうまくいきません。
  • サーバBからサーバAにログを送信する設定を行いましたが、ログが収集されません。
  • 設定やポートの確認などを行いましたが、問題が解決しない状況です。
回答を見る
  • ベストアンサー

rsyslogでログが遠隔で取得できない。

初めまして。 ご教示ください。 はじめての試みで、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でも、通信の制限をかけていない事も確認しております。 何か設定が足りないのでしょうか。 もしくは設定に間違いがあるのでしょうか。 プロの皆様のアドバイスをお伺いいたしたく、 どうぞよろしくお願い致します。

noname#206592
noname#206592

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.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へ…とか?

noname#206592
質問者

お礼

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

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>サーバBから、logger -i -t ABC hoge でテストしましたが、 >サーバAにはlogが送信されてきません。 で、サーバBのどこにも記録されていない…んですか? -pオプションでlocal0.infoを指定する…とかは不要なんでしょうか? http://linuxjm.sourceforge.jp/html/util-linux/man1/logger.1.html の例では-pオプション使用していますが。

noname#206592
質問者

お礼

ご教示ありがとうございます。 サーバBのlogを確認しましたところ、/var/log/messages にlogger の結果が出ておりました。 さらに、-pオプションを使うことで、logger でのテストがサーバAに記録されました。 今は、/var/log/messages に記録しないで、サーバAのlocal0が優先される設定をどのようにしたらよいのか悩んでおります。

関連するQ&A

  • syslogの出力先追加

    syslogの出力先を追加する方法について教えていただきたいです。 使用環境は、Red Hat系のLinuxです。 現状、syslog.confの設定が下記のようになっているため、messagesファイルに syslogが大量に出力され、必要なログを探すのが大変な状態です。 syslog.confの中身 *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog cron.* /var/log/cron *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot.log そこでfacilityのlocal0-7を使用し、syslogに出力するファイルを分散 させようと考えています。 例えば、local0の出力先を追加するのは、syslog.confを下記のように 修正すればよいでしょうか。 (実際に試せばよいのでしょうが、多くの人達が使用している環境のため、  syslogd再起動が出来ない状態です。) messagesの設定 修正前:*.info;mail.none;authpriv.none;cron.none /var/log/messages 修正後:*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages local0の設定 追加:local0.* /var/log/ファイル名 ご回答の方、よろしくお願いします。

  • iptablesでのsyslog

    現在、以下の指定で、パケットの受信をsysylogd経由でロギングしています。 iptables -A INPUT -i eth0 -p tcp --syn -j LOG --log-tcp-options --log-prefix 'iptables[SYN]: ' 一ヶ月ほどまえから、これに該当するログが急激に増え、/var/log/messageが読みづらくなってきました。 そこで、iptablesからのログを別のファイルに記録したいと思い、いくつか疑問が生じました。 1.現在、syslogdのどのfacilityで出力されているのでしょうか? *.info;mail.none;authpriv.none;cron.none /var/log/messages に該当しているようなので、mail,authpriv,cromではないことだけは確かです。 2.特定のfacilityでsyslogdに渡すにはどう設定すればよいのでしょうか? また、どのfacilityをしてするのが適切でしょうか?(local0などを使えばよいのでしょうか?) もし、syslogd経由以外でファイルにログを書き出せるようでしたら、それでもかまいません。 よろしくお願いします。

  • /var/log/messagesエラー出力

    Linux初心者です。 初Linuxサーバを構築して、色々とパッケージをインストールしています。 サーバ再起動後に、/var/log/messagesを確認していますが、 [Warning]のエラーの確認は出来たのですが、他にどのような出力があるのかが分からない状況です。 Warning=警告だとすれば、Windowsのように、 ・Info=情報 ・Error=エラー とか、出力されるのでしょか? /var/log/messagesで注意した方がいい文字を教えて頂けないでしょか?

  • messagesログに何も書き込まれなくなりました

    こんにちは。 先日サーバーメンテの際に、誤って/var/log/messagesファイルを削除してしまいました。 それでviで/var/log/messagesという空ファイルを作り 権限(600)と所有(root:root)を設定したのですが、 何も書き込まれません。 単にmessagesという空ファイルを作っただけでは いけないのでしょうか。 どなたかご存知の方、messagesに ログが書き込まれるようにする方法をご教授下さい。 宜しくお願い致します。

  • ログ管理

    ftpサーバーのログファイルにログが記載されないトラブルにみまわれております。 /etc/xinetd.d/vsftpd は、 service ftp { ... log_type = SYSLOG local3 ... } と設定しまして、 /etc/syslog.conf には、 ... local3.* /var/log/ftpd.log ... と設定し、 /var/log ディレクトリに、アクセス制限が644の所有者及びグループがrootのファイル ftpd.log を作成しました。 以下の設定で、デーモンとシステムログを以下のように再起動させました。 #service xinetd reload #service syslog reload これで、ftpサーバーにアクセスしたら、/var/log/ftpd.log にログが残ると思ったのですが、ログが記録されません。 上記の手順では不備があるのでしょうか。 問題解決の答えないしヒントを教えてください。

  • syslogからログが出力されなくなりました。

    こんにちは。 昨日よりログの出力が一切されなくなりました。 以下の状況です。 OS:Redhat ES4 カーネル:2.6.9-11 /etc/syslog.conf(デフォルトのまま) *.info;mail.none;・・・ /var/log/messages syslogデーモンの状況 psでの結果 syslogd -m 0 syslog以外のアプリケーションが出力しているログは 各ログに出力されています。 messages以外に、cron、secureなどsyslogが担当しているログが全て出力されません。 ログローテーションは使用しており、指定した日時に0バイトのままローテーションされています。 わかる方お願いします。

  • Atermのログについて

    ADSL50M(e)で、ルータAtermWD701CV(K)を使用してインターネット接続しております。 気になるログがあったので教えて欲しいのですが、『NAT TX-INFO TCP Synchronize Flag OFF ~』というログが頻繁に出ていて困っています。 インターネット等で調べてみたら、外部からポートスキャンされている可能性のあるログだということがわかったのですが、わたしの場合、送信元のIPアドレスの部分が、ローカルIPつまり内側から送信されているようなのです。ちなみにそのローカルIPの機器は無線のルータです。 タイミングとしては、Atermを再起動したり、IPアドレスを手動で再取得した際に、一連のPPPの処理が終わったあと、必ずこのログが記録されます。 以下のようなログが20個ぐらい並びます。 2007/05/28 06:16:12 NAT TX-INFO TCP Synchronize Flag OFF : TCP 192.168.0.30 : 1441 > 68.90.63.92 : 38829 (IP-PORT=6) 2007/05/28 06:16:14 NAT TX-INFO TCP Synchronize Flag OFF : TCP 192.168.0.30 : 1455 > 71.76.203.153 : 6348 (IP-PORT=6) 2007/05/28 06:16:15 NAT TX-INFO TCP Synchronize Flag OFF : TCP 192.168.0.30 : 1449 > 201.95.43.38 : 43703 (IP-PORT=6) 詳細をご存知の方、ご教授願います。

  • /var/log/messages出力形式について

    お世話になっております。 現在、/var/log/messagesを対象とした監視導入を計画中です。 通常、エラー等のステータスを示すキーワードとなる priority(notice,warning,err,error,crit,critical,alert,emerg)の各文字列を 監視ソフトウェアで検知対象とする事を検討しています。 そこでご質問になりますが、実際にsystemトラブルが発生した場合は、 そもそもpriorityは、/var/log/messages内にどのように出力されるものでしょうか? 当方、/var/log/messagesログの標準的な出力形式は、 以下内容となる程度しか認識がありません。 <日付> <時間> <ホスト名> <プログラム名> <ログメッセージ> 実際の監視対象OS上では、過去にwarningとして以下2パターンの 出力のみがありました。 Aパターン ホスト名直後にコロンで区切られた箇所がある(Warningの直後はコロンで区切られる) ・Jan 1 00:00:01 host001 kernel: bonding: Warning: messagexxx Bパターン ホスト名直後に(プロセスID?を含む)プログラム名が記され、 コロンで区切られた箇所がある(WARNINGの直後はコロンで区切られる) ・Jan 1 00:00:01 host001 avahi-daemon[4079]: WARNING: messagexxx これらの内容から、全てのpriorityの出力形式は、以下の通りと考慮しますが、 間違いないものでしょうか? [メッセージ+半角ブランク+priorityのいずれか+直後にコロン+半角ブランク+メッセージ] === 環境) ・OS: RedHat Enterprise Linux 5.4 ・syslogデーモン設定はデフォルト設定(syslog-ng等へのカスタマイズなし) syslog.conf内の記述は、以下の通りです。 デフォルトの設定です。 *info;mail.none;authpriv.none;cron.none /var/log/messages authpriv. * /var/log/secure mail. * /var/log/maillog cron. * /var/log/cron *. emerg * uucp, news. crit /var/log/spooler local7. * /var/log/boot.log [authprivとcronを除いた全てのfacilityでinfo以上のメッセージを /var/log/messagesに出力する(デフォルト設定)]

  • qpopper のログについて教えてください

    qpopper のログについて教えてください。 /var/log/messages に 1 時間ごとに下記の様なメッセージが出力されています。 <messages> Jul 7 02:42:19 host qpopper[1088]: Stats: user 0 0 0 0 aaa.aaa.aaa.aaa aaa.aaa.aaa.aaa Jul 7 03:42:30 host qpopper[1613]: Stats: user 0 0 2 4870 aaa.aaa.aaa.aaa aaa.aaa.aaa.aaa Jul 7 04:43:11 host qpopper[1743]: Stats: user 0 0 2 4894 aaa.aaa.aaa.aaa aaa.aaa.aaa.aaa Jul 7 05:42:51 host qpopper[1874]: Stats: user 0 0 2 4894 bbb.bbb.bbb.bbb bbb.bbb.bbb.bbb Jul 7 06:42:36 host qpopper[2000]: Stats: user 0 0 2 4894 bbb.bbb.bbb.bbb bbb.bbb.bbb.bbb Jul 7 07:43:06 host qpopper[2125]: Stats: user 0 0 2 4894 bbb.bbb.bbb.bbb bbb.bbb.bbb.bbb Jul 7 08:43:08 host qpopper[2694]: Stats: user 0 0 2 4894 aaa.aaa.aaa.aaa aaa.aaa.aaa.aaa 1. なぜこの出力がされているのでしょうか。 (user は、私のユーザ名で、ホストは怪しい海外とかではありません) 2. syslog.conf で qpopper.log に出力するようにしているのに、 なぜ messages に出力されてしまっているのでしょうか。 (qpopper.log にも同じ出力がされています) <syslog.conf> *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages !qpopper *.* /var/log/qpopper.log <inetd.conf> pop3 stream tcp nowait/0/3 root /usr/local/libexec/qpopper qpopper -s <環境> FreeBSD 6.2R qpopper-4.0.9_1 宜しくお願い致します。

  • Log4Jではログを改行できない?

    お世話になっております。 ログ出力用として Log4J を利用しているのですが、 1つのログメソッドでログ内容を改行することはできないのでしょうか? 以下のコードにおいて、改行コードが半角スペースに変換されてログファイルに出力されてしまいます。 ※コードは省略しています。 import org.apache.log4j.Logger; protected static final Logger logger = Logger.getLogger(X.class.getName(), new Factoty()); logger.info(new StringBuilder() .append("xxxx").append("\r\n") .append("yyyy") .toString()); 【出力結果】 xxxx yyyy テキストエディタで検索をかけても、「xxxx」と「yyyy」の間は「半角スペース」で一致します。 環境は WindowsXP です。 ご存知のかたがいらっしゃればご教示お願いいたします。

    • ベストアンサー
    • Java