Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Логирование в Linux: journald, rsyslog, Loki

Логирование в Linux: journald, rsyslog, Loki

Логи — это глаза и уши системного администратора. Когда что-то идёт не так, именно журналы первыми дают ответ на вопрос «что произошло и когда». Современный Linux предлагает несколько уровней логирования: встроенный journald, классический rsyslog и современный Loki для централизованного сбора.

journald: системный журнал по умолчанию

systemd-journald — стандартный сборщик логов во всех современных дистрибутивах. Он собирает сообщения от systemd-юнитов, ядра, syslog и приложений. Основной инструмент для работы с ним — journalctl.

Просмотр всех логов:

journalctl

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

journalctl -u nginx.service

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

journalctl -u nginx.service -f

Логи за последний час:

journalctl --since "1 hour ago"

Логи за конкретный период:

journalctl --since "2026-04-01 00:00" --until "2026-04-02 00:00"

Только ошибки и критические сообщения:

journalctl -p err

По умолчанию journald хранит логи в памяти. Чтобы включить персистентное хранение, отредактируйте /etc/systemd/journald.conf:

[Journal]
Storage=persistent
SystemMaxUse=2G

rsyslog: классика для пересылки логов

Rsyslog — зрелый и гибкий демон логирования, который умеет фильтровать, трансформировать и пересылать логи по сети. На многих серверах он работает параллельно с journald.

Конфигурация rsyslog находится в /etc/rsyslog.conf и /etc/rsyslog.d/. Пример пересылки всех логов на удалённый сервер по UDP:

*.* @192.168.1.100:514

Для TCP (надёжнее):

*.* @@192.168.1.100:514

Пример фильтрации — писать только сообщения nginx в отдельный файл:

if $programname == 'nginx' then /var/log/nginx-custom.log
& stop

Loki: современный агрегатор логов

Loki от Grafana Labs — это как Prometheus, но для логов. Он не индексирует содержимое логов, только метки (labels), что делает его очень экономным по ресурсам. В связке с Promtail (агент сбора) и Grafana (визуализация) получается мощная система.

Установка Promtail для отправки логов в Loki:

# Скачать бинарник
wget https://github.com/grafana/loki/releases/latest/download/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
mv promtail-linux-amd64 /usr/local/bin/promtail

Минимальный конфиг /etc/promtail/config.yml:

server:
  http_listen_port: 9080

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  - job_name: system
    static_configs:
      - targets:
          - localhost
        labels:
          job: varlogs
          __path__: /var/log/*.log

В Grafana можно строить дашборды и настраивать алерты на основе логов так же, как и для метрик.

Что выбрать

  • journald — для просмотра логов на конкретном сервере, всегда доступен
  • rsyslog — если нужна централизованная пересылка по syslog-протоколу, совместимость с legacy-системами
  • Loki — для современной инфраструктуры с Grafana, особенно если уже используется Prometheus

Три инструмента прекрасно сосуществуют: journald собирает, rsyslog пересылает, Loki агрегирует и хранит.

3 Ответа

  1. Loki — огонь, особенно в связке с Grafana. Перешли на него полгода назад и не жалеем, ресурсов жрёт в разы меньше чем ELK при сопоставимом функционале.

  1. Хорошее сравнение. Добавлю, что для journald критически важно настроить ротацию через SystemMaxUse, иначе на нагруженных серверах он спокойно съедает весь диск.

  1. Статья хорошая, но не хватает упоминания Vector как альтернативы Promtail — он более универсален и умеет трансформировать логи на лету.