Logbestanden op Linux systemen bevatten een massa informatie - meer dan je ooit zult kunnen bekijken. Een paar tips om de logboeken te raadplegen, zonder kopje onder te gaan.
Logbestanden op Linux systemen roteren meestal automatisch. Het systeem bewaard dus niet alle logbestanden, maar slechts een aantal, waardoor het gebruik van schijfruimte door logboeken beperkt blijft. We bekijken hoe logbestanden roteren en enkele relevante log bestanden.
Logbestanden roteren regelmatig. Daarbij krijgt het huidige logbestand een andere naam en wordt een nieuw logbestand aangemaakt. We geven als voorbeeld het messages logbestand (op sommige systemen syslog). Logbestanden worden opgeslagen in de map /var/log. We openen deze map met de opdracht:
dany@pindabook:~> cd /var/log/
dany@pindabook:/var/log>
En vragen een overzicht van alle messages logbestanden op met:
dany@pindabook:/var/log> sudo ls -l messages*
[sudo] wachtwoord voor root:
-rw-r----- 1 root root 671179 22 jan 15:36 messages
-rw-r----- 1 root root 278528 1 aug 09:40 messages-20200801.xz
-rw-r----- 1 root root 261448 17 aug 18:36 messages-20200817.xz
-rw-r----- 1 root root 302164 29 aug 17:43 messages-20200829.xz
-rw-r----- 1 root root 310012 12 sep 17:40 messages-20200912.xz
-rw-r----- 1 root root 241448 19 sep 10:50 messages-20200919.xz
-rw-r----- 1 root root 300876 3 okt 13:57 messages-20201003.xz
-rw-r----- 1 root root 266176 13 okt 09:27 messages-20201013.xz
-rw-r----- 1 root root 268620 25 okt 11:05 messages-20201025.xz
-rw-r----- 1 root root 279004 14 nov 10:55 messages-20201114.xz
-rw-r----- 1 root root 254772 29 nov 10:51 messages-20201129.xz
-rw-r----- 1 root root 265528 12 dec 14:34 messages-20201212.xz
-rw-r----- 1 root root 283220 27 dec 15:15 messages-20201227.xz
-rw-r----- 1 root root 331460 16 jan 17:52 messages-20210116.xz
Je merkt dat er regelmatig oude logbestanden worden gearchiveerd. Zeer oude logbestandarchieven worden daarbij gewist. Je merkt dat bij het archiveren van de logbestanden de naam ervan wordt aangevuld met een datum en gecomprimeerd word (.xz extensie). De compressie zorgt voor een enorme schijfruimtebesparing:
dany@pindabook:/var/log> sudo unxz -l messages-20200801.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 272,0 KiB 4483,6 KiB 0,061 CRC64 messages-20200801.xz
Gearchiveerde log bestanden kan je bekijken met:
dany@pindabook:/var/log> sudo unxz --stdout messages-20200801.xz
...
2020-08-01T09:40:01.760818+02:00 pindabook display-manager[1745]: /etc/vconsole.conf available
2020-08-01T09:40:01.761274+02:00 pindabook display-manager[1745]: KEYMAP: be-latin1
2020-08-01T09:40:01.761589+02:00 pindabook display-manager[1745]: Command: localectl set-keymap be-latin1
2020-08-01T09:40:01.788733+02:00 pindabook display-manager[1745]: I: Using systemd /usr/share/systemd/kbd-model-map mapping
2020-08-01T09:40:01.806403+02:00 pindabook dbus-daemon[1143]: [system] Activating via systemd: service name='org.freedesktop.locale1' unit='dbus-org.freedesktop.locale1.service' requested by ':1.12' (uid=0 pid=1779 comm="localectl set-keymap be-latin1 ")
2020-08-01T09:40:02.044659+02:00 pindabook systemd[1]: Reloading System Logging Service.
2020-08-01T09:40:02.047742+02:00 pindabook systemd[1]: Starting Locale Service...
Of doorsturen naar een andere opdracht om de informatie te verwerken, te filteren, te analyseren, enz. Om de laatste tien regels in een gearchiveerd logboek te bekijken, gebruik je:
dany@pindabook:/var/log> sudo unxz --stdout messages-20200801.xz | tail
[sudo] wachtwoord voor root:
2020-08-01T09:40:01.725959+02:00 pindabook systemd[1]: Starting Postfix Mail Transport Agent...
2020-08-01T09:40:01.727605+02:00 pindabook systemd[1]: Starting X Display Manager...
2020-08-01T09:40:01.728338+02:00 pindabook echo[1743]: Starting mail service (Postfix)
2020-08-01T09:40:01.760818+02:00 pindabook display-manager[1745]: /etc/vconsole.conf available
2020-08-01T09:40:01.761274+02:00 pindabook display-manager[1745]: KEYMAP: be-latin1
2020-08-01T09:40:01.761589+02:00 pindabook display-manager[1745]: Command: localectl set-keymap be-latin1
2020-08-01T09:40:01.788733+02:00 pindabook display-manager[1745]: I: Using systemd /usr/share/systemd/kbd-model-map mapping
2020-08-01T09:40:01.806403+02:00 pindabook dbus-daemon[1143]: [system] Activating via systemd: service name='org.freedesktop.locale1' unit='dbus-org.freedesktop.locale1.service' requested by ':1.12' (uid=0 pid=1779 comm="localectl set-keymap be-latin1 ")
2020-08-01T09:40:02.044659+02:00 pindabook systemd[1]: Reloading System Logging Service.
2020-08-01T09:40:02.047742+02:00 pindabook systemd[1]: Starting Locale Service...
Een ander voorbeeld: het logboek van zypper waarmee software wordt geïnstalleerd, verwijderd en bijgewerkt:
dany@pindabook:/var/log> sudo ls -l zypper.log*
-rw-r----- 1 root root 1977683 15 jan 13:36 zypper.log
-rw-r----- 1 root root 350080 13 nov 16:36 zypper.log-20201114.xz
Log bestanden kunnen roteren op basis van leeftijd of bestandsgrootte. Verschillende logbestanden kunnen op verschillende manieren geroteerd worden. De rotatie-instellingen kan je terugvinden in de configuratiebestanden /etc/rsyslog.conf, /etc/logrotate.conf en de mappen /etc/rsyslog.d/, /etc/logrotate/. Een paar voorbeelden:
dany@pindabook:/var/log>sudo cat /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed compress # comment these to switch compression to use gzip or another # compression scheme compresscmd /usr/bin/xz uncompresscmd /usr/bin/xzdec # RPM packages drop log rotation information into this directory include /etc/logrotate.d dany@pindabook:/var/log>sudo ls -l /etc/logrotate.d/
totaal 72 -rw-r--r-- 1 root root 695 17 nov 23:48 apache2 -rw-r--r-- 1 root root 181 23 okt 06:29 chrony -rw-r--r-- 1 root root 92 24 nov 23:36 dracut -rw-r--r-- 1 root root 172 14 jan 23:42 iscsiuio -rw-r--r-- 1 root root 1134 2 dec 14:57 mariadb -rw-r--r-- 1 root root 267 16 mei 2020 mcelog -rw-r--r-- 1 root root 345 16 mei 2020 net-snmp -rw-r--r-- 1 root root 164 26 aug 22:47 pbl -rw-r--r-- 1 root root 141 16 mei 2020 rsync -rw-r--r-- 1 root root 289 29 okt 23:59 samba -rw-r--r-- 1 root root 134 16 mei 2020 snapper -rw-r--r-- 1 root root 989 16 mei 2020 syslog -rw-r--r-- 1 root root 148 23 nov 23:38 wpa_supplicant -rw-r--r-- 1 root root 147 16 mei 2020 wtmp -rw-r--r-- 1 root root 140 4 mrt 2014 xdm -rw-r--r-- 1 root root 134 1 okt 2018 zypper.lr -rw-r--r-- 1 root root 137 1 okt 2018 zypp-history.lr -rw-r--r-- 1 root root 139 1 okt 2018 zypp-refresh.lr
De eerste stap is waarschijnlijk bepalen welke informatie in welk logbestand is opgeslagen. Logbestanden helemaal van begin tot einde lezen is bijna nooit een goed idee. Bepaalde informatie uit een logbestand filteren om een bepaald probleem op te lossen is de aangewezen methode. Je moet dus enig idee hebben waar wat wordt bewaard. Een paar voorbeelden.
Zo vraag je welke gebruiker, wanneer en vanaf welk systeem heeft aangemeld (:0 is lokaal) (tail -10 zorgt dat je enkel de laatste tien aanmeldingen ziet):
dany@pindabook:/var/log> who wtmp | tail -10
dany tty7 2021-01-15 13:36 (:0)
dany pts/0 2021-01-15 13:36 (:0)
dany pts/1 2021-01-15 13:38 (:0)
dany tty7 2021-01-16 17:52 (:0)
dany pts/0 2021-01-16 17:52 (:0)
dany tty7 2021-01-17 15:20 (:0)
dany pts/0 2021-01-17 15:20 (:0)
dany tty7 2021-01-22 15:33 (:0)
dany pts/0 2021-01-22 15:33 (:0)
dany pts/1 2021-01-22 15:33 (192.168.1.24)
Wil je dezelfde informatie, maar enkel voor een bepaalde gebruiker (hier: dany):
dany@pindabook:/var/log> who wtmp | grep dany | tail -10
dany tty7 2021-01-15 13:36 (:0)
dany pts/0 2021-01-15 13:36 (:0)
dany pts/1 2021-01-15 13:38 (:0)
dany tty7 2021-01-16 17:52 (:0)
dany pts/0 2021-01-16 17:52 (:0)
dany tty7 2021-01-17 15:20 (:0)
dany pts/0 2021-01-17 15:20 (:0)
dany tty7 2021-01-22 15:33 (:0)
dany pts/0 2021-01-22 15:33 (:0)
dany pts/1 2021-01-22 15:33 (192.168.1.24)
Om meer informatie (tijdstip, gebruiker, opdracht) op te halen over de laatste 10 uitgevoerde sudo opdrachten:
dany@pindabook:/var/log> sudo grep "sudo:" messages | tail -10
2021-01-22T16:24:52.601759+01:00 pindabook sudo: pam_unix(sudo:session): session opened for user root by dany(uid=1000)
2021-01-22T16:24:52.605056+01:00 pindabook sudo: pam_unix(sudo:session): session closed for user root
2021-01-22T16:39:40.420722+01:00 pindabook sudo: dany : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/who wtmp
2021-01-22T16:39:40.422743+01:00 pindabook sudo: pam_unix(sudo:session): session opened for user root by dany(uid=1000)
2021-01-22T16:39:40.434677+01:00 pindabook sudo: pam_unix(sudo:session): session closed for user root
2021-01-22T16:42:40.546467+01:00 pindabook sudo: dany : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/grep sudo: messages
2021-01-22T16:42:40.548338+01:00 pindabook sudo: pam_unix(sudo:session): session opened for user root by dany(uid=1000)
2021-01-22T16:42:40.555471+01:00 pindabook sudo: pam_unix(sudo:session): session closed for user root
2021-01-22T16:42:49.968617+01:00 pindabook sudo: dany : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/grep sudo: messages
2021-01-22T16:42:49.970676+01:00 pindabook sudo: pam_unix(sudo:session): session opened for user root by dany(uid=1000)
Om de laatste 10 kernel boodschappen weer te geven:
dany@main:/var/log> dmesg -T | tail
[vr jan 22 15:48:06 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
[vr jan 22 15:55:13 2021] userif-3: sent link down event.
[vr jan 22 15:55:13 2021] userif-3: sent link up event.
[vr jan 22 15:56:14 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
[vr jan 22 16:09:27 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
[vr jan 22 16:16:34 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
[vr jan 22 16:21:40 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
[vr jan 22 16:23:12 2021] userif-3: sent link down event.
[vr jan 22 16:23:12 2021] userif-3: sent link up event.
[vr jan 22 16:40:57 2021] drm_dp_i2c_do_msg: 2 callbacks suppressed
Om de 10 laatste softwareaanpassingen weer te geven:
dany@pindabook:/var/log> sudo cat zypp/history | tail
2021-01-22 15:36:53|patch |openSUSE-2021-124|1|noarch|http-download.opensuse.org-e13e5001|important|security|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-100|1|noarch|repo-update|moderate|recommended|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-94|1|noarch|repo-update|moderate|recommended|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-89|1|noarch|repo-update|important|security|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-106|1|noarch|repo-update|moderate|security|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-107|1|noarch|repo-update|moderate|security|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-116|1|noarch|repo-update|moderate|recommended|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-115|1|noarch|repo-update|moderate|recommended|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-136|1|noarch|repo-update|moderate|security|needed|applied|
2021-01-22 15:36:53|patch |openSUSE-2021-124|1|noarch|repo-update|important|security|needed|applied|
Sommige opdrachten halen de informatie uit de logbestanden, zoals de opdracht om een lijst met wanneer het systeem herstartte:
dany@pindabook:~> last reboot
reboot system boot 5.3.18-lp152.60- Sat Jan 23 14:52 still running
reboot system boot 5.3.18-lp152.60- Fri Jan 22 15:32 - 16:57 (01:24)
reboot system boot 5.3.18-lp152.60- Sun Jan 17 15:20 - 15:45 (00:25)
reboot system boot 5.3.18-lp152.60- Sat Jan 16 17:51 - 18:11 (00:19)
...
reboot system boot 5.3.18-lp152.44- Wed Oct 14 20:14 - 20:17 (00:02)
wtmp begins Tue Oct 13 09:27:48 2020
Hoewel je scripts kunt schrijven om gemakkelijker interessante informatie in de logbestanden te vinden, kan je ook gebruik maken van zeer gesofistikeerde hulpmiddelen om logbestanden te analyseren. Sommige gebruiken informatie uit verschillende bronnen om een beter beeld te krijgen van wat er op het netwerk gebeurd. Ze kunnen eveneens realtime gegevens weergeven. Voorbeelden daarvan zijn Solarwinds Log & Event Manager en PRTG Network Monitor.
De volgende hulpmiddelen zijn gratis en helpen je bij het analyseren van logbestanden: