Linux

Logging

Leerdoelen

  • Hoe monitoren we een linux systeem
  • Waar vinden we de log-bestanden
  • Werken met journalctl

Logging

  • Kernel logging
  • Service logging
  • Application logging

syslog

  • De traditionele manier van loggen
  • Logbestanden in /var/log
  • Logging per proces naar centraal systeem
    • syslog

Log bestanden

Mar 2 10:33:34 core01 dhcpd[12097]: Wrote 0 deleted host decls to leases file.
Mar 2 10:33:34 core01 dhcpd[12097]: Wrote 0 new dynamic host decls to leases file.
Mar 2 10:33:34 core01 dhcpd[12097]: Wrote 14 leases to leases file.
  • Een regel per bericht
  • datum tijd machine proces[pid]: bericht
  • Makkelijk met grep te doorzoeken

systemd

  • systemd is het eerste proces (1)
  • systemd start alle andere processen
  • Het weet dus welk proces gestart is
    • ... of zou moeten zijn...
  • Is de ultieme plek voor proces monitoring

systemd-journald

  • Een eigen proces
  • Neemt berichten aan
  • Slaat ze binair op...
    • /var/log/journal
  • Je hebt niets meer aan grep

journalctl

  • Een nieuwe tool
    • Om logs weer leesbaar te maken
  • Kan in zelfde format als syslog
  • ... of in vele andere formaten

reverse

  • Standaard output is van oud naar nieuw
    journalctl
  • Wil je de laatste berichten eerst zien gebruik kan -r
    journalctl -r

grep replacement

  • -g zorgt dat je regular expressions kan gebruiken
  • sudo journalctl -r -g '[Ee]rror.*[0-9]'

Data van een enkel proces

  • -u op unit naam, zoals bekend bij systemd
    • systemctl -l
  • sudo journalctl -r -u init.scope
  • -t op syslog type (proces naam)
  • sudo journalctl -r -t systemd

SSH

  • Het proces heet: sshd
  • De unit file heet: ssh.service
  • sudo journalctl -r -t sshd
  • sudo journalctl -r -u ssh.service
  • Het verschil in ouput:
    • -t sshd laat alleen sshd logging zien
    • -u ssh laat sshd logging + systemd logging zien

Follow...

  • Vaak wil je een proces kunnen volgen
  • Daarvoor is er de -f optie
  • Die kan niet samen met de reverse-optie
  • sudo journalctl -f -t sshd
  • Volgt de berichten met het oudste bericht boven en steeds een nieuwe log-regel er onder

Samenvatting

  • We hebben kennis gemaakt met journalctl
  • We hebben geleerd hoe we processen kunnen volgen en monitoren
  • Dit is maar een klein deel van wat journalctl kan
  • Zie verder man journalctl