Один из важнейших навыков при работе с виртуальным сервером (VDS) — это умение анализировать и просматривать логи. Логи помогают выявить ошибки, следить за состоянием системы, отслеживать работу сервисов и приложений. В этой статье мы подробно разберём:
journalctl, tail и logrotate,
/var/log/
В этой папке хранятся текстовые лог-файлы, в том числе:
| Файл | Назначение |
|---|---|
/var/log/syslog или /var/log/messages | Общесистемные события |
/var/log/auth.log | Аутентификация и вход в систему |
/var/log/kern.log | Сообщения ядра |
/var/log/nginx/ или /var/log/apache2/ | Логи веб-серверов |
/var/log/dpkg.log | Установка и обновление пакетов (Debian/Ubuntu) |
journalctl: системный журнал systemdСовременные дистрибутивы Linux используют systemd и хранят системные логи в бинарном формате, который читается через journalctl.
journalctl [опции]
journalctl
journalctl -n 50
tail -f):
journalctl -f
journalctl --since "1 hour ago"
journalctl --since "2024-06-01" --until "2024-06-02"
journalctl -u nginx.service
journalctl -u sshd
journalctl -b
journalctl _PID=1234
PID можно найти с помощью команды:
ps aux | grep имя_процесса
Или с помощью htop
tail: просмотр «хвоста» логовКоманда tail позволяет просматривать последние строки файла — идеально подходит для работы с обычными текстовыми логами в /var/log.
tail /var/log/syslog
tail -n 50 /var/log/nginx/access.log
tail -f /var/log/nginx/access.log
Можно использовать вместе с grep для фильтрации:
tail -f /var/log/auth.log | grep "Failed password"
logrotate: автоматическое управление логамиlogrotate — это системная утилита в Linux, которая автоматически управляет лог-файлами, что бы они не переполняли диск, не росли бесконечно, при этом сохраняли необходимую информацию.
logrotate:.gz)cron)Основной файл:
/etc/logrotate.conf
Дополнительные настройки:
/etc/logrotate.d/
/var/log/nginx/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 www-data adm
postrotate
systemctl reload nginx > /dev/null
endscript
}
*.log — будут обрабатываться все лог-файлыdaily — выполнение ежедневноrotate 7 — хранить 7 архивовcompress — старые логи сжимаютсяmissingok — не показывать ошибку, если файла нетnotifempty — не ротировать пустые логиcreate — создаётся новый файл после ротацииpostrotate — что делать после ротации
logrotate -d /etc/logrotate.conf
Permission deniedПроверьте права доступа:
sudo tail -f /var/log/auth.log
No space left on deviceЛоги могут переполнить диск. Настройте logrotate и регулярно чистите:
sudo journalctl --vacuum-time=7d
journalctl показывает не всёВозможно, логи только для root. Используйте sudo:
sudo journalctl -u apache2
/var/log/ — следите за размером логов.logrotate — это продлит жизнь диска и упростит отладку.journalctl с фильтрами — быстро находите нужные события.Логи — это сердце диагностики вашего VDS. Понимание и умелое использование journalctl, tail и logrotate позволяет:
Освойте эти инструменты — и ваш сервер будет под надёжным контролем.