Files
Blog/posts/23-10-26-Journald.md
Eli Winderickx 1a10fcdf49 Grafische overhoal & Post sort
modified:   components/BlogList.js
	modified:   components/Header.js
	modified:   components/Layout.js
	deleted:    data/info.md
	new file:   data/over.md
	renamed:    pages/info.js -> pages/over.js
	renamed:    posts/24Jun-zabbix-prom.md -> posts/23-06-24-zabbix-prom.md
	renamed:    posts/1Jul-SELinuxMetZabbix.md -> posts/23-07-01-SELinuxMetZabbix.md
	renamed:    posts/9Jul-zabbix-ha-cluster.md -> posts/23-07-09-Zabbix-ha-cluster.md
	renamed:    posts/16Jul-rebranding-zabbix.md -> posts/23-07-16-Rebranding-zabbix.md
	renamed:    posts/21Jul-OpenSSH.md -> posts/23-07-21-OpenSSH.md
	renamed:    posts/22Jul-Permissions.md -> posts/23-07-22-Permissions.md
	renamed:    posts/24Jul-SyncRepo.md -> posts/23-07-24-SyncRepo.md
	renamed:    posts/28Jul-SystemdApps.md -> posts/23-07-28-SystemdApps.md
	renamed:    posts/31Jul-SELinux.md -> posts/23-07-31-SELinux.md
	renamed:    posts/1Aug-Documentatie.md -> posts/23-08-01-Documentatie.md
	renamed:    posts/10Aug-AWK_basis.md -> posts/23-08-10-AWK_basis.md
	renamed:    posts/16Aug-GetAGrep.md -> posts/23-08-16-GetAGrep.md
	renamed:    posts/23Aug-Git_masterclass.md -> posts/23-08-23-Git_masterclass.md
	renamed:    posts/30Aug-ZabbixBackup.md -> posts/23-08-30-ZabbixBackup.md
	renamed:    posts/6Sept-Kickstart.md -> posts/23-09-06-Kickstart.md
	renamed:    posts/27Sept-GitlabUpgrade.md -> posts/23-09-27-GitlabUpgrade.md
	renamed:    posts/4Okt-HashicorpVault.md -> posts/23-10-04-HashicorpVault.md
	renamed:    posts/8Okt-Certbot.md -> posts/23-10-08-Certbot.md
	renamed:    posts/11Okt-HashicorpVault.md -> posts/23-10-11-HashicorpVault.md
	renamed:    posts/12Okt_ACL.md -> posts/23-10-12-ACL.md
	renamed:    posts/18Okt-InABind.md -> posts/23-10-18-InABind.md
	renamed:    posts/23Okt-Autofs.md -> posts/23-10-23-Autofs.md
	renamed:    posts/25Okt-RPM.md -> posts/23-10-25-RPM.md
	renamed:    posts/26Okt-Journald.md -> posts/23-10-26-Journald.md
	modified:   styles/Info.module.css
2024-03-24 20:34:27 +01:00

4.5 KiB

title, excerpt, coverImage, date, author, hero_image, category
title excerpt coverImage date author hero_image category
Problemen oplossen door logs in te stellen De oorzaak van een probleem is niet altijd ver te zoeken. Begin daarom bij het begin; Instellen van jouw logs! /Logging/Logging.png 2023-10-26T12:00:00.000Z Eli Winderickx /Logging.png Journald,Logging,Linux

Syslog

De eenvoudigste en meest gebruikte log methode is door middel van de rsyslog service. De configuratie zit volledig in /etc/rsyslog.conf en /etc/rsyslog.d/. Hierin kan je eenvoudig zeggen welke soort meldingen, met specifieke prioriteiten naar een bepaalde log locatie gaan.

De verschillende logs

Faciliteiten

Code Faciliteit Omschrijving
0 kern Kernel berichten
1 user User-level berichten
2 mail Mail systeem berichten
3 daemon System daemon messages
4 auth Authenticatie en beveiliging
5 syslog Interne syslog berichten
6 lpr Printer berichten
7 news Netwerk berichten
8 UUCP UUCP protocol berichten
9 cron Berichten rond Cron
10 authpriv Non-systeem authorizatie berichten
11 ftp FTP protocol berichten
16-23 local0 - local7 Aangepaste lokale berichten

Prioriteiten

Deze prioriteiten kan je ook gebruiken in Journald

Code Prioriteit Omschrijving
0 emerg Het systeem is onbruikbaar
1 alert Dringend actie vereist
2 crit Kritieke toestand
3 err Niet-kritieke toestand
4 warning Waarschuwing
5 notice Melding
6 info Informatief
7 debug Debugging informatie

Door middel van een combinatie van zowel de Faciliteiten en de Prioriteiten, kunnen we een entry aanmaken in de rsyslog configuratie gevolgd door de locatie van een logbestand. Deze zal dan uitsluitend informatie over die specifieke faciliteit en die prioriteit en hoger dan je invult. Ook kan je een * gebruiken om ineens alle faciliteiten of prioriteiten te viseren. Als je dit combineert met andere faciliteiten (door middel van een ; symbool) kan je ook none als prioriteit ingeven om specifieke faciliteiten te filteren.

/etc/rsyslog.d/local_info

local0.info /var/log/local_info

vergeet niet de rsyslog service te herstarten na de aanpassing!

Zoeken in rsyslog

We kunnen onze configuratie nu testen door middel van logger. Hiermee kunnen we een specifieke faciliteit en prioriteit meegeven om er voor te zorgen dat we een entry kunnen testen.

logger -p local0.info "Dit was een test"

Hierna kunnen we zoeken in /var/log/local_info met allerhande tools. Gebruik tail -f om de actuele entries te verzamelen of grep <zoekopdracht> om echt in het bestand te zoeken naar een specifieke entry.

Journald

Dezelfde prioriteiten als bij rsyslog kunnen gebruikt worden. Veelal is de informatie in deze logs beperkt tot de services die door systemd beheert worden. Wat uiteindelijk wel een sterk groeiende lijst is. Een groot verschil met rsyslog is dat journald standaard geen logs bijhoudt op de harde schijf maar in het geheugen. Herstart de computer? Dan zijn de logs weg.

Entries in rsyslog worden ook in journald gelogged!

Je kan dit wel eenvoudig aanpassen in /etc/systemd/journald.conf. Hier is namelijk een optie genaamd Storage. Als deze op auto staat, wat de standaard is, gaat journald kijken of /var/log/journal bestaat. Als dat niet het geval is, schrijft Journald alle info naar /run/log. Deze locatie bestaat dus enkel in het geheugen. De Storage optie kan je ook aanpassen naar persistent. Hiermee wordt door journald de juiste map aangemaakt. Vul je volatile in, gaat journald sowieso naar het geheugen schrijven.

Zoeken in Journald

Ook hier kan je eenvoudig testen met een 'identifier' en 'prioriteit':

echo "Dit is mijn unieke error" | systemd-cat -t "My_Unique_identifier" -p info

Er zijn een aantal flags die je gaan helpen om de data te filteren. Standaard wordt er namelijk wel wat informatie gelogged in journald.

# Toon alle informatie
journalctl
# Toon info van sshd service
journalctl -u sshd.service
# Toon enkel Kritieke meldingen
journalctl -p crit
# Toon alle actuele entries
journalctl -f
# Toon info over de laatste opstart
# Werkt enkel als journald persistent werkt
journalctl -b1
# Toon enkel berichten van gisteren tot 4 uur geleden
journalctl -S "yesterday" -U "-4hours"
# Toon berichten met een specifieke rsyslog facility
journalctl --facility=user
# Zoek naar een specifieke tekst
journalctl -g "NetworkManager"