Просмотр логов в реальном времени: tail, grep и journalctl
Дата публикации: 24.04.2026

Просмотр логов в реальном времени: tail, grep и journalctl

ccb9a536


Просмотр логов в реальном времени: tail, grep и journalctl

Как следить за сервером, как детектив за подозреваемым — быстро, точно и без лишнего шума

Вы когда-нибудь чувствовали, что ваш сервер ведёт себя подозрительно? То ли сайт внезапно тормозит, то ли трафик арбитражных кампаний идёт мимо целей, то ли ботнет пытается подобрать пароль к SSH. Логи — это чёрный ящик сервера, где записано всё: ошибки, предупреждения, успешные операции и даже попытки взлома.

Но логи бесполезны, если вы не умеете их читать в реальном времени. Представьте, что вы смотрите трансляцию футбольного матча с задержкой в час — вы пропустите гол, красную карточку и пенальти. Так же и с сервером: если вы проверяете логи раз в неделю, вы пропустите атаку, сбой базы данных или утечку трафика.

В этом уроке вы научитесь: ✅ Отслеживать логи в реальном времени (как оператор дрона следит за полётом). ✅ Фильтровать важную информацию (как детектив ищет отпечатки пальцев на месте преступления). ✅ Работать с разными типами логов (системные, веб-сервера, приложений).


1. Почему логи важны для веб-мастера и арбитражника?

Логи — это история жизни вашего сервера. Они помогают:

  • Выявлять ошибки (например, почему Nginx отдаёт 502 Bad Gateway).
  • Отслеживать атаки (брутфорс SSH, сканирование портов).
  • Анализировать трафик (откуда идут запросы, какие страницы популярны).
  • Диагностировать производительность (медленные SQL-запросы, перегрузка CPU).

Пример из жизни арбитражника: Вы запустили кампанию, но конверсии нет. Проверяете логи Nginx и видите, что 90% трафика идёт с ботов, а не с реальных пользователей. Без логов вы бы слили бюджет впустую.


2. Основные инструменты для работы с логами

Мы будем использовать три команды:

  1. tail — показывает конец файла (идеально для реального времени).
  2. grep — фильтрует текст по ключевым словам (как поиск по Ctrl+F).
  3. journalctl — работает с системными логами (если у вас systemd).
Команда Назначение Пример использования
tail Просмотр конца файла в реальном времени tail -f /var/log/nginx/access.log
grep Поиск по ключевым словам grep "404" /var/log/nginx/error.log
journalctl Просмотр системных логов journalctl -u nginx -f

3. tail: Следим за логами в реальном времени

Как работает tail?

Команда tail (от англ. хвост) показывает последние строки файла. Ключ -f (follow) позволяет отслеживать изменения в реальном времени — как если бы вы смотрели прямую трансляцию.

Базовый синтаксис:

tail [опции] /путь/к/файлу

Основные опции tail

Опция Описание Пример
-f Следить за изменениями (follow) tail -f access.log
-n Показать N последних строк tail -n 20 error.log
-q Не выводить имена файлов tail -q *.log

Примеры использования

  1. Следить за логами Nginx в реальном времени:

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

    Вы увидите все новые запросы к вашему веб-серверу.

  2. Посмотреть последние 50 строк лога ошибок:

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

    Полезно, если сервер только что упал и вы ищете причину.

  3. Следить за несколькими логами одновременно:

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

    Вывод будет с указанием, из какого файла какая строка.


4. grep: Ищем иголку в стоге сена

Зачем нужен grep?

Логи могут содержать тысячи строк в секунду. Чтобы не тонуть в информации, нужно фильтровать только то, что важно. grep (от Global Regular Expression Print) ищет строки по шаблону.

Базовый синтаксис:

grep [опции] "шаблон" файл

Основные опции grep

Опция Описание Пример
-i Игнорировать регистр grep -i "error" log.txt
-v Исключить строки с шаблоном grep -v "bot" access.log
-E Расширенные регулярные выражения grep -E "404|500" error.log
-C Показать N строк вокруг совпадения grep -C 3 "fail" auth.log

Примеры использования

  1. Найти все ошибки 404 в логах Nginx:

    grep "404" /var/log/nginx/access.log
  2. Искать попытки взлома SSH (неудачные логины):

    grep "Failed password" /var/log/auth.log

    Это покажет все неудачные попытки входа по SSH.

  3. Исключить ботов из логов (например, Googlebot):

    grep -v "Googlebot" /var/log/nginx/access.log
  4. Комбинируем tail и grep для реального времени:

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

    Эта команда покажет только POST-запросы к /api в реальном времени.


5. journalctl: Системные логи для продвинутых

Если ваш сервер работает на systemd (а это 99% современных Linux-дистрибутивов), то системные логи хранятся в binary format и читаются через journalctl.

Базовый синтаксис:

journalctl [опции]

Основные опции journalctl

Опция Описание Пример
-u Логи конкретного сервиса journalctl -u nginx
-f Следить в реальном времени journalctl -f
--since Логи с определённого времени journalctl --since "1 hour ago"
-p Фильтр по уровню важности journalctl -p err

Уровни важности логов (приоритеты)

