Logid ja teenused
Selles peatükis vaatame, kust otsida logisid ja kuidas vaadata teenuste seisundit, eriti Linuxi süsteemides.
Loogika
Kui mõni teenus ei tööta, siis väga sageli on kaks kõige tähtsamat küsimust:
- kas teenus üldse töötab
- mida logid selle kohta ütlevad
Just siin kohtuvad kaks tööriistamaailma:
- teenuse seisund
- logifailid või journal
Kiirspikker
systemctl status niminäitab teenuse seisujournalctl -u niminäitab selle teenuse journal'ijournalctl -n 50näitab viimaseid kirjeidtail -f fail.logjälgib logifaili reaalajas/var/logsisaldab paljusid logifaile
Käivita need käsud
Linuxis:
systemctl status ssh
journalctl -u ssh -n 50
journalctl -n 50
ls /var/log | head
Kui sul ei ole systemd-d või teenuse nimi on teine, siis vaata vähemalt logifaile:
tail -n 50 /var/log/syslog
tail -n 50 /var/log/messages
Kui tahad viimaseid ridu rahulikult sirvida, siis väga praktiline on:
tail -n 50 /var/log/syslog | less
Teenus ja protsess ei ole päris sama asi
Teenuse puhul mõtle nii:
- teenus on süsteemi hallatav töö
- protsess on selle töö jooksev eksemplar
See tähendab, et vahel on kasulik vaadata nii teenust kui protsessi, aga alguses tasub teenuse puhul alustada just:
systemctl status nimi
systemctl status
Näide:
systemctl status ssh
See aitab näha:
- kas teenus on aktiivne
- kas ta käivitub süsteemi stardis
- kas viimastes teadetes paistab mõni viga
Teenuse nimi võib süsteemiti erineda. Näiteks:
- mõnes süsteemis on nimi
ssh - mõnes
sshd
Kui üks ei tööta, proovi teist.
journalctl
Kui teenus ei tööta, siis järgmine väga praktiline samm on:
journalctl -u ssh -n 50
See näitab viimaseid kirjeid just selle teenuse kohta.
Kasulikud variandid:
journalctl -u ssh --since today
journalctl -u ssh -f
Siin tähendab:
--since todaynäita tänaseid kirjeid-fjälgi juurde tulevaid logisid
Logifailid kaustas /var/log
Mitte kõik süsteemid ei kasuta journal'it samal viisil. Väga tihti jõuad ka tavaliste logifailideni.
Näited:
/var/log/syslog/var/log/messages- teenuse enda logikaust
Logide vaatamiseks on praktilised:
tail -n 50 /var/log/syslog
tail -f /var/log/syslog
Kui üks fail puudub, proovi teist. Logide nimed ei ole kõigis distributsioonides samad.
macOS-i märkus
macOS-is ei ole süsteemi teenuste maailm päris sama mis systemd-ga Linuxis.
Seal kohtad sagedamini:
launchd- käske nagu
log show
Selle raamatu peatükk on teadlikult rohkem Linuxi poole kaldu, sest systemctl ja journalctl on just seal kõige kesksemad.
Praktiline kontrolljärjekord
Kui teenus ei tööta, siis alusta nii:
systemctl status nimijournalctl -u nimi -n 50- vaata, kas logifailis on sama vea jälg
- kontrolli vajadusel ka võrgupeatükist, kas teenus kuulab õigel pordil
See seob hästi kokku peatükid Võrgu põhitööriistad ja Protsessid, tööd ja signaalid.
Päris näide ilma systemd-ta: näidisfail app.log
Kui sul parasjagu ei ole käepärast Linuxi teenust koos systemctl-iga, saad sama mõtte treenimiseks kasutada näidisfaili app.log:
cp data/app.log app.log
tail -n 20 app.log
See annab kohe viimased kirjed kätte.
Kui tahad näha ainult vead:
grep ' ERROR ' app.log | tail -n 10
Kui tahad viimased kirjed enne rahulikult läbi sirvida, siis:
tail -n 50 app.log | less
Kui tahad vaadata ainult andmebaasi mooduli vigu:
grep 'module=db' app.log | grep ' ERROR '
See on väga päris töövoog:
- esimene filter valib mooduli
- teine filter valib vea
Päris näide: jälgi logi reaalajas
Ühes terminalis:
cp data/app.log app.log
tail -f app.log
Teises terminalis lisa paar rida:
cat >> app.log <<'EOF'
2026-04-13T21:40:00 ERROR host=tallinn-app module=api user=vilo message="manual test error"
2026-04-13T21:40:02 WARN host=tallinn-app module=api user=vilo message="manual test warning"
EOF
See on väga hea harjutus, sest siis näed oma silmaga:
- kuidas logi kasvab
- miks
tail -fon kasulik - kuidas logid, protsessid ja teenused päriselus kokku käivad
Päris näide: too logi veebist oma hostilt
Kui paned õpiku andmefailid veebiserverisse, siis võid kasutada ka sellist töövoogu:
BASE_URL="https://sinu-domeen/~vilo/linux"
curl -L "$BASE_URL/data/app.log" -o app.log
grep ' ERROR ' app.log | tail -n 10
See näitab hästi, kuidas logi:
- tuuakse alla
- salvestatakse faili
- filtreeritakse edasi käsureal
Minitest
- Vaata mõne tuntud teenuse olekut käsuga
systemctl status. - Vaata sama teenuse viimaseid logikirjeid.
- Uuri, millised logifailid sinu süsteemis
/var/logall olemas on. - Pane ühe lausega kirja, mis vahe on teenuse seisul ja logidel.
- Filtreeri
data/app.logfailist välja ainultERRORread.