Journalctl: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mnoumees (talk | contribs)
No edit summary
Mnoumees (talk | contribs)
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Sissejuhatus==
==Sissejuhatus==
''journalctl'' on k2sk ''[[Systemd]]'' logide kuvamiseks. ''systemd'' kasutab ''systemd-journald'' teenust andmete logimiseks. Teenus kogub informatsiooni kerneli teadetest yle ''kmsg'', tavap2rastest systeemi logidest ''[[Syslog]]''-ilt p2rides, kasutades oma enda API't, systeemi teenuste STDOUT ja STDERR-ist ja ''[[Auditd]]'' salvestustest.
''journalctl'' on käsk ''[[Systemd]]'' logide kuvamiseks. ''systemd'' kasutab ''systemd-journald'' teenust andmete logimiseks. Teenus kogub informatsiooni kerneli teadetest üle ''kmsg'', tavapärastest süsteemi logidest ''[[Syslog]]''-ilt pärides, kasutades oma enda API't, süsteemi teenuste STDOUT ja STDERR-ist ja ''[[Auditd]]'' salvestustest.<ref>https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#</ref>


''journalctl'' on v2ga kasulik t99riist Linuxi kasutaja varamus, sest see tsentraliseerib paljude protsesside logid yhe k2su alla olenemata nende l2hteasukohast.  
''journalctl'' on väga kasulik tööriist Linuxi kasutaja varamus, sest see tsentraliseerib paljude protsesside logid ühe käsu alla olenemata nende lähteasukohast.  


==Journalctl==
==Journalctl==
''systemd-journald'' kirjutab vaikimisi logifaile "/var/log/journal/''machine-id''/" alla. Logifailide sufiks on ''.journal''. Vigase v6i pooliku faili puhul ''.journal~''.
''systemd-journald'' kirjutab vaikimisi logifaile "/var/log/journal/''machine-id''/" alla. Logifailide sufiks on ''.journal''. Vigase või pooliku faili puhul ''.journal~''.
Juhul kui eelmainitud tee pole saadaval v6i konfiguratsioonis on nimelt nii 9eldud, kirjutab teenus pysimatuid logifaile ( kestavad j2rgmise taask2ivituseni ) kausta "/run/log/journal/''machine-id''/" .
Juhul kui eelmainitud tee pole saadaval või konfiguratsioonis on nimelt nii öeldud, kirjutab teenus püsimatuid logifaile ( kestavad järgmise taaskäivituseni ) kausta "/run/log/journal/''machine-id''/" .


===Kasutamine===
===Kasutamine===
Tavap2raselt n2evad k6iki logifaile ainult juurkasutajad v6i kasutajad kes on gruppides "wheel" v6i "adm". Teistele kasutajatele on ainult n2htavad nende enda kasutaja privaatsed logid. Lisades kasutaja ''systemd-journal'' gruppi, v6imaldab neil lugeda ka systeemi logifaile, aga ei anna kirjutamis6igust nende failide yle.
Tavapäraselt näevad kõiki logifaile ainult juurkasutajad või kasutajad kes on gruppides "wheel" või "adm". Teistele kasutajatele on ainult nähtavad nende enda kasutaja privaatsed logid. Lisades kasutaja ''systemd-journal'' gruppi, võimaldab neil lugeda ka süsteemi logifaile, aga ei anna kirjutamisõigust nende failide üle.