Уровень Код Описание
Emergency 0 Система неработоспособна
Alert 1 Требуется немедленное действие
Critical 2 Критическая ошибка
Error 3 Ошибка (например, сбой сервиса)
Warning 4 Предупреждение
Notice 5 Важное сообщение
Info 6 Информационное сообщение
Debug 7 Отладочная информация

Примеры использования

  1. Посмотреть логи Nginx за последний час:

    journalctl -u nginx --since "1 hour ago"
  2. Следить за критическими ошибками в реальном времени:

    journalctl -f -p 3

    Покажет только ошибки уровня Error и выше.

  3. Найти логи, связанные с конкретным процессом (например, PHP-FPM):

    journalctl -u php-fpm --no-pager | grep "slow"

    Полезно для поиска медленных скриптов.


6. Продвинутые приёмы: Комбинируем команды

Реальная мощь раскрывается, когда вы соединяете команды через пайп (|).

Пример 1: Ищем DDoS-атаку

tail -f /var/log/nginx/access.log | grep -E "GET /|POST /" | awk '{print $1}' | sort | uniq -c | sort -nr

Что делает эта команда?

  1. tail -f — следит за логами Nginx.
  2. grep -E "GET /|POST /" — фильтрует только HTTP-запросы.
  3. awk '{print $1}' — вытаскивает IP-адреса.
  4. sort | uniq -c | sort -nr — считает количество запросов с каждого IP и сортирует по убыванию.

Если какой-то IP делает 1000 запросов в секунду — это явный признак атаки.

Пример 2: Мониторинг ошибок MySQL

journalctl -u mysql -f | grep -i "error"

Покажет все ошибки MySQL в реальном времени.

Пример 3: Поиск медленных SQL-запросов

grep "slow query" /var/log/mysql/mysql-slow.log | tail -n 20

Полезно для оптимизации базы данных.


7. Где хранятся логи?

Расположение логов зависит от сервиса. Вот основные пути:

Сервис Путь к логам Что там ищем?
Nginx /var/log/nginx/access.log Запросы к веб-серверу
/var/log/nginx/error.log Ошибки Nginx
Apache /var/log/apache2/access.log Аналогично Nginx
MySQL /var/log/mysql/error.log Ошибки базы данных
SSH /var/log/auth.log Попытки входа по SSH
Системные journalctl Логи ядра, сервисов, демонов
PHP /var/log/php_error.log Ошибки PHP-скриптов

8. Советы по работе с логами

  1. Используйте less для больших файлов:

    less /var/log/nginx/access.log

    Позволяет листать логи вверх-вниз (клавиши , , / для поиска).

  2. Архивируйте и ротируйте логи:

    • Логи со временем занимают много места. Настройте logrotate (утилита для архивации логов).
    • Пример конфига для Nginx:
      /var/log/nginx/*.log {
       daily
       missingok
       rotate 14
       compress
       delaycompress
       notifempty
      }
  3. Настройте уведомления о критических ошибках:

    • Используйте cron + grep для отправки алертов на почту или в Telegram.
    • Пример (ищем ошибки 500 и отправляем на почту):
      grep "500" /var/log/nginx/error.log | mail -s "Server Error 500" admin@example.com
  4. Используйте multitail для удобного просмотра:

    multitail /var/log/nginx/access.log /var/log/nginx/error.log

    Позволяет следить за несколькими логами в одном окне с цветовой разметкой.


Практика для закрепления

Упражнение 1. Базовый мониторинг

  • Запустите tail -f для логов Nginx (access.log).
  • Откройте свой сайт в браузере и наблюдайте, как появляются новые записи.
  • Вопрос: Какие данные записываются в access.log при каждом запросе?

Упражнение 2. Поиск ошибок

  • Найдите все ошибки 404 в логах Nginx за последние 24 часа.
  • Подсказка: Используйте grep + tail или journalctl.

Упражнение 3. Анализ атак

  • Проверьте /var/log/auth.log на наличие неудачных попыток входа по SSH.
  • Вопрос: Какой IP чаще всего пытается подобрать пароль?

Упражнение 4. Комбинированная команда

  • Напишите команду, которая:
    1. Следит за access.log в реальном времени.
    2. Фильтрует только запросы к /admin.
    3. Выводит только IP-адреса и URL.
  • Подсказка: Используйте tail -f, grep и awk.

Упражнение 5. Системные логи

  • Посмотрите логи сервиса sshd за последний день с помощью journalctl.
  • Вопрос: Сколько раз перезапускался SSH-сервер?

Ответы и разбор упражнений вы найдёте в следующем уроке! (Но попробуйте сначала сделать самостоятельно — это лучший способ научиться.)


Итог

Теперь вы умеете: ✔ Следить за логами в реальном времени (tail -f). ✔ Фильтровать важную информацию (grep). ✔ Работать с системными логами (journalctl). ✔ Комбинировать команды для сложного анализа.

Логи — это ваш главный инструмент диагностики. Чем лучше вы их понимаете, тем быстрее найдёте и исправите проблемы на сервере.

Домашнее задание:

  1. Настройте alias в .bashrc для быстрого доступа к логам:
    alias nginxlogs='tail -f /var/log/nginx/access.log'
    alias sshlogs='tail -f /var/log/auth.log'
  2. Автоматизируйте поиск критических ошибок с помощью cron.

В следующем уроке: "Как настроить ротацию логов и отправлять алерты в Telegram." 🚀


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы