Автор:Майлз Гарнси

Apache Cassandra® 4 содержит множество новых функций, помогающих управлять вашей базой данных. Ведение журнала аудита помогает обеспечить соответствие требованиям безопасности, полное ведение журнала запросов обеспечивает более глубокое понимание выполняемых вами запросов, а обратное давление клиента обеспечивает стабильность кластера под нагрузкой. Выпуск K8ssandra v1.4.0 позволит вам легко воспользоваться этими функциями. Читайте дальше, чтобы узнать, насколько просто проводить тестирование.

Apache Cassandra® 4 привнес множество улучшений в экосистему распределенных данных, от более разумных значений по умолчанию (больше не нужно настраивать num_tokens!) до улучшений внутренних функций потоковой передачи и обмена сообщениями.

Команда K8ssandra рада сообщить, что следующие функции теперь легко настраиваются с помощью наших диаграмм и операторов Helm в последнем выпуске K8ssandra v1.4.0:

  • Полное ведение журнала запросов
  • Ведение журнала аудита
  • Противодействие клиента

Функции ведения журнала в Cassandra 4.x построены на основе высокопроизводительных библиотек, которые в основном используются в системах высокочастотной торговли (HFT), чтобы минимизировать влияние на производительность.

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

Полное ведение журнала запросов (FQL) — новая возможность ведения журнала в Cassandra 4.x. Это позволяет пользователям вести журнал всех запросов, отправленных в кластер. Включенный fqltool позволяет воспроизводить и просматривать захваченные запросы (которые хранятся в двоичном формате).

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

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

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

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

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

Опять же, учитывая двоичный формат хранения, вам нужно будет использовать auditlogviewer для просмотра данных. (Попытка cat эти файлы зависнет или иным образом повредит вашу оболочку, но может быть интересно попробовать?)

Противодействие клиента

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

Клиентское противодавление — механизм, позволяющий избежать этого сценария. С помощью Противодавления клиента теперь вы можете устанавливать ограничения на уровне отдельных IP-адресов и на глобальном уровне, чтобы ограничить максимальный объем входящих запросов.

Попробуйте

Вы можете протестировать эти три функции с помощью магии Kubernetes, используя простую последовательность команд управления. Указав kubectl на работающий кластер Kubernetes, вы можете запустить приведенную ниже команду, чтобы настроить кластер с включенным ведением журнала аудита, полным ведением журнала запросов и противодействием клиента:

После того, как они настроены, вы можете найти журналы под /var/log/cassandra и просмотреть их с помощью auditlogviewer и fqltool.

просмотр журнала аудита

auditlogviewer распечатает журналы, если вы запустите эту команду:

Журналы будут выглядеть примерно так:

fqltool

Запуск kubectl exec k8ssandra-k8ssandra-default-sts-0 — /opt/cassandra/tools/bin/fqltool dump /var/log/cassandra/fql will (после того, как кратко пожаловался на отсутствие некоторых cassandra.yaml конфигураций) даст следующий результат FQL:

Обратитесь к документации FQL для получения информации о том, как воспроизвести эти запросы на удаленный кластер Cassandra или сравнить журналы (например, при сравнительном анализе или стресс-тестировании). А если вы хотите узнать больше о выпуске K8ssandra v1.4.0, вы можете перейти к официальным заметкам о выпуске или присоединиться к нам в наших обсуждениях в Сообществе K8ssandra в Discord.

Подпишитесь на Технический блог DataStax, чтобы узнать больше историй разработчиков. Посетите наш канал YouTube для учебных пособий и здесь для разработчиков DataStax в Twitter, чтобы узнать последние новости о нашем сообществе разработчиков.

Ресурсы

  1. Кассандра 4.0 | ДатаСтакс
  2. Что нового в Cassandra 4.0? | Датастакс
  3. K8ssandra — K8ssandra, Apache Cassandra® в Kubernetes
  4. Примечания к выпуску K8ssandra
  5. Полная регистрация запросов | Датастакс
  6. Ведение аудита | Датастакс
  7. Присоединяйтесь к сообществу K8ssandra в Discord
  8. Платформа сообщества DataStax
  9. Академия ДатаСтакс
  10. Сертификаты ДатаСтакс
  11. Мастерские ДатаСтакс