Skip to content

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

Apache Cassandra использует logback для ведения журналов. Прямой отправки в syslog «из коробки» нет, поэтому интеграция с подсистемой ЖУРНАЛЛИСТ выполняется через:

  • отправку логов в syslog через logback (SyslogAppender), или
  • запись в файл с последующей передачей через системный syslog (rsyslog / syslog-ng)

Общая схема

Cassandra:

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

Где настраивается логирование

Файл конфигурации:

bash
$CASSANDRA_HOME/conf/logback.xml

Вариант 1. Прямая отправка в syslog (через logback)

Добавление SyslogAppender

xml
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
    <syslogHost>localhost</syslogHost>
    <port>514</port>
    <facility>LOCAL0</facility>
    <suffixPattern>%date [%thread] %-5level %logger - %msg%n</suffixPattern>
</appender>

Подключение аппендера

xml
<root level="INFO">
    <appender-ref ref="SYSLOG"/>
</root>

Перезапуск Cassandra

bash
systemctl restart cassandra

Вариант 2. Через файл (рекомендуется для production)

Настройка logback

Пример:

xml
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/cassandra/system.log</file>
</appender>

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

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

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

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

bash
local0.* @@journalist-server:514

Перезапуск

bash
systemctl restart rsyslog

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

bash
source s_cassandra {
    file("/var/log/cassandra/*.log");
};

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

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

Проверка

  1. Проверить локальные логи:
bash
tail -f /var/log/cassandra/system.log
  1. Проверить работу Cassandra:
  • запуск/остановка узла
  • операции записи/чтения
  • ошибки
  1. Убедиться, что события появляются в ЖУРНАЛЛИСТ

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

  • запуск и остановка узлов
  • ошибки репликации
  • проблемы согласованности
  • сетевые ошибки
  • GC и производительность
  • события кластера

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

  • использовать отдельный facility (local0–local7)
  • ограничивать уровень логирования (INFO/WARN)
  • использовать TCP для передачи
  • использовать файловый вариант + rsyslog для production

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

  • распределенная архитектура
  • большое количество событий
  • высокая нагрузка при включении debug

Когда использовать syslog

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

  • при централизованном мониторинге
  • для анализа состояния кластера
  • для корреляции с другими системами

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

Apache Cassandra интегрируется с подсистемой ЖУРНАЛЛИСТ через logback и системный syslog. Это позволяет включить события распределенной базы данных в единую систему наблюдаемости, анализа и автоматизации.