haproxy ログメッセージを /var/log/syslog から削除する方法

haproxy ログメッセージを /var/log/syslog から削除する方法

私は、以下のヒントを参考にして、rsyslogd経由でhaproxyのログ記録を設定しました。この記事すべて正常に動作しているようです。ログ ファイルにログ メッセージが記録されます。

ただし、haproxy からのすべてのログ メッセージも に表示されます/var/log/syslog。つまり、サーバーが稼働すると、haproxy ログ メッセージでいっぱいになるため、syslog はまったく役に立たなくなります。

からのメッセージをフィルタリングしたいと思います/var/log/syslog。rsyslogd のドキュメントを確認した後、次のようにファイルを変更してみました/etc/rsyslog.d/50-default.conf

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

私は単にその;haproxy.none部分を追加しました。rsyslogd を再起動した後、変更を元に戻すまで完全に動作しなくなりました。

何が間違っているのでしょうか?

答え1

以下の操作を実行すると、他のログに記録されないようにすることもできます。

local0.*                        -/var/log/haproxy.log
& ~

& ~上記の行に一致したものを、残りのルールの他の場所に配置しないことを意味します。

答え2

rsyslogdのバージョン7では の使用は& ~非推奨となり、& stop代わりに を使用することが推奨されています。詳細については、このセクションをご覧ください。v7互換性ページ

omruleset および破棄 (~) アクションは非推奨です

どちらも引き続き機能しますが、より優れた代替手段に置き換えられました。

破棄アクション (チルダ文字) は、RainerScript の「stop」ディレクティブに置き換えられました。これはより直感的であり、パフォーマンスが若干向上すると考えられています。

omruleset モジュールは、RainerScript の「call」ディレクティブに置き換えられました。call を使用すると、サブルーチンのようにルールセットを実行でき、omruleset よりもはるかに高いパフォーマンスで実行できます。omruleset は非同期キューから実行できることに注意してください。これは、望ましい効果というよりは副作用であり、call ステートメントではサポートされていません。その効果が必要な場合は、呼び出されたルールセット アクションを非同期で実行することで簡単にシミュレートできます (いずれにしても、これがこれを処理する正しい方法です)。

非推奨のモジュールは、使用時に警告メッセージを発行することに注意してください。警告メッセージは、その構造が非推奨であることと、どのステートメントが代わりに使用されるかを示します。これは操作には影響しません。両方のモジュールは引き続き完全に動作し、v7 の期間内に削除されることはありません。

したがって、HAProxy の場合は代わりに次のようになります。

$ more /etc/rsyslog.d/haproxy.conf
local2.*    /var/log/haproxy.log
& stop

動作の仕組みとしては、 は& stoprsyslogd に、この時点までに一致したルールに一致する追加のメッセージをすべて破棄するように指示します。 このルールが早期に取得されることを保証するには、ファイル名を から に変更でき/etc/rsyslog.d/haproxy.confます/etc/rsyslog.d/00-haproxy.conf

答え3

わかりました。私のはこんな/etc/rsyslog.d/20-haproxy.conf感じです:

$ModLoad imudp
$UDPServerRun 514

local0.* -/var/log/haproxy_0.log
local1.* -/var/log/haproxy_1.log

の行を50-default.conf次のように変更しました:

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

そして今、それは私が望んでいることをやっているようです。

答え4

ファイルの順序を変えたくないので、代わりにlocal0.noneを追加します。行エントリ。設定は次のようになります。

*.info;mail.none;authpriv.none;cron.none;local2.none     /var/log/messages

local2.*                                                 /var/log/haproxy.log

(CentOS 7でテスト済み)

お役に立てれば幸いです!

関連情報