Úvod Hledání On-line hry On-line testy Předplatné Jak podpořit Blogovník Provozní podmínky Zásady ochrany osobních údajů
 



Návštěvy
Celkem:561071
Tento rok:9277
počítadlo ALAWARE.CZ

Úvodní strana  Prohlížení článků  Journalctl. Podrobný návod.




Journalctl. Podrobný návod.

Starý logovací systém je pryč. Je to dobrá zpráva? Po instalaci operačního systému OpenSuse Tumbleweed jsem chtěl zkontrolovat logy. Standardně byly systémové logy umístěny v adresáři /var/log/, konkrétně v souborech messages..., firewall..., mail... apod. Jednalo se o jednoduchý systém logování, který jsem obdivoval, soubory bylo možno grepovat, prohlížet, editovat, mazat, protože se ukládaly po předem stanovených velikostech.

Tento návod platí pro OpenSuse Tumbleweed, ale pravděpodobně bude platit i pro jiné linuxové systémy.

Ale nebyli by to mimozemští vývojáři Linuxu, kdyby se nesnažili svým sporadickým uživatelům nějak pomáhat. Uživatel, který byl dlouhé roky zvyklý na určitý způsob sledování a vyhodnocování logů, a podotýkám, že některé mnou připravené bashe fungují na tom, že grepují a vyhodnocují zprávy z logu "messages", má nyní velký problém. Kouká do prázdného adresáře /var/log/ a neví, co si má o těch ufounech tvořících Linux, myslet. Jsou normální nebo jsou to dementi? Proč proboha "vylepšují" něco, co funguje??? Kdyby se radši zaměřili na to proč ta jejich slavná KDE plazma padá s frekvencí pět pádů za den!!! A nebo proč v KDE plazmě nejsou šetřiče obrazovky a uživatel si musí stáhnout xscreensaver + screensavery (šetřiče) a následně spustit a nastavit xscreensaver-demo!!! A to kdo ví, jestli tohle je konec nastavení šetřiče, protože se může kdovíco přihodit a nikdo kromě ufounů neví, co!

Ale zpět k novému systému logování.

Takže, naši přátelé neznámí a neidentifikovatelní linuxfouni zavedli nový způsob logování, který nazývají pro ufouny srozumitelným názvem Journalctl. Teoreticky bych si odvodil, že Journal = Zápisník a ctl = CONTROL. Ale je samozřejmě ve hvězdách, co tímto linuxfouni sledovali. Každopádně v adresáři /var/log nenajdeme nic a uživatel v tu ránu googluje jako divý a zjišťuje, s čím ho Linux opět vypekl.

Journalctl je tedy nástroj, který má na starosti práci s logy, které generuje démon systemd. "systemd je démon, který spravuje ostatní démony", zní oficiální definice na wikipedii. Já bych to definoval jinak. Je to služba, kterou vyvinul nějakej harry potter, kterej si o sobě myslí, že je pán bůh, a do všeho se, s prominutím, sere.  Journalctl spravuje logy, které tento srací démon a jeho přidružení démoni vyblijí.

Journalctl a konzole

Nyní bude následovat doslova smršť variací příkazů v konzoli. Doufám, že vydržíte :-).

Journalctl se primárně ovládá v konzoli. Pokud napíšete příkaz

journalctl

tak obdržíte výpis událostí přímo do konzole, což je opravu žúžo labůžo.

Pro některé uživatele může být lepší přesměrovat výpis přímo do souboru takto:

journalctl --no-pager > journalctl.txt

A pro ty největší fajnšmekry (jako jsem já) může být výhodné výpis dostat nejen do souboru, ale hlavně do nějakého editoru (kwrite) takto:

journalctl --no-pager > journalctl.txt; kwrite journalctl.txt

Ale pro ty úplně nejlepší fajnšmekry existuje superdlouhý příkaz, kterým si nejen zobrazíme log v kwrite, ale zobrazíme si tam jen něco z logu, co chceme my na základě příkazu grep takto:

journalctl --no-pager > /var/log/journalctl.txt; grep -i 'kernel' /var/log/journalctl.txt > /var/log/journalctl_kernel.txt; kwrite /var/log/journalctl_kernel.txt

Jak vidíte, tu hlavní krásu linuxu nám démoni potteři zatím nevzali. Nádherná variabilita příkazů v konzoli, kterou překonáme všechny potterovské nástrahy.

Nastavení časové zóny
Hlavní výhodou nástroje Journalctl je pracovat "nad daty", "nad logem". Můžete si např. nastavit zobrazení logů v jiném časovém pásmu, což se může hodit.

Nejprve zjistíte zkratky pro časové zóny takto:

timedatectl list-timezones

No... je jich opravdu spousta, že?

Následně si nastavíme novou časovou zónu (např. UTC) pouze pro nástroj Journalctl:

sudo timedatectl set-timezone UTC

A ověříme:

timedatectl status

Zobrazí se něco takového:

