analyza maillog

Miroslav BENES miroslav.benes na zdas.cz
Čtvrtek Červenec 21 13:04:21 CEST 2005


>		Přeji pěkný den,
>        pokud mne paměť neklame, je "log" textovým souborem.
>  Není pak jednodušší tento texťák prohnat přes  " grep"  a rouru do 
>jiného texťáku[označen třeba A.txt],  kde budou všechny odkazy pouze na 
> @xxx.cz , a tento texťák [A.txt] přes jiný "grep" a jinou rouru do dalšího 
>texťáku [B.txt] kde budou pouze odkazy na pepa.novak na xxx.cz 
>
>Pokud to v texťáku B.txt nenajdete, tak si projedete A.txt kde to snad 
>bude:-) .
>

To bohužel nestačí.
Malý příklad z praxe : Odesílal jsem dotaz do konference (začátek tohoto 
vlákna). Zkusím o něm najít údaje.
Vím, že v logu bude dnešní datum, vím aspoň přibližně hodinu. Hledám 
tedy řádky, kde bude následující text :

"from=miroslav.benes na xxx.cz"
(od některých poštovních klientů se ten text vyskytuje ve tvaru 
"from=<pepa.novak na xxx.cz>", to ale v toto chvíli nebudeme řešit).


Řádek z logu který zadaným podmínkám odpovídá je tady :

Jul 21 10:16:28 smtpgw sendmail[2024]: KAA02024: 
from=miroslav.benes na xxx.cz, size=2059, class=0, pri=32059, nrcpts=1, 
msgid=<42DF59DB.1070009 na zdas.cz>, bodytype=8BITMIME, relay=root na localhost


Z něho vyčtu, kdo je odesilatelem (to jsem ale už zadával do vyhledávací 
podmínky) a třeba i docela užitečnou informaci o velikosti (zde cca 2 kB).
Po tomto filtrování ale nevidím, komu byla zpráva odeslána ani jak to 
dopadlo. Na to si musím z nalezeného řádku vyzobnout ID zprávy (zde 
KAA02024), prohledat celý log znovu a filtrovat řádky jenom s tímto 
řetězcem:

Jul 21 ... (řádek s údaji o odeslání - viz výše)
Jul 21 10:16:29 smtpgw sendmail[2026]: KAA02024: to=linux na linux.cz, 
ctladdr=miroslav.benes na xxx.cz (0/0), delay=00:00:01, xdelay=00:00:01, 
mailer=relay, relay=aaa.xxx.cz. [999.999.999.999], stat=Sent (2.0.0 
j6L8GTo24188 Message accepted for delivery)


Z něj vyčtu, že adresátem je linux na linux.cz a že byla odeslána.

Aby to nebylo tak jednoduché, stává se, že se ID zprávy v jednom logu 
opakuje i u naprosto nesouvisejících zpráv, takže se musí výsledek 
takového hledání brát s rezervou ...



No a protože se hledá informace nadvakrát (a podle zákona schválnosti 
často na dvou řádcích, které spolu nesousedí), je tenhle postup docela 
nadraka.
Líbilo by se mi, kdyby se průběžně (např. po hodině) tyto informace z 
logu vytahaly a uložily např. do databáze, odkud by byly přehledně 
zobrazitelné. Navíc by se  hledání značně zjednodušilo, protože by se 
vypouštěly maily, u kterých je odesilatel i adresát jen v naší doméně 
(tj. v rámci podniku si lidi zavolají a nemá tedy smysl údaje o 
přeposílání pošty archivovat).



Další informace o konferenci Linux