2015-10-09 35 views
7

CentOS 7(CentOS Linuxリリース7.1.1503(コア))でrsyslog(rsyslog-7.4.7-7.el7_0.x86_64)を使用しています。ロギングにsyslogフレームワークを使用しているアプリケーションがいくつかあります。私たちにはたくさんのログがあります。ピーク時には、1秒で最大50000ログになる可能性があります。 私たちのシステムはCentOS 6.2(とrsyslog 5.8)で以前に動作していましたが、私たちは決して落ちることはありませんでした。検索をした後、レート制限があることがわかりました。/var/log/messagesの「imjournal:レート制限によるメッセージのドロップを開始する」、「imjournal:130886レート制限のためにメッセージが失われる」などのメッセージが表示されます。私たちは、成功することなくそれを無効にしたり調整したりするさまざまな方法を試しました。私たちは次のことを試みました。ある/etc/rsyslog.confCentOS 7 rsyslog C/C++モジュールのデバッグログ

$ModLoad imjournal # provides access to the systemd journal 
$imjournalRatelimitInterval 1 
$imjournalRatelimitBurst 50000 

1)の変更点は以下のようrsyslog.confからいくつかの他の情報。ここで何も変更していない

$OmitLocalLogging on 
$IMJournalStateFile imjournal.state 

また、imuxsockでレート制限があることがわかりました。しかし、我々はOmitLocalLoggingが

Storage=auto 
RateLimitInterval=1s 
RateLimitBurst=100000 

私たちのアプリケーションは、Javaのモジュールを(SLF4JとLOG4Jを使用して)持って/etc/systemd/journald.confで

2)変更にあるときには使用されないことを理解していることC/C++のモジュール(syslog()呼び出しを使用) C/C++モジュールでは、ほとんどの場合DEBUGログがありません。しかし、JavaモジュールのDEBUGログは常に明らかです。
systemdのバージョンは "systemd-208-20.el7.x86_64"です。アプリケーションとrsyslogdは同じマシン上にあります。

+0

この解決方法はありますか?私もこの問題があります。 – Trenin

答えて

10

CentOS 7でsystemd(219-19)の最新のアップデートでは、journaldやIMUXSockによるレート制限なしで、私たちのログを再び有効にする唯一の方法は以下の設定変更を使用していました。これも減少しましたが、journaldによる過剰なCPU消費を完全に排除しませんでした。

$IMUXSockRateLimitInterval 0 
$IMJournalRatelimitInterval 0 

/etc/systemd/journald.confで以下を設定します。:

は '$ MODLOADのimuxsock' と 'imjournal $ MODLOAD' の後にある/etc/rsyslog.confするには、以下の追加します以前は、この最後の更新トンへ

systemctl restart systemd-journald.service 
systemctl restart rsyslog.service 

Storage=volatile 
Compress=no 
RateLimitInterval=0 
MaxRetentionSec=5s 

再起動して変更をjournaldピックアップにrsyslogのこれを解決するために/etc/rsyslog.confの '$ ModLoad imjournal'をコメントアウトすることはできますが、これはもう動作しません。

+0

ありがとう、私はまだ高すぎるCPU使用量を知らなかった。それは与えることを続けます! –

関連する問題