Local time: Sun 2017-07-02 11:16:06 CEST
Universal time: Sun 2017-07-02 09:16:06 UTC
RTC time: Sun 2017-07-02 09:16:06
Time zone: Europe/Prague (CEST, +0200)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Hned první řádka nás informuje o aktuálně nastaveném času pro ctl.

Základní prohlížení logu

základním příkazem je tedy:

journactl

Jeho možné rozšíření linuxovými příkazy jsme si ukázali úvodem.

Časová razítka v UTC formátu takto:
journalctl --utc

Log od posledního restartu/startu pc zobrazíme:
journalctl -b

Výpis všech startů systému, které jsou v logu:
journalctl --list-boots

Výpis logu z posledně nabootovaného systému (-1):
journalctl -b -1

Výpis konkrétního bootu (číslo je z journalctl --list-boots):
journalctl -b 509fc71184a943fea14e5a106f262683

Výpis logu podle data a času (YYYY-MM-DD HH:mm:ss):
journalctl --since "2017-07-02 11:15:00"

journalctl --since "2017-07-02 11:15:00" --until "2017-12-02 11:15:00"

journalctl --since yesterday

Velmi užitečné je mít výpis konkrétní služby, jak fungovala - např. antivir:

journalctl -u apparmor.service

nebo kombinace:

journalctl -u
apparmor.service --since today

Přehled o antiviru a discích zároveň:
journalctl -u apparmor.service -u udisks2.service --since yesterday

Seznam služeb získáme příkazem: service --status-all

Podle PID procesu:
journalctl _PID=9937

Podle uživatele:
d -u Uzivatel
1000
journalctl _UID=1000 --since today


Výpis všech logovaných uživatelů a skupin takto:

journalctl -F _UID

journalctl -F _GID


Kernel zprávy (alternativa ke grepu viz úvod):

journalctl -k

A Kernel zprávy od předchozího bootu:

journalctl -k -b -1

A zprávy podle priority (vždy od zadané k nejvyšším)

journalctl -p err -b

Kódy priorit:
    0: emerg
    1: alert
    2: crit
    3: err
    4: warning
    5: notice
    6: info
    7: debug

Výpis bez stránkování (vhodné pro výstup do souboru):

journalctl --no-pager

Omezení na počet záznamů:

journalctl -n 20

Průběžný log do konzole:

journalctl -f

Kolik log zabírá místa na disku:

journalctl --disk-usage

Čistění logu:
Zkrácení velikosti o staré záznamy na stanovenou velikost:
sudo journalctl --vacuum-size=1G
Na poslední rok:
sudo journalctl --vacuum-time=1years

Nastavení parametrů logování:

 /etc/systemd/journald.conf
  •     SystemMaxUse=: Specifies the maximum disk space that can be used by the journal in persistent storage.
  •     SystemKeepFree=: Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage.
  •     SystemMaxFileSize=: Controls how large individual journal files can grow to in persistent storage before being rotated.
  •     RuntimeMaxUse=: Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem).
  •     RuntimeKeepFree=: Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem).
  •     RuntimeMaxFileSize=: Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated.

Status, stop, start, restart v konzoli

sudo systemctl status systemd-journald
sudo systemctl stop systemd-journald
sudo systemctl start systemd-journald
sudo systemctl restart systemd-journald

Bash - poslání logu do mailu

Například nás budou zajímat všechny statusy za posledních 7 dní:

    0: emerg
    1: alert
    2: crit

journalctl -p crit --no-pager --since "7days ago" > /var/log/journalctlmail.txt
jako přílohu:
mail -S smtp=192.168.1.1 -a /var/log/journalctlmail.txt -s "Server II kriticky report" mail@mail.cz < /dev/null

nebo
jako tělo mailu:
mail -S smtp=192.168.1.1 -s 'Server II kriticky report'
mail@mail.cz < /var/log/journalctlmail.txt

A toto je vhodné zaplánovat jako bash v cronu.

Zdroj:
názor a zkušenost autora
https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs



02.07.2017,10:35
Počet čtenářů: 0





  Názory čtenářů:

Journalctl. Podrobný návod.


Nejnovější příspěvky čtenářů:

Nejsou žádné příspěvky v diskusi.
název a sídlo firmy: Josef Nádběla - ALAWARE IČ: 75811511,  sídlo: Moravská 617/18, Chropyně
Firma je zapsána do živnostenského rejstříku pod názvem 'Josef Nádběla', odkaz zde.
Jsme neplátci DPH.

Webový systém NÁDBĚLA WEB INFINITY 1.1.21D - Copyright Josef Nádběla - ALAWARE 2024 - Všechna práva vyhrazena.
CSS 3.0, PHP 5.4.20 STRICT (verze PHP na hostingu: 8.2.7), XHTML 1.0 Strict
Odladěno pro Internet Explorer 9-11; Mozilla Firefox 12-57; Opera 11,12; Google Chrome 20-34, Maxthon Cloud Browser v4.0.3.6000.
v