
私は、以下のヒントを参考にして、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
動作の仕組みとしては、 は& stop
rsyslogd に、この時点までに一致したルールに一致する追加のメッセージをすべて破棄するように指示します。 このルールが早期に取得されることを保証するには、ファイル名を から に変更でき/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でテスト済み)
お役に立てれば幸いです!