cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

Как смотреть логи сервера: journalctl, /var/log и tail -f

Как смотреть логи сервера: journalctl, /var/log и tail -f

Логи сервера смотрят двумя путями: через journalctl (журнал systemd, куда пишут большинство сервисов) и через файлы в /var/log. Живой поток удобно ловить командой tail -f, а ошибки искать через grep. Ниже — рабочие команды на каждый день.

Где лежат логи

  • journald — централизованный журнал systemd, доступен через journalctl.
  • /var/log/ — текстовые файлы отдельных сервисов (nginx, mysql, почта).
  • dmesg — сообщения ядра.

journalctl: основной инструмент

Показать весь журнал (с конца, с прокруткой):

journalctl -e

Живой поток в реальном времени

journalctl -f

Аналог tail -f, но для всего журнала systemd. Прервать — Ctrl+C.

Логи конкретного сервиса

journalctl -u nginx
journalctl -u ssh -f

Фильтр по времени

journalctl --since "2026-05-26 09:00" --until "2026-05-26 10:00"
journalctl --since "1 hour ago"
journalctl --since today

Только ошибки

По уровню приоритета (0 — emergency, 3 — error):

journalctl -p err -b

-b ограничивает вывод текущей загрузкой системы. Логи предыдущей загрузки:

journalctl -b -1

Логи ядра

journalctl -k

Последние N строк

journalctl -u nginx -n 50

Файлы в /var/log

Полезные файлы (зависит от дистрибутива):

Файл Что содержит
/var/log/syslog Общие системные события (Debian/Ubuntu)
/var/log/auth.log Аутентификация, SSH-входы
/var/log/nginx/error.log Ошибки веб-сервера
/var/log/nginx/access.log Запросы к сайту
/var/log/mysql/error.log Ошибки MySQL/MariaDB
/var/log/dmesg Сообщения ядра при старте

tail, head, less

Живой просмотр файла:

tail -f /var/log/nginx/access.log

Последние 100 строк:

tail -n 100 /var/log/nginx/error.log

Постранично с поиском (нажмите / для поиска внутри):

less /var/log/syslog

Следить сразу за несколькими файлами:

tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Поиск по логам через grep

Найти ошибки:

grep -i "error" /var/log/nginx/error.log

Показать контекст (3 строки до и после):

grep -i -C 3 "segfault" /var/log/syslog

Считать неудачные входы по SSH:

grep "Failed password" /var/log/auth.log | wc -l

Живой поток с фильтром:

tail -f /var/log/nginx/access.log | grep " 500 "

Анализ веб-логов

Топ IP-адресов по числу запросов:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Топ запрашиваемых URL:

awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Размер и ротация логов

Размер журнала systemd:

journalctl --disk-usage

Очистить старые записи, оставив последние 200 МБ или 7 дней:

journalctl --vacuum-size=200M
journalctl --vacuum-time=7d

Текстовые логи ротируются через logrotate — настройки в /etc/logrotate.d/.

Постоянное хранение журнала

По умолчанию на некоторых системах journald хранит логи только в памяти и теряет их при перезагрузке. Включите постоянное хранение:

mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

Теперь journalctl -b -1 покажет логи предыдущих загрузок — это незаменимо при разборе внезапных перезагрузок.

Фильтрация по нескольким условиям

journalctl комбинирует фильтры. Ошибки конкретного сервиса за последний час:

journalctl -u nginx -p err --since "1 hour ago"

Логи по конкретному процессу (PID):

journalctl _PID=1234

По исполняемому файлу:

journalctl /usr/sbin/sshd

Формат вывода для разбора

Для передачи в скрипты удобен JSON:

journalctl -u nginx -o json-pretty --since today

Компактный вывод без переносов и с приоритетами:

journalctl -o short-precise -p warning

Мониторинг ошибок в реальном времени

Собрать «панель тревоги» — живой поток только ошибок со всех сервисов:

journalctl -f -p err

Оставьте команду в отдельной сессии tmux/screen, чтобы сразу видеть проблемы по мере их появления. Это простая замена дашбордам, когда нужно быстро разобраться в поведении сервера.

Частые вопросы

Почему в /var/log/auth.log пусто? На системах с journald логи могут не дублироваться в файлы. Смотрите journalctl -u ssh.

Как посмотреть логи упавшего сервиса? journalctl -u имя_сервиса -n 100 --no-pager — покажет последние строки перед падением.

Логи занимают много места — что делать? Ограничьте журнал через journalctl --vacuum-size и задайте SystemMaxUse в /etc/systemd/journald.conf.

Как экспортировать логи в файл? journalctl -u nginx --since today > nginx-today.log.

В чём разница между tail -f и journalctl -f? tail -f следит за одним файлом, journalctl -f — за всем журналом systemd с фильтрами по сервису и приоритету.


Уверенная работа с логами упрощает эксплуатацию. Разместите проект на аренде VPS или VPS для VPN и безопасности. Мониторинг и разбор инцидентов возьмёт на себя Администрирование серверов.

Ольга Наумова

Ольга Наумова

Ведущий DevOps-инженер. Автоматизирует развёртывание серверов и настраивает KVM-доступ, чтобы клиенты запускались за минуты.