2015-10-09 10 views
7

Ich verwende rsyslog (rsyslog-7.4.7-7.el7_0.x86_64) auf CentOS 7 (CentOS Linux Release 7.1.1503 (Core)). Wir haben einige Anwendungen, die Syslog-Framework für die Protokollierung verwendet. Wir haben viele Protokolle. In der Spitze kann es bis zu 50000 Logs pro Sekunde sein. Unser System lief früher auf CentOS 6.2 (und rsyslog 5.8) und wir haben nie einen Abfall beobachtet. Nach einer Suche haben wir festgestellt, dass die Rate limitiert ist. Wir erhalten Nachrichten wie "imjournal: fange an, Nachrichten aufgrund der Ratenbegrenzung fallen zu lassen" in/var/log/messages und dann "imjournal: 130886 Nachrichten verloren wegen der Ratenbegrenzung". Wir haben verschiedene Möglichkeiten ausprobiert, um sie ohne Erfolg zu deaktivieren oder zu tunen. Wir haben folgendes versucht.CentOS 7 rsyslog DEBUG-Logs fallen für C/C++ Module

1) Änderungen in /etc/rsyslog.conf

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

Einige andere Informationen von rsyslog.conf wie folgt. Habe nichts hier geändert

$OmitLocalLogging on 
$IMJournalStateFile imjournal.state 

Wir haben auch gesehen, dass es eine Rate-Begrenzung mit imuxsock gibt; aber, dass wir verstehen, dass das wird nicht verwendet werden, wenn OmitLocalLogging ON ist

2) Änderungen in /etc/systemd/journald.conf

Storage=auto 
RateLimitInterval=1s 
RateLimitBurst=100000 

Unsere Anwendung hat Module in Java (mit SLF4J und LOG4J) und Module in C/C++ (mit syslog() Aufruf). Bei den C/C++ - Modulen fehlen die DEBUG-Protokolle meistens. Aber DEBUG Logs von Java Modulen sind anscheinend immer in Ordnung.
Version von Systemd ist "Systemd-208-20.el7.x86_64". Die Anwendung und rsyslogd befinden sich auf demselben Computer.

+0

Haben Sie jemals eine Lösung dafür gefunden? Ich habe dieses Problem auch. – Trenin

Antwort

10

Mit dem neuesten Update auf Systemd (219-19) auf CentOS 7, war die einzige Möglichkeit, wie wir unsere Protokollierung wieder ohne jordd oder IMUXSock Ratenbegrenzung laufen lassen konnten, die unten beschriebenen Konfigurationsänderungen. Dies hat auch den übermäßigen CPU-Verbrauch von journed verringert, aber nicht vollständig beseitigt.

Fügen Sie die folgenden nach '$ modload imuxsock' /etc/rsyslog.conf und '$ modload imjournal':

$IMUXSockRateLimitInterval 0 
$IMJournalRatelimitInterval 0 

Stellen Sie die folgenden in /etc/systemd/journald.conf:

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

Restart journald und rsyslog zur Abholung der Änderungen mit:

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

Vor dieser letzten Aktualisierung t o systemd, Sie könnten '$ ModLoad imjournal' in /etc/rsyslog.conf auskommentieren, um dies zu beheben, aber das funktioniert nicht mehr.

+0

danke, ich war noch nicht einmal bewusst, zu hohe CPU-Auslastung noch nicht. es gibt weiter! –