web-dev-qa-db-ja.com

syslogへのpostfixログ情報の送信を停止するにはどうすればよいですか?

Ubuntu 10.04.4 LTSを実行しているvpsがあり、phpの問題の解決策を見つけようとしているときに、syslogシステムの問題のように見えることに気づきました-よくわかりません。

Syslog.confファイルは次のようになります。

    auth,authpriv.*      -/var/log/auth.log
*.*;auth,authpriv.none  -/var/log/syslog
#cron.*          -/var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/opt/psa/var/log/maillog
user.*              -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info           -/var/log/mail.info
mail.warning            -/var/log/mail.warn
mail.err         -/var/log/mail.err


# Logging for INN news system
#
news.crit        -/var/log/news/news.crit
news.err         -/var/log/news/news.err
news.notice         -/var/log/news/news.notice

#
# Some `catch-all' logfiles.
#
*.=debug;\
    auth,authpriv.none;\
    news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warning;\
    auth,authpriv.none;\
    cron,daemon.none;\
    mail,news.none      -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg             *

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
#   news.=crit;news.=err;news.=notice;\
#   *.=debug;*.=info;\
#   *.=notice;*.=warning    /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
# you must invoke `xconsole' with the `-file' option:
# 
#    $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
#      busy site..
#
daemon.*;mail.*;\
    news.err;\
    *.=debug;*.=info;\
    *.=notice;*.=warning    |/dev/xconsole

また、/ var/log/syslogファイルには、次のような多数のエントリが含まれています。

    Jun 10 04:04:00 lvps109-104-93-171 postfix/qmgr[688]: 814E0676E997: removed
Jun 10 04:04:01 lvps109-104-93-171 postfix/smtpd[11105]: connect from mail-we0-f196.google.com[74.125.82.196]

/var/log/mail.info、/var/log/mail.warn、および/var/log/mail.errは、上記の構成で関連メッセージを送信しているにもかかわらず、すべて空です。

'mail.* -/var/log/mail.log'をconfファイルに追加して、smtpおよびqmgrメッセージがそこで繰り返されるかどうかを確認しようとしましたが、そのログファイルも空のままです。

'*.*;auth,authpriv.none -/var/log/syslog'を*.*;auth,authpriv.none;mail.none -/var/log/syslogに変更して、/ var/log/syslogに送信されるpostfixメッセージを停止できるかどうかを確認しましたが、それらは引き続き送信されます。

これらのpostfixメッセージをmail.logファイルにリダイレクトするために必要なコマンドを見つけるために年齢を検索してきましたが、見つかった投稿には.info、.err、および.warnメッセージしか記載されていないようです。私が知ることができた限り、syslogデーモンはそれらを関連ファイルに転送しているはずです。

だから私の質問は:postfixメッセージを/ var/log/syslogからリダイレクトするにはどうすればよいですか? .warn、.info、および.errメッセージが本来あるべき場所に移動しないのはなぜですか?

助けてくれてありがとう-感謝します.

7
Paulioliolio

私はあなたがrsyslogを使っていると思いますか?適切なファイルに書き込んだ後、メッセージの処理を停止するようにrsyslogに指示する必要があります。これは& ~で実行できます。

mail.*                          -/var/log/mail.info
& ~

これらの行を入れてくださいbefore*.*を含む行。

完了したら、syslogを再起動します。

6
SamK

上記のように、TraceElementsは以下が解決策の一部であると述べましたが、最初の行は私には直観に反しているようです:

*.*;mail,auth,authpriv.none     /var/log/syslog

その行は何をしますか?/var/log/syslogにメールメッセージを追加するように見えますが、ここでは反対のことを試みています。ああ、それはおそらくmail.noneに拡張されますか?しかし、なぜOPが次の解決策を試みてもうまくいかなかったのでしょうか。あれは:

*.*;auth,authpriv.none;mail.none -/var/log/syslog

しかし、彼は言った、「/ var/log/syslogに入るpostfixメッセージを停止できるかどうかを確認するために、それらは引き続きそこに行きます」。

それは単に彼/彼女の2番目のセミコロンがそれをすべて汚しているということですか?

とにかく、TraceElementのソリューションは、Ubuntu 16.04.2 LTSで動作しています。

2
Will

これは、Ubuntu 14.04.1 LTSでメールアイテムをsyslogから除外するために私が機能したものです。

*.*;mail,auth,authpriv.none     /var/log/syslog

そして、私はこれでメールログをエラーと非エラーに分け、これも機能しています:

mail.debug;mail.!err    /var/log/mail.log
mail.err        /var/log/mail.err

基本的に、.debugレベル以上のものはすべてmail.logに記録されますが、.errレベル以上のものはmail.errファイルに記録されます。

メールログファイルが空になる原因として考えられる唯一のことは、ファイルパスの前に-ログをすぐに書き込まないことに関係があると私が考えることです。

参照: http://www.rsyslog.com/doc/rsyslog_conf_filter.html の「セレクター」セクション

2
TraceElements

この行:

*.*;auth,authpriv.none  -/var/log/syslog

ログすべての機能すべてのレベルから/ var/log/syslogへのログを意味しますが、authprivが唯一の例外です。明らかにこれにはメールが含まれます。

また、ファイルをすぐに同期しないようにsyslogに指示しています。これは、メールログの行が少ない場合、メールログファイルにすぐに書き込まれない場合があることを意味します。ただし、syslogファイルには非常に多くのメッセージが含まれるため、以前に書き込まれる可能性があります。

また、ファイルに変更を加えた後は、ログサービスを再起動する必要があります。通常、これは、syslogdプロセスのPIDにHUPを送信するだけで行われます。それが終わったら、/ var/log/syslogを調べて、解析できなかったsyslogd.confの行に関するメッセージを探します。

1
Jenny D