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. Это позволяет включить события распределенной базы данных в единую систему наблюдаемости, анализа и автоматизации.