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.
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
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
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 #########################