SYSLOG ja žurnaalid(log failid)

Lugemiseks : Linux log files. Understanding logrotate.

Logid annavad võimaluse jälgida süsteemi tööd ja signaliseerida probleemide puhul.

Logid tekkivad systeemi, teenuste ja programmide tõõ käigus.
Teavituste(log info) tase määrab info hulga toimimise ja probleemide puhul.
Paljude programmide ja teenuste käivitamisel saab määrata teavituste taset.

Logide standartne asukoht on: /var/log/*
Deemon mis tegeleb syslogiga - syslog või rsyslog(ubuntu)

Konfiguratsioon asub: /etc/syslog.conf või /etc/rsyslog.conf
konfiguratsiooni laiendus asub katalogis /etc/syslog.d või /etc/rsyslog.d

Näiteks fail 50-default.conf:
auth,authpriv.* /var/log/auth.log # autoriseerimine logi
*.*;auth,authpriv.none -/var/log/syslog
# kõik muu võimalik
#cron.* /var/log/cron.log
# perioodilised protsessid
daemon.* -/var/log/daemon.log
# teenuste logid
kern.* -/var/log/kern.log
# kerneli logid
lpr.* -/var/log/lpr.log
# printimis alamsüsteemi logid
mail.* -/var/log/mail.log
# posti süsteemi logid
user.* -/var/log/user.log
# userlog
mail.info -/var/log/mail.info
# postin liikumine
mail.warn -/var/log/mail.warn
# postinduse teavitused
mail.err /var/log/mail.err
# postinduse vead

Süsteemi admininistraator paeb logi faile perioodiliselt läbi vaadama.
Kuna logi fail kasvab, saab logi faile jälgida järgmise käsuga:

$ tail -f /var/log/syslog

LOGROTATE - logi failidega manipuleerimine

Logi failide suurus kasvab, see võib viia partatsiooni ületäitumiseni. Logfaili suuruse jälgimine nõuab administraatori poolt palju aega.
Selleks et riske vähendada tekis vajadus panna käima süsteem mis piiraks logifailide suurust.
Tekkis programm logrotate, mis pidi perioodoliselt kontrollima logi faile ja piirtingimuste täitumisel nimetama need logi failid ümber ja vajadusel ka pakkima neid kokku.Ümbernimetatud failide hulka saab piirata. Aga tuleb ka saada aru et mida vhem eraldatakse logi failidele ruumi seda väiksema perioodi kohta jääb sinna ka infot.

EXAMPLE: lihtnäide shellis ühe logi rotatsiooni kohta

#!/bin/sh
cd /var/log
mv logfile.2 logfile.3
mv logfile.1 logfile.2
mv logfile logfile.1
cat /dev/null > logfile
chmod 600 logfile

Kuna logid võtavad palju ruumi, siis eelnevad logid zipitakse kokku. Sama näite modifitseeritud versioon:
#!/bin/sh
cd /var/log
mv logfile.2.gz logfile.3.gz
mv logfile.1.gz logfile.2.gz
mv logfile logfile.1
cat /dev/null > logfile
kill -signaal > PID
# restardime teenuse logi reinitsialiseerimiseks
gzip logfile.1
# pakime faili kokku
chmod 600 logfile

Iga teenuse kohta reeglid määratakse katalogis /etc/logrotate.d.
Esimeses reas on katalogi nimi kus asuvad logid
ja figuursulgudes asuvad vajalikud parameetrid
Näiteks uudiste serveri puhul /etc/logrotate.d/news:
/var/log/news/* {
monthly
# roteerida igakuiselt
rotate 2
# ainult kaks faili
olddir /var/log/news/old
# vanad paigutada katalogi
missingok
postrotate
# käivitada peale roteerimist
kill -HUP `cat /var/run/inn.pid`
endscript
nocompress
# ei paki kokku
}

või http serveri puhul t/etc/logrotate.d/apache2:
/var/log/apache2/*.log {
mail it@pa09.tpt # roteerimise puhul teavitus aadress
size 10k
# roteerida kui suusrus ületab 10 kilo
missingok
# puuduv fail ei tekita probleeme
rotate 5
# viis rotatsiooni
compress
# peale rotatsiooni zipida kokku
delaycompress
# zipitakse hiljem tagaplaanil
notifempty
# teavitada kui logifail on tühi
create 640 root adm
# logi failil muudetakse õigused
sharedscripts
postrotate
# peale roteerimist käivitatakse script
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}

PRAKTILISELT: Http teenuse logide kontroll

Installime või kontrollime kas on installitud http server ja php:
$ apt-get install apache2 php5
Käivitame http serveri:
$ /etc/init.d/apache2 restart
looge apache vaikimisi katalogi fail: /var/www/test.php sisuga
<?php echo "Mina olen robert"; ?>
avage käsurea või graafilise keskkonna veebilehitsejas(browseris): http://localhost/test.php
peaks ilmuma lause "Mina olen robert"
otsige üles selle päringu rida logi failis /var/log/apache2/access.log