Logwatch, aneb jak efektivně sledovat logy

Takže první bych rád objasnil co to ten Logwatch vůbec je. Logwatch vpodsatě není program, ale pouze skript. Ovšem to k jeho práci vůbec nevadí. Logwatch totiž nedělá nic jiného, než že vám projede logy ve /var/log ( dá se popřípadě přenastavit ) a udělá vám z nich souhrn. Proto ani neběží v systému jako služba na pozadí a tímpádem I šetří volnou RAM a CPU.

Instalace

Jako první doporučuji aktualizovat svoje VPS příkazy:

apt-get update
apt-get upgrade

Jelikož program dokáže zasílat i reporty na e-mail ( což je cílem našeho snažení ), první si zkontrolujeme, jestli máme nainstalovaný e-mailový server. V 4smart šablonách s debianem je už standardně nainstalován, pokud si ale zvolíme například TurnKey distro, musíme si ho doinstalovat příkazem

apt-get install sendmail

Tak a nyní k instalaci samotného logwatch. Program samozdřejmě nainstalujete tak jako každý jiný, příkazem

apt-get install logwatch

Konfigurace

Tak a základ máme.Nyní k konfiguraci. Já osobně jsem konfiguraci neměnil, pouze jsem si upravil defaultně vytvořený cron soubor ( /etc/cron.daily/00logwatch ).

Pokud chceme nastavit to co potřebujeme aniž by nás zajímalo “to okolo”, stačí poupravit text pod “#execute” v cron souboru

/usr/sbin/logwatch --output mail

změníme například na:

/usr/sbin/logwatch --mailto muj@uzasnyemail.cz

Místo muj@uzasnyemail.cz samozdřejmě dáte svůj email.

Pokud budeme chtít logy zároveň ukládat do adresáře, přidáme pod to následující řádek:

logwatch >> /root/logwatch/$(date '+%Y%m%d').txt

Nezapomeňte vytvořit složku logwatch. “$(date '+%Y%m%d')” způsobí, že txt soubory budou mít pokaždé jiné jméno, konkrétně ve formátu ROKměsícDEN.txt, např 2012229.txt. Pokud budete nastavovat konfigurační soubory logwatche, můžeme cron přepsat a nechat tam pouze “/usr/sbin/logwatch” ( bez uvozovek ). Pokud jsme měnili v konfigu Output = stdout a chceme ukládat výpis i do souboru, musíme dodat příkaz mírně poupravit na:

logwatch --output stdout >> /root/logwatch/$(date '+%Y%m%d').txt

Podrobnější Konfigurace včetně popisů

Nyní ke konfiguraci. Konfigurační soubory najdeme ve složce /usr/share/logwatch/default.conf (pozor jedná se o složku, ne soubor!). V ní je soubor logwatch.conf

LogDir = /var/log
Adresář z logy – standardně /var/log

TmpDir = /var/cache/logwatch
Adresář s dočasnými soubory logwatche.

Output = stdout
Výstup z logwatche. Pokud budeme chtít volat logwatch bez –output mail, změníme na “mail” ( bez uvozovek )

Format = text
Formát výstupu – další možnost je “html”

Encode = none
Zašifrování, necháme na none.

MailTo = root
Důležitá věc. Pokud chceme posílat logy na mail a spouštět tedy cron bez parametru –mailto, přenastavíme “root” právě na naší emailovou adresu.

MailFrom = Logwatch
Od koho email přichází

#Archives = No
Tadle funkce je zakomentovaná, a tím je tendle parametr “vypnutý”. Standardně je ovšem “archivování” zapnuto, takže nám to při každém vygenerování logů každý log zálohuje, tedy např. mysql.log nám zálohuje do souborů mysql.log.1.gz, mysql.log.2.gz atd. - každý den nový soubor - může nám tedy udělat nepořádek v /var/log. Proto doporučuji příkaz “odkomentovat” - smazat # a ponechat pouze Archives = No

Range = yesterday
V jakém časovém období má logwatch hledat, možnosti: All, yesterday, today. Možnost All vypíše všechny změny co najde v logách, tzn třeba i několik týdnu staré. Proto je lepší nechat na yesterday pro zjíštění včerejších změn.

Detail = Low
Detailnost logů. Může nabývat hodnot od 0 do 10, kde 0 je co nejstručnější log. Taky můžeme zadat slovně: Low, Med, High, kde
Low = 0
Med = 5
High = 10

Service = All
Zasílání informací o všech službách. Pokud chceme zasílat informace pouze o jedné službě, napíšeme například Service = “amavisd”.

Service = „-eximstats“
Pokud nechceme logovat např. eximstats, napíšeme Service znova a dáme do něj název programu a před něj mínus.

#LogFile = messages
Můžeme taky logovat třeba pouze jeden log soubor, pokud tak chceme, odkomentujeme LogFile, LogFile = messages bude tak například číst informace pouze z /var/log/messages.

mailer = „/usr/sbin/sendmail -t“
Asi nejduležitější řádek, zde je totiž můžeme přenastavit pokud chceme používat jiný emailový server než je sendmail.

Můžeme klidně i poupravit konfiguraci přímo pro nějakou službu. Dané soubory najdeme v logfiles a v services.

Ukázka logu při nastavení Detail = Low, Services = All, Range = Yesterday. IP vycenzurovány
Se serverem se víceméně nic nedělo, jenom jsem k němu byl 2x připojen přes ssh.

 ################### Logwatch 7.3.6 (05/19/07) ####################
       Processing Initiated: Sat Feb 25 05:04:06 2012
       Date Range Processed: yesterday
                             ( 2012-Feb-24 )
                             Period is day.
       Detail Level of Output: 0
       Type of Output/Format: mail / text
       Logfiles for Host: localhost
 ##################################################################

 --------------------- sendmail Begin ------------------------

 **Unmatched Entries**
   gethostbyaddr(xxx.xxx.x.xx) failed: 2: 1 Time(s)
 ---------------------- sendmail End -------------------------

 --------------------- SSHD Begin ------------------------

 Users logging in through sshd:
   root:
      123.456.789 (123.456.hostname.cz): 2 times

 ---------------------- SSHD End -------------------------

 --------------------- Disk Space Begin ------------------------

 Filesystem            Size  Used Avail Use% Mounted on
 /dev/simfs             10G  1.7G  8.4G  17% /

 ---------------------- Disk Space End -------------------------

 ###################### Logwatch End ######################### 
 
stranky_uzivatelu_4smart/logwatch_sledovani_logu.txt · Poslední úprava: 2012/03/01 14:57 autor: malvex