Открыть сервис

Логи серверов

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

История

С развитием вычислительной техники и появлением многопользовательских операционных систем (1960-е годы) возникла необходимость в фиксации действий пользователей и системных процессов. Первые логи представляли собой простые текстовые файлы, в которые записывались сообщения ядра операционной системы. В 1970-х годах с появлением протокола TCP/IP и сетевых служб (например, FTP, SMTP) логи стали использоваться для регистрации сетевых подключений и ошибок передачи данных.

В 1980-х годах стандарт Syslog (RFC 3164) был разработан для унификации формата передачи логов в Unix-подобных системах. В 1990-х годах, с ростом популярности веб-серверов (Apache, Nginx), логи стали ключевым инструментом для анализа трафика и выявления атак. В 2000-х годах появились централизованные системы сбора и анализа логов (например, Splunk, ELK Stack), что позволило обрабатывать терабайты данных в реальном времени.

Классификация логов

Логи классифицируются по источнику, типу события и формату записи.

По источнику

  • Системные логи — генерируются операционной системой (ядро, драйверы, службы). Пример: /var/log/syslog в Linux.
  • Логи приложений — создаются конкретным программным обеспечением (веб-сервер, база данных, ERP-система). Пример: логи ошибок Apache (error.log).
  • Логи безопасности — фиксируют попытки аутентификации, изменения прав доступа, обнаружение вторжений. Пример: auth.log в Linux.
  • Сетевые логи — записываются сетевыми устройствами (маршрутизаторы, межсетевые экраны) и содержат информацию о прохождении пакетов, соединениях и блокировках.

По типу события

  • Информационные — обычные операции (запрос страницы, успешный вход в систему).
  • Предупреждения — потенциально проблемные ситуации (высокая загрузка CPU, превышение лимита памяти).
  • Ошибки — сбои, требующие вмешательства (ошибка подключения к БД, отказ службы).
  • Критические — неисправимые ошибки, приводящие к остановке сервиса (падение ядра, потеря данных).

По формату записи

  • Текстовые — строки с разделителями (табуляция, пробел, запятая). Пример: Common Log Format (CLF) для веб-серверов.
  • СтруктурированныеJSON, XML, YAML. Удобны для машинной обработки.
  • Бинарные — записываются в сжатом или закодированном виде (например, журналы Windows Event Log).

Устройство и формат записи

Типичная запись лога содержит следующие поля:

Пример записи в формате Common Log Format (веб-сервер Apache): `` 192.168.1.1 - - [10/Oct/2023:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 2326 `` Здесь: IP-адрес клиента, дата, метод запроса, путь, протокол, код ответа, размер ответа.

В структурированном формате (JSON) та же запись может выглядеть так: ``json { "timestamp": "2023-10-10T13:55:36Z", "client_ip": "192.168.1.1", "method": "GET", "path": "/index.html", "status": 200, "size": 2326 } ``

Применение

Мониторинг и отладка

Логи позволяют администраторам отслеживать состояние сервера в реальном времени. Например, при росте числа ошибок 500 (Internal Server Error) можно быстро выявить проблемный скрипт или модуль. Системы мониторинга (Zabbix, Prometheus) агрегируют логи и строят графики нагрузки.

Анализ производительности

По логам веб-сервера можно определить:

  • количество запросов в секунду (RPS);
  • среднее время ответа (latency);
  • наиболее популярные страницы;
  • узкие места (медленные запросы к БД).

Обеспечение безопасности

Логи являются ключевым инструментом для обнаружения вторжений (IDS/IPS). Анализ логов позволяет выявить:

Пример: в логах auth.log можно обнаружить сотни попыток входа с одного IP-адреса за короткое время — признак атаки перебором паролей.

Аудит и соответствие требованиям

Многие стандарты (PCI DSS, GDPR, 152-ФЗ «О персональных данных») требуют ведения логов доступа к персональным данным и финансовым транзакциям. Логи должны храниться определённое время (от 6 месяцев до 7 лет) и быть защищены от подделки.

Хранение и ротация

Логи могут занимать значительный объём дискового пространства (до гигабайтов в день на крупных проектах). Для управления объёмом применяются:

  • Ротация — автоматическое архивирование и удаление старых логов. Утилита logrotate в Linux позволяет сжимать логи, удалять записи старше N дней, отправлять по почте.
  • Централизованное хранение — логи отправляются на отдельный сервер или в облачное хранилище (например, Amazon S3, Elasticsearch). Это снижает нагрузку на рабочий сервер и упрощает поиск.
  • Сжатие — текстовые логи сжимаются архиваторами (gzip, bzip2) в 2–10 раз.

Инструменты для работы с логами

Системы сбора и анализа

  • ELK Stack (Elasticsearch, Logstash, Kibana) — открытый набор для сбора, индексации и визуализации логов. Logstash собирает логи из разных источников, Elasticsearch индексирует, Kibana строит дашборды.
  • Splunk — коммерческая платформа для анализа машинных данных. Поддерживает поиск по логам в реальном времени, машинное обучение для выявления аномалий.
  • Graylog — open-source система с веб-интерфейсом, поддерживает потоковую обработку и алерты.
  • Prometheus + Loki — стек для мониторинга и анализа логов, разработанный Grafana Labs.

Утилиты командной строки

  • grep — поиск строк по шаблону (например, grep "ERROR" /var/log/syslog).
  • awk — обработка структурированных логов (выбор полей, подсчёт статистики).
  • tail — просмотр последних записей в реальном времени (tail -f /var/log/access.log).
  • journalctl — работа с журналом systemd в Linux.

Проблемы и ограничения

  • Объём данных — на высоконагруженных серверах логи могут генерироваться со скоростью тысяч записей в секунду, что требует мощных систем хранения и обработки.
  • Шум — большое количество информационных записей затрудняет поиск критических событий. Требуется настройка фильтров и агрегации.
  • Безопасность — логи могут содержать конфиденциальные данные (пароли, номера кредитных карт, IP-адреса). Необходимо шифрование при передаче и хранении, а также контроль доступа.
  • Формат — разнообразие форматов логов (Syslog, JSON, Windows Event Log) усложняет централизованный сбор. Требуются парсеры и конвертеры.

Интересные факты

  • Первый в истории компьютерный лог был создан в 1949 году на компьютере EDSAC — он фиксировал время выполнения инструкций.
  • В 2017 году компания Equifax (США) потеряла данные 147 миллионов клиентов из-за того, что не обновляла систему сбора логов, которая могла бы выявить уязвимость.
  • В России требования к ведению логов для операторов персональных данных регулируются Приказом Роскомнадзора № 19 от 28.01.2021.

Источники

  • RFC 3164 — The BSD Syslog Protocol
  • RFC 5424 — Syslog Protocol
  • Документация Apache HTTP Server — Log Files
  • Документация Nginx — Logging
  • Стандарт PCI DSS версии 4.0 — Requirement 10: Log and Monitor All Access to System Components
  • Федеральный закон № 152-ФЗ «О персональных данных» (статья 18.1)
  • Приказ Роскомнадзора № 19 от 28.01.2021 «Об утверждении требований к ведению журналов учета...»

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →