Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Logide lugemine journalctl-iga

Moodul 6: Teenused ja logid · Lugemisaeg: 11 minutit

Õpieesmärk: Pärast seda õppetundi oskad journalctl-iga oma serveri logidest sihipäraselt otsida (teenuse, prioriteedi ja aja järgi), tead, kus asuvad teised logifailid, ja hoiad ära, et logid su ketta täis kirjutaksid.

Põhimõisted: journald, journal, journalctl -u, -p, --since/--until, -f, -b, -e, -n, prioriteet (err, warning, info), püsiv salvestus, /var/log/journal, --disk-usage, --vacuum-size, /var/log, logrotate, rsyslog

Logi kui esimene tunnistaja

Kui midagi su serveris ei tööta, on põhjus peaaegu alati kirjas mõnes logis. Veebisait, mis näitab vealehte, teenus, mis ei käivitu, varukoopia, mis öösel ei jooksnud: server on selle üles kirjutanud. Hea haldur vaatab kõigepealt logi ja alles seejärel hakkab midagi muutma.

Tänapäevastes Linux-serverites kogub journald (systemd osa) kerneli, systemd enda ja kõigi teenuste teated ühte logisse: journal'isse. Seda loed käsuga journalctl.

Et kõike lugeda, pead olema rühmas adm või systemd-journal või kasutama käsku sudo. Ilma nende õigusteta näed ainult oma teateid.

Kus see asub? Püsiv või ajutine

journald hoiab journal'it ühes kahest kohast:

  • kaustas /var/log/journal/: püsiv, logid jäävad pärast taaskäivitust alles;
  • kaustas /run/log/journal/: ajutine, mälus, pärast taaskäivitust kadunud.

Vaikeseade (Storage=auto failis /etc/systemd/journald.conf) valib püsiva salvestuse, kui kaust /var/log/journal/ on olemas. Debianis loob systemd-pakett selle kausta alates Debian 11-st ise ja ka Ubuntus on see olemas. Kontrolli:

anna@web1:~$ ls -d /var/log/journal
/var/log/journal
anna@web1:~$ journalctl --list-boots | tail -n 3
 -2 3c1f... Sun 2026-11-01 04:30:12 CET Sun 2026-11-08 04:30:01 CET
 -1 9ab7... Sun 2026-11-08 04:30:40 CET Mon 2026-11-09 08:12:05 CET
  0 e41d... Mon 2026-11-09 08:12:30 CET Mon 2026-11-09 11:40:17 CET

Kui näed ainult üht käivitust, kuigi server on juba vähemalt korra taaskäivitunud, on su logid ajutised. Loo kaust (sudo mkdir -p /var/log/journal ja sudo systemd-tmpfiles --create --prefix /var/log/journal) ja taaskäivita journald. See on oluline: pärast krahhi tahad just teada, mis juhtus enne taaskäivitust.

Alates Debian 12-st ei paigalda Debian enam vaikimisi rsyslog'i. See programm kirjutas varem tekstifaile nagu /var/log/syslog ja /var/log/auth.log. Uues Debiani serveris neid seega pole, kõik on journal'is. Ubuntus on rsyslog veel olemas. Juhendid, mis ütlevad „vaata faili /var/log/auth.log”, saad Debianis tõlkida käsuks journalctl -u ssh.

Otsimine: filtrid, mida päriselt kasutad

Ilma filtrita näitab journalctl kõike, alates vanimast. Harva on see see, mida tahad. Tähtsamad filtrid, mida saad omavahel kombineerida:

FilterNäideMida teeb
-u <unit>journalctl -u nginxainult see teenus
-p <prioriteit>journalctl -p errainult vead ja raskemad
--since, --until--since "2026-11-09 03:00" --until "04:00"ajavahemik; ka today, yesterday, "1 hour ago"
-bjournalctl -b, journalctl -b -1alates sellest käivitusest või eelmisest
-fjournalctl -u nginx -fjälgi otse (nagu tail -f), peata klahvidega Ctrl+C
-ejournalctl -u ssh -ehüppa lõppu
-njournalctl -u ssh -n 50viimased 50 rida
-kjournalctl -kainult kerneli teated
--no-pagerilma lehitsemiseta, mugav koos grep-ga