''journalctl'' logiread on klassifitseeritud analoogselt ''[[syslog]]'' logide katogeriseerimise protokolliga. ''Priority level'' ( ''[[Syslog#Probleemide_raskusastmed_.28Severity.29 | Probleemide raskusastmed]]'' ''syslog'' artiklis ), n2itab t2helepanu n6udmise taset, ja ''[[Syslog#Facility | Facility]]'' on kood mis n2itab mis tyypi protsessilt logirida p2rit on.
''journalctl'' logiread on klassifitseeritud analoogselt ''[[syslog]]'' logide katogeriseerimise protokolliga. ''Priority level'' ( [[Syslog#Probleemide_raskusastmed_.28Severity.29 | Probleemide raskusastmed]] ''syslog'' artiklis ), näitab tähelepanu nõudmise taset, ja ''[[Syslog#Facility | Facility]]'' on kood mis näitab mis tüüpi protsessilt logirida pärit on.


''journalctl'' v2ljund kuvatakse kasutades ''[[Less]]''-i. Kriitilised read on v2rvitud punaseks ja muidu t2helepanu v6ibolla vajavad read on tavap2rasest eredamas tekstis.  
''journalctl'' väljund kuvatakse kasutades ''[[Less]]''-i. Kriitilised read on värvitud punaseks ja muidu tähelepanu võibolla vajavad read on tavapärasest eredamas tekstis.  


Sisestades oma soovitud terminali emulaatorisse k2su '''journalctl''' kuvatakse k6ik logid, millel on kasutajal lugemis6igus. Ilma lisaparameetriteta v6ib j2rgnev v2ljund olla v2ga raskesti loetav, sest olenevalt Linuxi kasutusest, konfiguratsioonifailis s2titud logifailide k6vakettakasutuse piirangutest ja logide hoidmise ajalisest piirangust, v6ib v2ljund olla v2ga pikk ulatudes tavap2rase kasutuse puhul mitmete miljonite ridadeni.
Sisestades oma soovitud terminali emulaatorisse käsu <code>journalctl</code>  kuvatakse kõik logid, millel on kasutajal lugemisõigus. Ilma lisaparameetriteta võib järgnev väljund olla väga raskesti loetav, sest olenevalt Linuxi kasutusest, konfiguratsioonifailis sätitud logifailide kõvakettakasutuse piirangutest ja logide hoidmise ajalisest piirangust, võib väljund olla väga pikk ulatudes tavapärase kasutuse puhul mitmete miljonite ridadeni.


Filtreerimaks v2ljundit on olemas mitmeid v6tmeid, millest kasulikumad j2rgnevad :
===Väljundi filtreerimine===
Filtreerimaks väljundit on olemas mitmeid võtmeid, millest kasulikumad järgnevad :<ref>https://www.freedesktop.org/software/systemd/man/journalctl.html</ref>
----
----
*'''journalctl -b'''
<source lang="bash">journalctl -b</source> 
:: tagastab terve logi viimasest k2ivitusest saadik
:: tagastab terve logi viimasest käivitusest saadik
----
----
-b v6tmele v6ib lisada j2rgi arvu, mis n2itab mitmenda k2ivituse logi n2idata kronoloogilises j2rjekorras.
'''-b''' võtmele võib lisada järgi arvu, mis näitab mitmenda käivituse logi näidata kronoloogilises järjekorras.


*'''journalctl -b 1'''
<source lang="bash">journalctl -b 1</source>
:: tagastab esimese k2ivituse logi, mis on logiraamatus saadaval
:: tagastab esimese käivituse logi, mis on logiraamatus saadaval
----
----
Kui anda -b v6tmele miinusm2rgiga arv siis tagastatakse praegusest nii mitmes tahapoole j22v logi kui miinusm2rgi j2rel arv.
Kui anda '''-b''' võtmele miinusmärgiga arv siis tagastatakse praegusest nii mitmes tahapoole jääv logi kui miinusmärgi järel arv.


*'''journalctl -b -2'''
<source lang="bash">journalctl -b -2</source>
:: tagastab praegusest kahe v6rra tahapoole j22v logi, ehk yleeelmise.
:: tagastab praegusest kahe võrra tahapoole jääv logi, ehk üleeelmise.
----
----
''journalctl''-il on ka '''--since''' ( '''-S''' ) ja '''--until''' ( '''-U''' ) võtmed, millega saab filtreerida väljundit näitamaks logiridu mingist ajast alates kuni mingi ajani.
<source lang="bash">journalctl --since "20 min ago"</source> või <source lang="bash">journalctl --since="2016-12-01 12:01:01" --until "2016-12-08"</source>
:: tagastab logi alates 20 minutit tagasi või alates esimesest detsembrist 2016 (soovi korral võib kellaaja ka määrata, vaikimisi 00:00:00) kuni kaheksanda detsembrini.
----
Jälgimaks uusi sissetulevaid teateid reaalajas võib kasutada '''-f''' võtit.
<source lang="bash">journalctl -f</source>
:: paneb terminali ''journalctl'' kuulama, kirjutades välja kõik uued logiteated.
----
Selleks, et vaadata ainult kerneli teateid on '''-k''' võti.
<source lang="bash">journalctl -k -f | grep "IN=.*OUT=.*"</source>
:: näitab reaalajas kerneli logiteateid, aga filtreerib väljundit [[Grep kasutamine | ''grep'']]-iga näitamaks ''[[Iptables]]''-ile omaseid teateid.
----
Et vaadata kindla teenuse logiridu on olemas '''-u''' <service> võti.
<source lang="bash">journalctl -f -u pulseaudio.service</source>
:: näitab reaalajas ''[[Pulseaudio]]'' teenuse logisid.
----
Kui on vaja filtreerida prioriteedi järgi logisid, saab kasutada võtit '''-p''' <“emerg”, “alert”, “crit”, “err”, “warning”, “notice”, “info”, “debug”> .
<source lang="bash">journalctl -b -p crit</source>
või
<source lang="bash">journalctl -b -p crit..emerg</source>
:: näitab viimasest käivitusest kriitilise prioriteediga logisid või näitab viimasest käivitusest kriitilise kuni hädaolukorra prioriteediga logisid.
----
Kui on vaja näidata logisid vastupidises järjekorras alustades värskeimast saab kasutada '''-r'''.
<source lang="bash">journalctl -b -1 -r -u arno-iptables-firewall.service</source>
:: näitab eelmise käivituse [https://github.com/arno-iptables-firewall/aif Arno iptables tulemüüri] logisid alustades viimasest.
===Konfiguratsioonifail===
Tavakasutajale peaksid olema vaikimisi seaded piisavad, aga kui peaks olema tahtmist muuta ''journalctl''-i käitumist siis .conf fail asub tavapäraselt /etc/systemd/ nimega journal.conf .<ref>https://www.freedesktop.org/software/systemd/man/journald.conf.html#</ref>
Täpsemalt selle .conf faili valikute kohta lugeda vastavalt [https://www.freedesktop.org/software/systemd/man/journald.conf.html# man] lehelt.
<source lang="bash">
$ sudo nano /etc/systemd/journal.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
</source>
==Kokkuvõtteks==
<code>journalctl</code> on mõistlik valik, leidmaks oma süsteemist või protsessist probleeme, ent ka tavapäraseks administreerimiseks ja süsteemil silma peal hoidmiseks. Hulgaliselt võtmeid väljundist otsitava leidmiseks muudavad selle programmi väga võimsaks tööriistaks, mille kasutamine ei tohiks üle jõu kellelegi käia.
Rohkem infot leiab <code> journalctl --help </code> ja <code> man journalctl </code>
==Autor==
Mart-Erki Nõumees, D21, 07.12.2016.
==Viited==
<references />

Latest revision as of 16:44, 7 December 2016

Sissejuhatus

journalctl on käsk Systemd logide kuvamiseks. systemd kasutab systemd-journald teenust andmete logimiseks. Teenus kogub informatsiooni kerneli teadetest üle kmsg, tavapärastest süsteemi logidest Syslog-ilt pärides, kasutades oma enda API't, süsteemi teenuste STDOUT ja STDERR-ist ja Auditd salvestustest.[1]

journalctl on väga kasulik tööriist Linuxi kasutaja varamus, sest see tsentraliseerib paljude protsesside logid ühe käsu alla olenemata nende lähteasukohast.

Journalctl

systemd-journald kirjutab vaikimisi logifaile "/var/log/journal/machine-id/" alla. Logifailide sufiks on .journal. Vigase või pooliku faili puhul .journal~. Juhul kui eelmainitud tee pole saadaval või konfiguratsioonis on nimelt nii öeldud, kirjutab teenus püsimatuid logifaile ( kestavad järgmise taaskäivituseni ) kausta "/run/log/journal/machine-id/" .

Kasutamine

Tavapäraselt näevad kõiki logifaile ainult juurkasutajad või kasutajad kes on gruppides "wheel" või "adm". Teistele kasutajatele on ainult nähtavad nende enda kasutaja privaatsed logid. Lisades kasutaja systemd-journal gruppi, võimaldab neil lugeda ka süsteemi logifaile, aga ei anna kirjutamisõigust nende failide üle.

journalctl logiread on klassifitseeritud analoogselt syslog logide katogeriseerimise protokolliga. Priority level ( Probleemide raskusastmed syslog artiklis ), näitab tähelepanu nõudmise taset, ja Facility on kood mis näitab mis tüüpi protsessilt logirida pärit on.

journalctl väljund kuvatakse kasutades Less-i. Kriitilised read on värvitud punaseks ja muidu tähelepanu võibolla vajavad read on tavapärasest eredamas tekstis.

Sisestades oma soovitud terminali emulaatorisse käsu journalctl kuvatakse kõik logid, millel on kasutajal lugemisõigus. Ilma lisaparameetriteta võib järgnev väljund olla väga raskesti loetav, sest olenevalt Linuxi kasutusest, konfiguratsioonifailis sätitud logifailide kõvakettakasutuse piirangutest ja logide hoidmise ajalisest piirangust, võib väljund olla väga pikk ulatudes tavapärase kasutuse puhul mitmete miljonite ridadeni.

Väljundi filtreerimine

Filtreerimaks väljundit on olemas mitmeid võtmeid, millest kasulikumad järgnevad :[2]


journalctl -b
tagastab terve logi viimasest käivitusest saadik

-b võtmele võib lisada järgi arvu, mis näitab mitmenda käivituse logi näidata kronoloogilises järjekorras.

journalctl -b 1
tagastab esimese käivituse logi, mis on logiraamatus saadaval

Kui anda -b võtmele miinusmärgiga arv siis tagastatakse praegusest nii mitmes tahapoole jääv logi kui miinusmärgi järel arv.

journalctl -b -2
tagastab praegusest kahe võrra tahapoole jääv logi, ehk üleeelmise.

journalctl-il on ka --since ( -S ) ja --until ( -U ) võtmed, millega saab filtreerida väljundit näitamaks logiridu mingist ajast alates kuni mingi ajani.

journalctl --since "20 min ago"

või

journalctl --since="2016-12-01 12:01:01" --until "2016-12-08"
tagastab logi alates 20 minutit tagasi või alates esimesest detsembrist 2016 (soovi korral võib kellaaja ka määrata, vaikimisi 00:00:00) kuni kaheksanda detsembrini.

Jälgimaks uusi sissetulevaid teateid reaalajas võib kasutada -f võtit.

journalctl -f
paneb terminali journalctl kuulama, kirjutades välja kõik uued logiteated.

Selleks, et vaadata ainult kerneli teateid on -k võti.

journalctl -k -f | grep "IN=.*OUT=.*"
näitab reaalajas kerneli logiteateid, aga filtreerib väljundit grep-iga näitamaks Iptables-ile omaseid teateid.

Et vaadata kindla teenuse logiridu on olemas -u <service> võti.

journalctl -f -u pulseaudio.service
näitab reaalajas Pulseaudio teenuse logisid.

Kui on vaja filtreerida prioriteedi järgi logisid, saab kasutada võtit -p <“emerg”, “alert”, “crit”, “err”, “warning”, “notice”, “info”, “debug”> .

journalctl -b -p crit

või

journalctl -b -p crit..emerg
näitab viimasest käivitusest kriitilise prioriteediga logisid või näitab viimasest käivitusest kriitilise kuni hädaolukorra prioriteediga logisid.

Kui on vaja näidata logisid vastupidises järjekorras alustades värskeimast saab kasutada -r.

journalctl -b -1 -r -u arno-iptables-firewall.service
näitab eelmise käivituse Arno iptables tulemüüri logisid alustades viimasest.

Konfiguratsioonifail

Tavakasutajale peaksid olema vaikimisi seaded piisavad, aga kui peaks olema tahtmist muuta journalctl-i käitumist siis .conf fail asub tavapäraselt /etc/systemd/ nimega journal.conf .[3]

Täpsemalt selle .conf faili valikute kohta lugeda vastavalt man lehelt.

$ sudo nano /etc/systemd/journal.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

Kokkuvõtteks

journalctl on mõistlik valik, leidmaks oma süsteemist või protsessist probleeme, ent ka tavapäraseks administreerimiseks ja süsteemil silma peal hoidmiseks. Hulgaliselt võtmeid väljundist otsitava leidmiseks muudavad selle programmi väga võimsaks tööriistaks, mille kasutamine ei tohiks üle jõu kellelegi käia.

Rohkem infot leiab journalctl --help ja man journalctl

Autor

Mart-Erki Nõumees, D21, 07.12.2016.

Viited