Naplózás
A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen KornAndras (vitalap | szerkesztései) 2006. október 20., 09:41-kor történt szerkesztése után volt.
Általában naplózni akarunk minden, a rendszer szempontjából fontos eseményt. A naplózással kapcsolatban a következő - részben filozófiai - kérdéseket kell feltennünk magunknak:
- Mit akarunk naplózni?
- Az "esemény" tetszőlegesen szűken vagy tágan értelmezhető; lehet "kicsi" vagy "nagy"; tartozhat hozzá sok vagy kevés információ:
- "Elmozdult az egér"
- "A 42-es PID-jú folyamat TERM signal hatására kilépett"
- "Új ARP-bejegyzést helyeztünk el az ARP-táblában"
- "A gonosz crackerek betörtek és az összes adatot ellopták"
- "Minden rendben van"
- "Megint eltelt 10 perc"
- "Belépett valaki ssh-val"
- "Józsi belépett ssh-val"
- "Józsi ma este 8-kor belépett ssh-val az 1.2.3.4-ről"
- "Józsi ma este 8-kor belépett ssh-val az 1.2.3.4-ről, de általában a 2.3.4.5-ről szokott belépni"
- "Józsi ma este 8-kor belépett ssh-val az 1.2.3.4-ről, de általában csak munkaidőben lép be (99%), a 2.3.4.5-ről (95%)"
- stb.
- Az "esemény" tetszőlegesen szűken vagy tágan értelmezhető; lehet "kicsi" vagy "nagy"; tartozhat hozzá sok vagy kevés információ:
- Mi a célunk a naplózással? (Ez befolyásolja, mi lesz az "esemény".)
- Biztonsági audit
- Pl.: ssh log, filesystem audit trail
- Teljesítmény-finomhangolás előkészítése
- Pl.: vmstat
- A rendszer állapotváltozásainak nyomon követése későbbi reprodukálhatóság vagy visszacsinálhatóság érdekében
- Pl.: dpkg.log
- Értesülés a rendszer működését veszélyeztető eseményekről, folyamatokról
- Pl.: kernellog, smartmontools logjai
- Üzleti döntések támogatása
- Pl.: apache accesslog
- Utólagos diagnosztika megkönnyítése
- Pl.: ppp log, cron log, maillog, udev log, általában a "debug" típusú logok, ...
- Szolgáltatások használati profiljának feltérképezése
- Pl.: dnscache query log
- Accounting
- Pl.: CUPS page log
- Személyes
- irclog, IM log
- Csak úgy, majd csak jó lesz valamire
- Pl.: mp3lejátszó által lejátszott számok naplója
- Biztonsági audit
- Mihez fogunk kezdeni a naplóval?
- Csak legyen, egyszer majd talán belenézünk
- Adatokat bányászunk belőle (pl. accesslogból)
- "Mely országokból jöttek azok a felhasználók, akik az X és az Y terméket is megnézték, de utána a Z-t vették meg?"
- "Azok közül, akik a promócióban terjesztett URL-re ellátogatnak, hányan vásárolnak később a webshopban?"
- "Vásárlóink hány százalékát teszik ki a Linux-felhasználók?"
- "A múlt havi promóció melyik országban volt a legsikeresebb?"
- "Hányan jöttek vissza az oldalunkra a promóciót követő három hónapon belül kettőnél többször?"
- "Melyik user melyik napszakban honnan szokott be-ssh-zni? Volt-e bárkinél számottevő eltérés ettől a profiltól? (Mi a számottevő?)"
- "Milyen folyamatok futottak akkor, amikor a 300-as load-tüskét mértük?"
- Stb.
- Policy-konformanciát ellenőrzünk (ha nem tudjuk vagy akarjuk eleve kikényszeríteni)
- "Tényleg nem játszott éjfél után a gyerek?" :)
- "Igaz-e, hogy csak a munkával összefüggő weboldalakat nézegetnek az alkalmazottak?"
- "Igaz-e, hogy Gipsz Jakab csak az ebédszünetben foglalkozott magánlevelezéssel?"
- "Igaz-e, hogy Gáz Géza autóbuszvezető csak a kijelölt útvonalon közlekedik a gondjaira bízott Ikarus-szal, vagy taxizgat is vele?"
- "Tényleg nem futtatott senki p2p filecserélőt a Schönherzben?"
- Gyanús mintákat keresünk benne
- Tároljuk, mert muszáj (törvényi előírás)
- Átadjuk az ügyfélnek
- Aki majd mit csinál vele?
- Erős lehet a kísértés a kozmetikázásra
- Sose fizessünk marketingcéget a visszatérő userek száma alapján...
- Időnként szabad szemmel beleolvasunk
- Célzottan keresünk benne
- "Kik voltak belépve múlt kedden este 6 és 8 között?"
- Stb.
Naplózóprogramok
Sok van.
Rendszernaplóra legelterjedtebb:
- syslog
- syslog-ng
- socklog+svlogd
- (klogd)
- /proc/kmsg
Példa syslog.confra:
# /etc/syslog.conf Configuration file for syslogd. # # For more information see syslog.conf(5) # manpage. # # First some standard logfiles. Log by facility. # auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log uucp.* /var/log/uucp.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # Logging for INN news system # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice # # Some `catch-all' logfiles. # *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages # # Emergencies are sent to everybody logged in. # *.emerg * # # I like to have messages displayed on the console, but only on a virtual # console I usually leave idle. # #daemon,mail.*;\ # news.=crit;news.=err;news.=notice;\ # *.=debug;*.=info;\ # *.=notice;*.=warn /dev/tty8 # The named pipe /dev/xconsole is for the `xconsole' utility. To use it, # you must invoke `xconsole' with the `-file' option: # # $ xconsole -file /dev/xconsole [...] # # NOTE: adjust the list below, or you'll go crazy if you have a reasonably # busy site.. # daemon.*;mail.*;\ news.crit;news.err;news.notice;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole
to be continued...