Skip to content

Настройка журналирования Redis в Syslog (подсистема ЖУРНАЛЛИСТ)

Redis поддерживает вывод журналов в файл и в стандартный поток (stdout). Прямой отправки в syslog нет, поэтому интеграция с подсистемой ЖУРНАЛЛИСТ выполняется через системный syslog (rsyslog / syslog-ng).

Общая схема

Redis:

  • генерирует события (запуск, ошибки, операции, репликация)
  • пишет их в stdout или файл
  • syslog (rsyslog / syslog-ng) собирает данные
  • syslog пересылает сообщения в ЖУРНАЛЛИСТ

Варианты интеграции

Доступны два основных подхода:

  1. Через systemd / journald (рекомендуется)
  2. Через файл логов (универсальный вариант)

Вариант 1. Через systemd / journald

Если Redis запущен как сервис systemd, его вывод можно направить в journald.

Конфигурация Redis

Файл:

bash
/etc/redis/redis.conf

Настройки:

conf
logfile ""
loglevel notice

Пустой logfile означает вывод в stdout.

Настройка systemd

ini
[Service]
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
StandardOutput=journal
StandardError=journal

Проверка

bash
journalctl -u redis

Пересылка через rsyslog

Включение модуля:

bash
module(load="imjournal")

Фильтр:

bash
if $programname == 'redis-server' then @@journalist-server:514
& stop

Вариант 2. Через файл логов

Конфигурация Redis

conf
logfile /var/log/redis/redis.log
loglevel notice

Настройка rsyslog (imfile)

bash
# /etc/rsyslog.d/redis.conf

input(type="imfile"
      File="/var/log/redis/redis.log"
      Tag="redis"
      Facility="local0")

Пересылка в ЖУРНАЛЛИСТ

bash
local0.* @@journalist-server:514

Перезапуск

bash
systemctl restart redis
systemctl restart rsyslog

syslog-ng (альтернатива)

bash
source s_redis {
    file("/var/log/redis/redis.log");
};

destination d_journalist {
    tcp("journalist-server" port(514));
};

log {
    source(s_redis);
    destination(d_journalist);
};

Проверка

  1. Проверить локальные логи:
bash
tail -f /var/log/redis/redis.log

или:

bash
journalctl -u redis
  1. Проверить поступление событий в ЖУРНАЛЛИСТ

Какие события попадают

  • запуск и остановка Redis
  • ошибки конфигурации
  • операции репликации
  • подключение клиентов
  • ошибки памяти
  • события persistence (RDB/AOF)

Рекомендации

  • использовать stdout + journald для современных систем
  • назначать отдельный facility (local0–local7)
  • использовать TCP для передачи
  • избегать уровня debug в production

Особенности Redis

  • минималистичное логирование
  • высокая производительность
  • важно контролировать объем логов

Когда использовать данный подход

Рекомендуется:

  • для production-сред
  • при централизованном мониторинге
  • при корреляции с другими системами (Kafka, MongoDB, приложения)

Краткий вывод

Redis легко интегрируется с подсистемой ЖУРНАЛЛИСТ через системный syslog. Это позволяет включить события in-memory хранилища в общую картину инфраструктуры и использовать их для анализа и автоматизации.