2015-10-09 15 views
7

Sto utilizzando rsyslog (rsyslog-7.4.7-7.el7_0.x86_64) su CentOS 7 (versione CentOS Linux 7.1.1503 (Core)). Abbiamo alcune applicazioni su di esso che utilizza il framework syslog per la registrazione. Abbiamo molti registri. Al massimo, può raggiungere fino a 50000 log in un secondo. Il nostro sistema era in esecuzione in precedenza su CentOS 6.2 (e rsyslog 5.8) e non abbiamo mai osservato alcun calo. Dopo aver fatto qualche ricerca, abbiamo scoperto che c'è un limite di velocità. Riceviamo messaggi come "imjournal: inizia a rilasciare messaggi a causa della limitazione della velocità" in/var/log/messages e poi "imjournal: 130886 messaggi persi a causa della limitazione della velocità". Abbiamo provato diversi modi per disattivarlo o ottimizzarlo senza successo. Abbiamo provato quanto segue.Ceppi di DEBUG CentOS 7 rsyslog rilasciati per moduli C/C++

1) Variazioni /etc/rsyslog.conf

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

qualche altra informazione da rsyslog.conf come segue. non ha cambiato nulla qui

$OmitLocalLogging on 
$IMJournalStateFile imjournal.state 

Abbiamo anche visto che v'è una certa limitazione della velocità con imuxsock; ma che ci rendiamo conto che questo non verrà utilizzato quando OmitLocalLogging è ON

2) Variazione /etc/systemd/journald.conf

Storage=auto 
RateLimitInterval=1s 
RateLimitBurst=100000 

La nostra applicazione ha moduli in Java (utilizzando SLF4J e Log4J) e moduli in C/C++ (usando la chiamata syslog()). Per i moduli C/C++, mancano i registri di DEBUG per la maggior parte del tempo. Ma i registri di DEBUG dei moduli Java sono apparentemente soddisfacenti.
La versione di systemd è "systemd-208-20.el7.x86_64". L'applicazione e rsyslogd sono sulla stessa macchina.

+0

Hai mai trovato una soluzione per questo? Ho anche questo problema. – Trenin

risposta

10

Con l'ultimo aggiornamento a systemd (219-19) su CentOS 7, l'unico modo in cui siamo riusciti a ripristinare il funzionamento della registrazione, senza alcuna limitazione della velocità di journalnald o IMUXSock, stava utilizzando le seguenti modifiche di configurazione. Anche questo è diminuito, ma non ha eliminato completamente l'eccessivo consumo di CPU da parte di journald.

Aggiungere il seguente alla /etc/rsyslog.conf dopo '$ ModLoad imuxsock' e '$ ModLoad imjournal':

$IMUXSockRateLimitInterval 0 
$IMJournalRatelimitInterval 0 

impostare quanto segue in /etc/systemd/journald.conf:

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

Riavvia journald e rsyslog di pick-up le modifiche con:

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

prima di questo ultimo aggiornamento t o systemd, si può commentare '$ ModLoad imjournal' in /etc/rsyslog.conf per risolvere questo problema, ma questo non funziona più.

+0

grazie, non ero nemmeno a conoscenza di utilizzo della cpu troppo alto ancora. continua a dare! –