Prioriteedid ulatuvad 0-st (emerg) 7-ni (debug): emerg, alert, crit, err, warning, notice, info, debug. Valikuga -p err saad err-taseme ja kõik, mis on sellest tõsisem. -p warning näitab ka hoiatusi.

Tüüpiline otsinguteekond. Su veebisait annab alates tänasest hommikust vea 502:

anna@web1:~$ systemctl status php8.4-fpm
× php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager
     Active: failed (Result: exit-code) since Mon 2026-11-09 07:02:11 CET; 4h ago
...
anna@web1:~$ sudo journalctl -u php8.4-fpm --since today -p warning --no-pager
nov 09 07:02:10 web1 php-fpm8.4[1830]: [09-Nov-2026 07:02:10] ERROR: [/etc/php/8.4/fpm/pool.d/www.conf:42] unknown entry 'pm.max_children '
nov 09 07:02:10 web1 php-fpm8.4[1830]: [09-Nov-2026 07:02:10] ERROR: FPM initialization failed
nov 09 07:02:11 web1 systemd[1]: php8.4-fpm.service: Main process exited, code=exited, status=78/CONFIG
nov 09 07:02:11 web1 systemd[1]: php8.4-fpm.service: Failed with result 'exit-code'.

Põhjus on sõna-sõnalt kirjas: trükiviga konfiguratsioonifaili real 42. Olek 78 (CONFIG) kinnitab, et tegu on konfiguratsiooniveaga. Midagi pole vaja arvata.

Kaks nõuannet lugemiseks:

  • Loe ülevalt alla ja otsi esimest viga. Üks viga põhjustab sageli terve rea järgnevaid teateid. Esimene on tavaliselt põhjus.
  • Pane tähele aega. Mis muutus selle hetke paiku? Automaatne uuendus (õppetund 4.2: /var/log/unattended-upgrades/), sinu enda muudatus, taaskäivitus?

Teised logifailid

Kõik ei ole journal'is. Paljud programmid kirjutavad ka (või ainult) oma faile kausta /var/log/:

Fail või kaustMida sisaldab
/var/log/nginx/access.log ja error.lognginxi iga päring ja iga viga
/var/log/apt/history.logmida apt millal paigaldas
/var/log/unattended-upgrades/automaatsed uuendused (õppetund 4.2)
/var/log/fail2ban.logblokeeringud (õppetund 5.3)
/var/log/mysql/ või journalMariaDB/MySQL, olenevalt seadistusest

Suuri tekstifaile loed käsuga less (otsing klahviga /), lõppu käsuga tail -n 50, otse jälgides käsuga tail -f ja filtreerid käsuga grep:

anna@web1:~$ sudo grep " 502 " /var/log/nginx/access.log | tail -n 5

Docker-konteinerite logid ei ole kaustas /var/log, vaid Dockeri enda juures: docker compose logs (õppetund 9.3).

Logid ei tohi su ketast täita

Täis ketas on üks levinumaid põhjusi, miks server „äkki” enam ei tööta: andmebaasid peatuvad, uuendused ebaõnnestuvad, mõnikord ei saa isegi sisse logida. Süüdlaseks on sageli logid.

Journal piirab end ise. Vaikimisi kasutab see kuni 10% failisüsteemist, maksimaalselt 4 GB (SystemMaxUse=). Nii näed, palju see praegu kasutab, ja nii koristad:

anna@web1:~$ journalctl --disk-usage
Archived and active journals take up 512.0M in the file system.
anna@web1:~$ sudo journalctl --vacuum-time=30d     # vanemad kui 30 päeva kustutatakse
anna@web1:~$ sudo journalctl --vacuum-size=500M    # kuni 500 MB

Kui tahad kindlat piiri, pane drop-in-faili /etc/systemd/journald.conf.d/grootte.conf:

[Journal]
SystemMaxUse=1G

ja taaskäivita journald käsuga sudo systemctl restart systemd-journald.

Kausta /var/log tekstifaile haldab logrotate: iga päev või nädal nimetatakse fail ümber (error.log.1), vanemad versioonid pakitakse (.gz) ja vanimad kustutatakse. Iga programmi reeglid on kaustas /etc/logrotate.d/. Distributsiooni paketid toovad oma reegli kaasa. Kui su enda programm või skript kirjutab omaette logifaili, loo reegel ise, muidu kasvab fail lõputult.

Otsi, mis ruumi võtab:

anna@web1:~$ df -h /
anna@web1:~$ sudo du -xh /var/log | sort -h | tail -n 5

Logid ja privaatsus

Logides on IP-aadressid, kasutajanimed ja mõnikord e-posti aadressid: need on isikuandmed. Ära hoia neid kauem kui vaja (väikese serveri puhul on tavaline paar nädalat kuni paar kuud), ära jäta neid avalikult kättesaadavaks (kaust /logs sinu webrootis on tuntud viga) ega kopeeri neid niisama teiste teenustesse.

AlmaLinuxis ja Rocky Linuxis

journalctl töötab samamoodi. Seal on rsyslog veel vaikimisi sees, failidega nagu /var/log/messages ja /var/log/secure (vaste failile auth.log). SELinuxi teated on failis /var/log/audit/audit.log; ausearch -m avc -ts recent näitab hiljutisi keeldumisi.

Kokkuvõte

  • journald kogub kõik teated journal'isse; loe seda käsuga journalctl, filtreerides teenuse (-u), prioriteedi (-p), aja (--since) ja käivituse (-b) järgi.
  • Kontrolli, et journal oleks püsiv (/var/log/journal on olemas), muidu kaotad pärast taaskäivitust oma logid.
  • Debian 12-s ja uuemates pole vaikimisi rsyslog'i ega seega faile /var/log/auth.log ja /var/log/syslog; kõik on journal'is.
  • Otsi esimest viga ja vaata, mis selle hetke paiku muutus.
  • Jälgi mahtu: journal piirab end ise (--disk-usage, --vacuum-*), tekstifaile haldab logrotate.

Test (quiz)

1. Milline käsk näitab ainult nginxi tänaseid vigu?



2. Su server taaskäivitus öösel pärast krahhi. journalctl -b -1 annab teate „Specifying boot ID or boot offset has no effect, no persistent journal was found”. Mida see tähendab?



3. Juhend ütleb, et ebaõnnestunud SSH-sisselogimised leiad failist /var/log/auth.log, kuid su uues Debian 13 serveris seda faili pole. Kust vaatad?



4. Logis on kakskümmend veateadet järjest. Kust alustad?



5. Su ketas on täis ja journalctl --disk-usage näitab 400 MB. Mis on parim järgmine samm?



Ülesanne

Ülesanne Z6.2: Krahhiva teenuse analüüs. Näidisfailis journal-crash-1.txt on käskude systemctl status ja journalctl väljund teenuse kohta, mis käivitub ikka ja jälle uuesti ning annab siis alla. Vasta: mis on teenuse nimi, mitu korda üritas systemd seda käivitada, millise väljumiskoodiga see peatus, mis on põhjus esimese veateate järgi ja mis kell systemd alla andis? Programm võrdleb vastuseid kindla võtmega. Seejärel vaata oma serveris, kas journalctl -p err -b näitab vigu ja kas su journal on püsiv.

Ülesanne Z6.2: Krahhiva teenuse analüüs

Selle ülesande fail: journal-crash-1.txt







Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…