Глава 8 · 8.4
Четене на логове с journalctl и docker logs
Когато нещо не работи, причината почти винаги е записана в лог. В Debian и Ubuntu повечето съобщения се намират в journal на systemd.
journalctl: най-важните команди
| Команда | Какво виждате? |
|---|---|
journalctl -u caddy | Всичко за една услуга, в случая Caddy |
journalctl -u ssh --since today | Всички SSH влизания за днес |
journalctl -p err -b | Всички грешки от последното рестартиране насам |
journalctl -b -1 | Какво се е случило преди предишното рестартиране |
journalctl -f | Наблюдение в реално време (спиране с Ctrl+C) |
journalctl -e | Директно преминаване към края |
Поставете sudo пред командата или добавете себе си в групата adm (sudo usermod -aG adm anna) и ще виждате всички съобщения.
Типично търсене, когато Вашият уебсайт не работи:
anna@web1:~$ systemctl status nginx
anna@web1:~$ sudo journalctl -u nginx -p err --since "1 hour ago"
anna@web1:~$ sudo tail -n 50 /var/log/nginx/error.log
Логове на контейнери
anna@web1:/srv/diensten$ sudo docker compose logs --tail 100 vaultwarden
anna@web1:/srv/diensten$ sudo docker compose logs -f caddy
Други логове, които често ще Ви трябват
/var/log/nginx/: посетители и грешки на nginx./var/log/fail2ban.log: кого е блокирал fail2ban./var/log/unattended-upgrades/: какво е било обновено автоматично./var/log/apt/history.log: кои пакети кога са били инсталирани.
Логове, които заемат твърде много място
anna@web1:~$ journalctl --disk-usage
anna@web1:~$ sudo journalctl --vacuum-size=500M
Journal се почиства сам, но по подразбиране заема до 10 процента от Вашия диск (най-много 4 GB). Логовете на контейнерите ограничавате, както е описано в Обновяване на контейнери, почистване и ограничаване на логовете.
