Logwatch řeší úkol, který se jinak neřeší vůbec: přečte za vás všechny logy serveru a pošle výtah za den. Nikdo neprochází auth.log a logy webového serveru denně, ale přečíst ráno jeden dopis je proveditelné.

Problém je známý: první dopis přijde na několik set řádků, druhý se prolétne po diagonále, za týden ho pravidlo v poště odloží do zvláštní složky a tím sledování končí. Příčina je téměř vždy ve výchozím nastavení a opraví se to za deset minut.

Instalace a kde měnit nastavení

sudo apt install logwatch

Je důležité, kam psát vlastní hodnoty. Souboru /usr/share/logwatch/default.conf/logwatch.conf se nesmí dotýkat — přepíše se při aktualizaci balíčku. Váš soubor je /etc/logwatch/conf/logwatch.conf. Může být prázdný, stačí do něj přidat jen to, co měníte.

Output = mail
Format = html
MailTo = admin@example.com
Detail = Low
Range = yesterday

O všem rozhoduje úroveň podrobnosti

Detail přijímá hodnoty od 0 do 10 nebo slova Low, Med, High. Rozdíl je obrovský: při High zpráva zahrnuje každé spojení a každý požadavek, při Low jen souhrnná čísla a odchylky.

Praxe je taková: obecná úroveň Low a podrobnost se bodově zvyšuje pro ty služby, které vás skutečně zajímají. Nastavení jednotlivých služeb se ukládá do /etc/logwatch/conf/services/ — například soubor sshd.conf s řádkem Detail = High.

Orientační bod pro kontrolu: zpráva se má vejít zhruba na obrazovku až obrazovku a půl. Vše delší se přestane číst — ne z lenosti, ale proto, že mezi třemi sty řádky rutiny není odchylka vidět.

Podívat se na výsledek bez čekání na ráno:

sudo logwatch --detail Low --range today --output stdout

Prázdná sekce SSH na Debianu 12

Zvláštní past čerstvých systémů. Logwatch čte textové soubory v /var/log, a Debian 12 i Ubuntu 24.04 už standardně neinstalují rsyslog — soubor /var/log/auth.log prostě neexistuje, vše jde do žurnálu systemd. Zpráva přitom chodí bez potíží, ale nejpotřebnější sekce — o přihlášeních přes SSH — je prázdná nebo chybí.

Kontrola zabere vteřinu:

ls -l /var/log/auth.log

Soubor není — buď nainstalujeme rsyslog, nebo přijmeme, že Logwatch na tomto stroji ukazuje neúplný obraz. Prázdnou sekci lze snadno vzít jako „nic se nedělo“ a to je nejnebezpečnější důsledek.

Kam mizí dopis

Druhá častá příčina toho, že „zprávy nechodí“: na serveru není nastaveno odesílání pošty. Logwatch předá dopis systémovému agentovi, ten ho nikam neodešle a dopis usedne v lokální schránce roota, kam nikdo nenahlíží:

sudo cat /var/mail/root | tail -50

Varianty jsou dvě. Buď nastavit odesílání přes externí SMTP relay, nebo poštu nepoužívat vůbec a zprávu ukládat do souboru:

Output = file
Filename = /var/log/logwatch/report.txt

Druhá varianta je poctivější: dopis, který nemá kdo doručit, vytváří iluzi sledování, kdežto soubor na disku lze aspoň otevřít.

Co ve zprávě číst

Sestupně podle užitečnosti:

  • sshd. Úspěšná přihlášení — kdo a odkud. Právě úspěšná, ne tisíce neúspěšných: neúspěšná jsou pozadí, kdežto přihlášení z neznámé adresy vyžaduje vysvětlení;
  • sudo a pam_unix. Kdo zvyšoval oprávnění a zakládal uživatele;
  • Disk Space. Jeden řádek, který předem varuje před zaplněním disku;
  • cron. Nově se objevivší úlohy a ty, které skončily chybou;
  • http. Skok odpovědí 404 obvykle znamená hledání cest, skok 500 — že se něco rozbilo u vás;
  • postfix, pokud server odesílá poštu: růst odchozí fronty je typický příznak toho, že se server začal používat k rozesílání.

Meze použitelnosti

Logwatch je souhrn za uplynulý den, ne upozornění. Nevzbudí vás v noci a z definice se opožďuje: spouští se denní úlohou k ránu a rozebírá včerejšek. Pro „něco se děje právě teď“ se nehodí a ani k tomu není určen.

Jeho síla je jinde — ukazuje tvar běžného dne. Po měsíci čtení víte, kolik máte v normálu neúspěšných přihlášení, kolik požadavků chodí na web a kolik dopisů odchází; a když se jedno z těch čísel změní na dvojnásobek, je to vidět hned, bez jakýchkoli prahů a pravidel. Právě proto má smysl držet zprávu tam, kde padne do oka, a ne v poštovní složce. Jak to vypadá na stránce, ukazuje ukázka níže.