Proč mám pro účely protokolování jádra tři různé nezahrnuté úrovně protokolování mezi /var/log/messages , /var/log/syslog a /var/log/kern.log ?
Nejlepší odpověď
Syslog je standardní protokolovací zařízení. Shromažďuje zprávy různých programů a služeb včetně jádra a ukládá je, v závislosti na nastavení, do hromady souborů protokolu obvykle pod /var/log . V některých nastaveních datových center jsou jich stovky zařízení, z nichž každé má svůj vlastní protokol; syslog přijde vhod i zde. Stačí nastavit vyhrazený server syslog, který shromažďuje všechny jednotlivé protokoly zařízení přes síť. Syslog může také ukládat protokoly do databází a dalších klientů.
Podle mého /etc/syslog.conf , výchozí /var/log/kern.log zachycuje pouze zprávy jádra jakékoli úrovně protokolu; tj. výstup dmesg .
/var/log/messages místo toho se zaměřuje na ukládání hodnotných, neladících a nekritických zpráv. Tento protokol by měl být považován za protokol „obecné aktivity systému“.
/var/log/syslog na oplátku zaznamenává vše, kromě zpráv souvisejících s ověřováním.
Další zajímavé standardní protokoly spravované systémem syslog jsou /var/log/auth.log , /var/log/mail.log .
Aktualizace pro rok 2020
Stále můžete narazit na syslog; ale výchozí hodnoty se změnily.
journald nahradil syslog v poměrně velké části systémů, včetně Ubuntu.
To je relevantní, protože nenajdete /var/log/messages že už často. journald nezapisuje protokoly ve formátu prostého textu – používá svůj vlastní, komprimovaný a částečně ověřený formát.
Hledejte online např. Journalctl cheatsheet nebo si prostudujte man 8 systemd-journald , man 1 journalctl sebe.
Syslog a journald jsou do určité míry vzájemně kompatibilní; můžete mezi nimi přepravovat klády v obou směrech. Nebudete však dostávat protokoly v prostém textu a-la /var/log/messages s journald; a nebudete strukturováni (journalctl -o json-pretty ) a ověřené protokolování pomocí syslog.