Поиск по сайту:

Объедините новые функции ведения журнала и аудита NoSQL в Apache Cassandra.


Новые функции аудита в Cassandra помогают организациям отслеживать действия пользователей на предмет соответствия нормативным требованиям и требованиям безопасности.

Предстоящая версия Apache Cassandra 4.0 включает новые функции, которые помогут организациям отслеживать активность пользователей в базе данных. Эти функции предоставляют надежный набор возможностей аудита корпоративного класса, которые могут помочь компаниям соблюдать законы Сарбейнса-Оксли (SOX), индустрии платежных карт (PCI) и другие нормативные требования и требования безопасности.

Функции аудита Cassandra позволяют операторам проверять записи журнала — каждое изменение DML, DDL и DCL — а также регистрировать и сохранять записи в двоичный файл или настраиваемый пользователем источник. Аудит можно настроить для определенных пространств ключей, пользователей или категорий команд. По умолчанию они сохраняются на локальном диске в формате BinLog и их можно просмотреть с помощью fqltool Cassandra и инструмента Auditlogviewer.

Ведение журнала

Новое гибкое средство аудита Cassandra предоставляет ряд возможностей: от аудита конкретных действий до регистрации всей активности кластера и отслеживания диагностических событий в кластере. В Cassandra 4.0 были добавлены три основные функции:

  • Журналирование аудита с помощью BinAuditLogger (BAL): разработано с учетом сценариев использования для аудита, безопасности и соответствия требованиям.
  • Полное ведение журнала запросов (FQL): основное внимание уделяется тестированию, сравнительному анализу и исследованию производственных рабочих нагрузок.
  • Диагностические события. Предоставляет собственный метод Cassandra Query Language (CQL) для подписки на события, генерируемые в рамках общей структуры журналирования, используемой возможностями BAL и FQL.

Журнал аудита (BAL)

Внутреннее управление BAL и FQL осуществляется с помощью AuditLogManager Apache Cassandra. Оба реализуют общую точку расширения под названием IAuditLogger и встроены в Apache Cassandra. FQL и BAL используют один и тот же формат BinLog, используя общую реализацию.

Ведение журнала аудита само по себе представляет собой полный «пожарный шланг» событий и действий, выполняемых в базе данных. Администратор может включить или исключить определенные категории, пользователей и пространства ключей из созданного контрольного журнала.

По умолчанию формат и вывод являются текстовыми и удобочитаемыми.

Полное ведение журнала запросов (FQL)

FQL похож на ведение журнала аудита, но предназначен для сбора репрезентативной и повторяемой выборки рабочей нагрузки кластера, отфильтрованной по некоторым критериям, чтобы гарантировать управляемость выходных данных.

Оба могут быть включены с помощью nodetool и настроены как часть Cassandra.yaml с возможностью гарантировать создание и сохранение события аудита до того, как действие будет возвращено конечному клиенту как успешное.

FQL предназначен для использования с инструментом fqltool, который позволяет просматривать, воспроизводить и манипулировать потоком захваченных запросов.

Диагностические события

Диагностические события позволяют клиентам подписываться на события кластера и на ту же общую точку расширения, что и BAL и FQL, если пользователи хотят использовать записи аудита таким образом. Диагностические события передают события клиентам, и вы можете подписаться на события аудита через эту систему.

Вы можете настроить столько из этих трех типов, сколько вам нужно.

Чем ведение журнала аудита отличается от CDC

Механизм отслеживания измененных данных (CDC) Cassandra уже некоторое время поддерживается в таблицах; однако реализация всегда была тонкой и сложной, что затрудняло ее использование. По сути, CDC предоставляет индекс в журналы фиксации локальных узлов, содержащий данные для таблиц с включенным CDC. CDC просто фиксирует мгновенные данные, которые записываются на диск, оставляя потребителям сложную задачу по приему этих журналов фиксации, интерпретации формата и объединению данных в кластере.

С другой стороны, возможность ведения журнала аудита Cassandra может регистрировать операции чтения, записи, попытки входа в систему и изменения схемы, а также может предоставлять CQL, вызвавший событие. По сути, любую из этих функций можно использовать для создания правильного потока CDC. Учитывая более детальный контроль и специальные инструменты для чтения журналов, использовать интерфейс IAuditLogger проще, чем использовать файлы CDC.

Что ожидать

Включить ведение журнала аудита в файле cassandra.yaml легко. С точки зрения производительности это не повлияет, пока эта функция не будет включена; после включения вы можете увидеть скромное снижение пропускной способности (смешанной) рабочей нагрузки и задержки P99 на 10–15%. Однако в Apache Cassandra 4.0 есть ряд улучшений производительности, особенно в новом модуле межузловой связи, которые, как ожидается, частично компенсируют это.

Статьи по данной тематике: