GNU/Linux >> Znalost Linux >  >> Linux

„imuxsock ztratil # zprávy z pid # kvůli omezení rychlosti“ – omezení rychlosti rsyslog v Linuxu

Kvůli omezení rychlosti pomocí rsyslog se ve /var/log/messages zobrazuje mnoho vynechaných zpráv:

...
Nov 7 14:23:14 thx1138 rsyslogd-2177: imuxsock lost 516 messages from pid 159386 due to rate-limiting
Nov 7 14:23:15 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 159386 due to rate-limiting
Nov 7 14:23:20 thx1138 rsyslogd-2177: imuxsock lost 512 messages from pid 159386 due to rate-limiting
Nov 7 14:23:21 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 159386 due to rate-limiting
Nov 7 14:29:50 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 238300 due to rate-limiting
...

Toto je očekávané chování. rsyslogd funguje správně. Záznamy týkající se zahozených zpráv jsou normální záznamy. Ve výchozím nastavení rsyslogd přijímá 200 zpráv za 5 sekund z jednoho procesu. Pokud je tato prahová hodnota překročena, zprávy budou zahozeny. Takže v případě níže uvedeného příkladu proces 77845 odeslal asi 436 zpráv za 5 sekund. Kvůli omezení rychlosti rsyslogd vypustil 236 z nich.

...
Nov 6 15:46:48 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 77845 due to rate-limiting
Nov 6 15:46:52 thx1138 rsyslogd-2177: imuxsock lost 236 messages from pid 77845 due to rate-limiting PID 77845
...

Nastavení následujících parametrů s hodnotami uvedenými níže deaktivuje omezení rychlosti a žádné zprávy nebudou odstraněny.

# vi /etc/rsyslog.conf
$SystemLogRateLimitInterval 0
$SystemLogRateLimitBurst 0
$IMUXSockRateLimitBurst 0
$IMUXSockRateLimitInterval 0
$IMUXSockRateLimitSeverity 7
...

Dá se očekávat, že každý záznam zpracovaný rsyslog bude vložen do souboru zpráv. Toto není ten případ. Soubor rsyslog.conf soubor má sekci nazvanou PRAVIDLA který určuje, kam rsyslog zapisuje zprávy. Ve výchozím nastavení se do souboru zpráv zapisují pouze zprávy jádra, informační zprávy a nouzové zprávy. Jiné zprávy se zapisují do jiných souborů. Například zprávy týkající se ověření uživatele jdou do /var/log/secure a zprávy týkající se pošty jdou na /var/log/maillog .

Protože rsyslog zapisuje zprávy do různých souborů na základě jejich typu, vypnutí omezení rychlosti způsobí, že všechny zprávy budou zapsány do jejich určených souborů protokolu, nejen do souboru zpráv. Můžete to vidět v akci takto:

1. Vytvořte zálohu souboru /etc/rsyslogd.conf soubor.

# cp -p /etc/rsyslog.conf /etc/rsyslog.conf_orig

2. Zakažte omezení rychlosti, jak je podrobně uvedeno v příspěvku níže, v závislosti na verzi vašeho operačního systému.

Jak zakázat nebo prodloužit limit rychlosti protokolování systému na CentOS/RHEL 6
Jak zakázat nebo rozšířit limit rychlosti protokolování systému na CentOS/RHEL 7

3. Poznamenejte si velikost souborů protokolu v /var/log:

# ls -la /var/log

4. Restartujte rsyslog.

# service rsyslog restart       ### CentOS/RHEL 6
# systemctl restart rsyslog       ### CentOS/RHEL 7

5. Počkejte asi 1 hodinu.

6. Vraťte zpět změny provedené v kroku 2.

7. Restartujte rsyslog.

# service rsyslog restart       ### CentOS/RHEL 6
# systemctl restart rsyslog       ### CentOS/RHEL 7

8. Poznamenejte si velikosti souborů protokolu v /var/log.

Výsledkem toho bude, že:

  • Velikost jednoho nebo více souborů protokolu jiných než soubor zpráv ve /var/log značně vzrostla.
  • Během doby, kdy bylo zakázáno omezení rychlosti, se četnost záznamů v jednom nebo více souborech protokolu zvýšila.
  • V souboru zpráv bylo vidět jen málo záznamů, pokud vůbec nějaké. Jak je vidět v tomto příkladu, zprávy byly zahazovány, dokud nebylo deaktivováno omezení rychlosti a rsyslog restartován ve 14:30. Mezi 14:30 a 15:33 je pouze jeden vstup pro rngd ve 14:44. Po povolení omezení rychlosti začnou vyřazené zprávy znovu.
Nov 7 14:23:21 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 159386 due to rate-limiting
Nov 7 14:29:50 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 238300 due to rate-limiting
Nov 7 14:30:02 thx1138 kernel: Kernel logging (proc) stopped.
Nov 7 14:30:02 thx1138 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="13439" x-info="http://www.rsyslog.com"] exiting on signal 15.
Nov 7 14:30:02 thx1138 kernel: imklog 5.8.10, log source = /proc/kmsg started.
Nov 7 14:30:02 thx1138 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="242406" x-info="http://www.rsyslog.com"] start
Nov 7 14:44:15 thx1138 rngd[13453]: read error
Nov 7 15:32:58 thx1138 kernel: Kernel logging (proc) stopped.
Nov 7 15:32:58 thx1138 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="242406" x-info="http://www.rsyslog.com"] exiting on signal 15.
Nov 7 15:32:59 thx1138 kernel: imklog 5.8.10, log source = /proc/kmsg started.
Nov 7 15:32:59 thx1138 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="175797" x-info="http://www.rsyslog.com"] start
Nov 7 15:34:25 thx1138 rsyslogd-2177: imuxsock begins to drop messages from pid 179680 due to rate-limiting
Nov 7 15:35:56 thx1138 rsyslogd-2177: imuxsock lost 193 messages from pid 179680 due to rate-limiting

Z výše uvedeného tedy můžeme vidět, že deaktivace omezení rychlosti skutečně funguje, jen ne tak, jak by se dalo očekávat, že bude fungovat. Pokud jde o omezení rychlosti, je třeba vzít v úvahu následující:

1. Náhodný a řídký shluk zpráv nemusí nutně znamenat problém. Může však být vyšetřeno trvalé opakování vynechaných zpráv. Pokud se zahazované zprávy vyskytují často a dochází k velkému počtu zahazovaných, pak je potřeba prozkoumat, co tyto zprávy jsou (informační nebo skutečná upozornění na chyby). Pomocí výše uvedeného testu můžete zjistit, kam zprávy směřují, a poté zkontrolovat protokoly v /var/log, abyste zjistili, zda problém skutečně existuje, nebo si poznamenejte.

2. Buďte opatrní při změně nastavení rychlostního limitu v rsyslogd.conf nebo při úplném vypnutí omezení rychlosti. Čím méně zpráv je zahozeno, tím více zpracování je potřeba k jejich protokolování. Příliš mnoho zpráv může způsobit problémy s výkonem a za extrémních okolností dokonce i vystěhování.


Linux
  1. Linux – rozumíte přihlašování v Linuxu?

  2. Linux – Jak spustit bootloader z Linuxu?

  3. Pochopení akcí rsyslog

  1. Maximální PID v Linuxu

  2. linuxový obrázek ze schránky

  3. Název procesu z jeho pid v linuxu

  1. Odstranění .rbenv z Linuxu

  2. Mohu zavést Linux z VHD?

  3. příkaz najít z PID