Возможности¶
Мастер настройки кластера Kafka
Настройте кластеры Kafka прямо в пользовательском интерфейсе.
Управление несколькими кластерами
Отслеживайте и управляйте всеми вашими кластерами в одном месте.
Мониторинг производительности с помощью панели показателей
Отслеживайте ключевые показатели Kafka с помощью облегченной панели мониторинга.
Просмотр брокеров Kafka
Просмотр назначений тем и разделов, состояния контроллера
Просмотр тем (топиков) Kafka
Просмотр количества разделов, состояния репликации и пользовательской конфигурации.
Просмотр групп потребителей
Просмотр смещений для каждого раздела, комбинированной задержки и задержки для каждого раздела.
Просмотр сообщений
Просмотр сообщений в формате JSON, простом тексте и кодировке Avro.
Динамическая конфигурация тем (топиков)
Создавайте и настраивайте новые темы с динамической конфигурацией.
Маскирование данных
Скрытие конфиденциальных данных в сообщениях темы (топика).
Вы можете настроить neomsa-messaging для маскировки конфиденциальных данных, отображаемых на странице сообщений.
Поддерживается несколько политик маскировки:
REMOVE
Для json-объектов - удаление целевых полей, в противном случае - возврат строки "null".
| - type: REMOVE fields: [ "id", "name" ] ... |
|---|
Примеры
| { "id": 1234, "name": { "first": "James" }, "age": 30 } -> { "age": 30 } |
|---|
| non-json string -> null |
|---|
REPLACE
Для json-объектов – замена значений целевого поля на указанную строку замены (по умолчанию на ***DATA_MASKED***). Примечание: если значение целевого поля является объектом, то замена применяется ко всем его полям рекурсивно (см. пример).
| - type: REPLACE fields: [ "id", "name" ] replacement: "***" #optional, "***DATA_MASKED***" by default ... |
|---|
| { "id": 1234, "name": { "first": "James", "last": "Bond" }, "age": 30 } -> { "id": "***", "name": { "first": "***", "last": "***" }, "age": 30 } |
|---|
| non-json string -> *** |
|---|
MASK
Маскируйте значения целевого поля указанными маскирующими символами, рекурсивно (пробелы и разделители строк будут сохранены как есть). Массив maskingCharsReplacement указывает, какие символы будут использоваться для замены символов верхнего регистра (индекс 0), символов нижнего регистра (индекс 1), цифр (индекс 2) и других символов (индекс 3) соответственно.
| - type: MASK fields: [ "id", "name" ] maskingCharsReplacement: ["A", "a", "N", "_"] # optional, default is ["X", "x", "n", "-"] ... |
|---|
Примеры
| { "id": 1234, "name": { "first": "James", "last": "Bond!" }, "age": 30 } -> { "id": "NNNN", "name": { "first": "Aaaaa", "last": "Aaaa_" }, "age": 30 } |
|---|
| Some string! -> Aaaa aaaaaa_ |
|---|
| kafka: clusters: - name: ClusterName # Other Cluster configuration omitted ... masking: - type: REMOVE fields: [ "id" ] topicKeysPattern: "events-with-ids-.*" topicValuesPattern: "events-with-ids-.*" - type: REPLACE fields: [ "companyName", "organizationName" ] replacement: "***MASKED_ORG_NAME***" #optional topicValuesPattern: "org-events-.*" - type: MASK fields: [ "name", "surname" ] maskingCharsReplacement: ["A", "a", "N", "_"] #optional topicValuesPattern: "user-states" - type: MASK topicValuesPattern: "very-secured-topic" |
|---|
Та же конфигурация в режиме env-vars:
| ... KAFKA_CLUSTERS_0_MASKING_0_TYPE: REMOVE KAFKA_CLUSTERS_0_MASKING_0_FIELDS_0: "id" KAFKA_CLUSTERS_0_MASKING_0_TOPICKEYSPATTERN: "events-with-ids-.*" KAFKA_CLUSTERS_0_MASKING_0_TOPICVALUESPATTERN: "events-with-ids-.*" KAFKA_CLUSTERS_0_MASKING_1_TYPE: REPLACE KAFKA_CLUSTERS_0_MASKING_1_FIELDS_0: "companyName" KAFKA_CLUSTERS_0_MASKING_1_FIELDS_1: "organizationName" KAFKA_CLUSTERS_0_MASKING_1_REPLACEMENT: "***MASKED_ORG_NAME***" KAFKA_CLUSTERS_0_MASKING_1_TOPICVALUESPATTERN: "org-events-.*" KAFKA_CLUSTERS_0_MASKING_2_TYPE: MASK KAFKA_CLUSTERS_0_MASKING_2_FIELDS_0: "name" KAFKA_CLUSTERS_0_MASKING_2_FIELDS_1: "surname" KAFKA_CLUSTERS_0_MASKING_2_MASKING_CHARS_REPLACEMENT_0: 'A' KAFKA_CLUSTERS_0_MASKING_2_MASKING_CHARS_REPLACEMENT_1: 'a' KAFKA_CLUSTERS_0_MASKING_2_MASKING_CHARS_REPLACEMENT_2: 'N' KAFKA_CLUSTERS_0_MASKING_2_MASKING_CHARS_REPLACEMENT_3: '_' KAFKA_CLUSTERS_0_MASKING_2_TOPICVALUESPATTERN: "user-states" KAFKA_CLUSTERS_0_MASKING_3_TYPE: MASK KAFKA_CLUSTERS_0_MASKING_3_TOPICVALUESPATTERN: "very-secured-topic" |
|---|
KSQLDB
В разделе KSQLDB настраивается подключение к интерактивному серверу ksqldb для выполнения SQL-запросов к данным Kafka в реальном времени, а также управления потоками и таблицами.
Конфигурация в YAML
Подключение ksqldb настраивается для каждого кластера Kafka в блоке kafka.clusters.
| kafka: clusters: ksqldb-server: http://ksqldb-host:8088 ksqldb-server-auth: username: your-ksqldb-username password: your-ksqldb-password ksqldb-server-ssl: keystore-location: /path/to/keystore/file.jks keystore-password: your-keystore-password |
|---|
Аналогичная конфигурация в формате переменных окружения:
| KAFKA_CLUSTERS_0_KSQLDB_SERVER=http://ksqldb-host:8088 KAFKA_CLUSTERS_0_KSQLDB_SERVER_AUTH_USERNAME="your-ksqldb-username" KAFKA_CLUSTERS_0_KSQLDB_SERVER_AUTH_PASSWORD="your-ksqldb-password" KAFKA_CLUSTERS_0_KSQLDB_SERVER_SSL_KEYSTORE_LOCATION="/path/to/keystore/file.jks" KAFKA_CLUSTERS_0_KSQLDB_SERVER_SSL_KEYSTORE_PASSWORD="your-keystore-password" |
|---|
Добавление подключения к серверу KSQLDB возможно через UI в настройках конфигурации брокера
UI Neomsa Messaging позволяет выполнять SQL-запросы к потокам и таблицам
Kafka Connect
Раздел Kafka Connect настраивает подключение к кластерам Kafka Connect для управления коннекторами (источниками и приёмниками данных) через REST API.
Конфигурация в YAML
Подключение к Kafka Connect настраивается для каждого кластера Kafka в блоке kafka.clusters.
| kafka: clusters: - name: local kafka-connect: - name: first address: http://connect-host:8083 username: connect-user password: connect-password keystore-location: /path/to/keystore.jks keystore-password: keystore-password |
|---|














