Конфигурационные параметры ksqlDB

Для конфигурации сервиса используйте следующие параметры, доступные в ADCM.

ПРИМЕЧАНИЕ
  • Некоторые из перечисленных параметров становятся доступны в UI ADCM после установки флага Advanced.

  • Значения, установленные в Custom-параметрах, перепишут текущие значения параметров, даже если они read-only.

Main

 

Параметр Описание Значение по умолчанию

Listener port

Порт, который слушает ksqlDB-server. Указывается в качестве параметра listeners в конфигурационном файле ksql-server.properties

8088

ksql-env.sh

 

Параметр Описание Значение по умолчанию

JMX_PORT

Порт, по которому ksqlDB-server отдает JMX-метрики

10099

LOG_DIR

Каталог для хранения логов

/var/log/ksql

KSQL_HEAP_OPTS

Размер heap, выделенный процессу ksqlDB-server

-Xmx3g

KSQL_JVM_PERFORMANCE_OPTS

Параметры JVM в части опций PERFORMANCE

-server

-XX:+UseConcMarkSweepGC

-XX:+CMSClassUnloadingEnabled

-XX:+CMSScavengeBeforeRemark

-XX:+ExplicitGCInvokesConcurrent

-XX:NewRatio=1 -Djava.awt.headless=true

CLASSPATH

Параметр виртуальной машины Java или компилятора Java, который указывает расположение пользовательских классов и пакетов

/usr/lib/ksql/libs/*

KSQL_CLASSPATH

Путь к Java-развертыванию ksqlDB Server и связанных классов Java

${CLASSPATH}

KSQL_OPTS

Переменная среды, указывает параметры конфигурации сервера ksqlDB. Свойства, установленные с помощью KSQL_OPTS, имеют приоритет над теми, которые указаны в файле конфигурации ksqlDB

-Djava.security.auth.login.config=/etc/ksqldb/jaas_config.conf

Basic Auth properties

 

Параметр Описание Значение по умолчанию

authentication.method

Способ аутентификации

BASIC

authentication.roles

Список ролей пользователей, разделенных запятыми. Чтобы авторизоваться на сервере ksqlDB, аутентифицированный пользователь должен принадлежать хотя бы к одной из этих ролей. Подробнее см. Basic-аутентификация

admin

authentication.realm

Cоответствовует разделу в файле jaas_config.file, который определяет, как сервер аутентифицирует пользователей, и должен быть передан как параметр JVM во время запуска сервера

KsqlServer-Props

Path to password.properties

Путь к password.properties

/etc/ksqldb/password.properties

server.properties

 

Параметр Описание Значение по умолчанию

application.id

Идентификатор приложения

ksql-server

ksql.internal.topic.replicas

Фактор репликации для внутренних топиков ksqlDB Servers

1

ksql.streams.state.dir

Каталог хранилища для работы с отслеживанием состояния

/usr/lib/ksql/state

ksql.streams.replication.factor

Основные внутренние топики Kafka Streams

1

ksql.streams.topic.min.insync.replicas

Минимальное количество брокеров, которые должны иметь данные, записанные в синхронизированные реплики

2

ksql.streams.num.standby.replicas

Количество реплик для операций с состоянием

1

ksql.streams.producer.acks

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

all

ksql.streams.producer.delivery.timeout.ms

Срок годности пакетного файла (batch) (в мс)

2147483647

ksql.streams.producer.max.block.ms

Максимально допустимое время для блокировки производителем (в мс)

9223372036854775000

ssl.endpoint.identification.algorithm

Алгоритм идентификации конечной точки для проверки сервера

http

ssl.keystore.location

Используется для HTTPS. Расположение файла хранилища ключей для использования SSL

 — 

ssl.keystore.type

Формат файла keystore

 — 

ssl.keystore.пароль

Используется для HTTPS. Пароль хранилища для файла

 — 

ssl.key.password

Используется для HTTPS. Пароль закрытого ключа в файле keystore

 — 

ssl.truststore.location

Расположение файла truststore

 — 

ssl.truststore.type

Формат файла хранилища truststore

 — 

ssl.truststore.password

Используется для HTTPS. Пароль хранилища для файла хранилища truststore

 — 

ksql.schema.registry.ssl.keystore.location

Расположение файла хранилища ключей SSL

 — 

ksql.schema.registry.ssl.keystore.password

Пароль для доступа к keystore

 — 

ksql.schema.registry.ssl.key.password

Пароль ключа, содержащегося в keystore

 — 

ksql.schema.registry.ssl.keystore.type

Формат файла keystore

 — 

ksql.schema.registry.ssl.truststore.location

Расположение файла хранилища сертификатов SSL truststore

 — 

ksql.schema.registry.ssl.truststore.password

Пароль для доступа к хранилищу truststore

 — 

ksql.schema.registry.ssl.truststore.type

Формат файла хранилища truststore

 — 

Add key, value

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

 — 

connect.properties

 

Параметр Описание Значение по умолчанию

group.id

Уникальный идентификатор группы

ksql-connect-cluster

key.converter

Определяет формат данных в Kafka и способ их преобразования в данные Connect

org.apache.kafka.connect.storage.StringConverter

key.converter.schema.registry.url

Расположение ключевых данных ksqlDB

http://localhost:8081

value.converter

Преобразователь класса для значений ksqlDB data

io.confluent.connect.avro.AvroConverter

value.converter.schema.registry.url

Расположение значений ksqlDB data

http://localhost:8081

config.storage.topic

Имя внутреннего топика для хранения конфигураций

ksql-connect-configs

offset.storage.topic

Имя внутреннего топика для хранения статистики подключения

ksql-connect-offsets

status.storage.topic

Имя внутреннего топика для хранения статистики состояния подключения

ksql-connect-statuses

config.storage.replication.factor

Фактор репликации для config.storage.topic

1

offset.storage.replication.factor

Фактор репликации для offset.storage.topic

1

status.storage.replication.factor

Фактор репликации для status.storage.topic

1

internal.key.converter

Класс преобразователя для внутренних значений с записями соединения

org.apache.kafka.connect.json.JsonConverter

internal.value.converter

Класс преобразователя внутренних значений с записями соединения

org.apache.kafka.connect.json.JsonConverter

internal.key.converter.schemas.enable

Конфигурация схемы для внутренней статистики подключения данных

false

Add key, value

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

 — 

datagen.properties

 

Параметр Описание Значение по умолчанию

interceptor.classes

Установка нового элемента в объект свойств Java, который вы используете для создания нового источника при отсутствии каких-либо "перехватчиков" (interceptors)

io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor

Add key, value

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

 — 

JAAS template

 

    Шаблон пользовательского файла jaas.conf предназначен для указания пользовательских данных подключения клиентов других сервисов к текущему сервису (пути к keytab-файлам, параметр useTicketCache и другие). Подробнее см. Настройка пользовательского jaas.conf.

    Значение по умолчанию:

{% if cluster.config.basic_auth_default_config is not none %}
{{ services.ksql.config.basic_auth_properties_content['authentication.realm'] }} {
  org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
  file="{{ ksql_home_path }}/config/password.properties"
  debug="false";
};
{% endif %}
{% if cluster.config.kerberos_client and cluster.config.kerberos_client.enable_kerberos %}
KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    serviceName="kafka"
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/ksql-server.service.keytab"
    principal="ksql-server/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}";
};
{%- elif cluster.config.sasl_plain_auth_default_config is not none %}
    {%- set credential = cluster.config.sasl_plain_auth_default_config.sasl_plain_users_data %}
KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="ksql-server"
  password="{{ credential['ksql-server'] }}";
};
{% endif %}

 

Конфигурационные параметры компонента ksqlDB Server:

log4j properties configuration

 

Параметр Описание Значение по умолчанию

log4j.rootLogger

Настройка уровня ведения логов

INFO

log4j.logger.org.reflections

Настройка уровня вывода предупреждений Reflections

ERROR

log4j.logger.org.apache.kafka.streams

Настройка уровня ведения логов Kafka Streams

INFO

log4j.logger.kafka

Настройка уровня ведения логов брокера Kafka (вывод в server.log и стандартный вывод). См. также log4j.logger.org.apache.kafka

WARN

log4j.logger.org.apache.zookeeper

Настройка ведения логов клиента ZooKeeper

WARN

log4j.logger.org.apache.kafka

Настройка уровня ведения логов брокера Kafka (вывод в server.log и стандартный вывод). См. также log4j.logger.kafka

WARN

log4j.logger.org.I0Itec.zkclient

Настройка уровня ведения лога клиента ZooKeeper

WARN

log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource

 

Параметр Описание Значение по умолчанию

log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource

Запрет ksqlDB выходить из каждого получаемого запроса

WARN

log4j.logger.io.confluent.ksql.util.KsqlConfig

 

Параметр Описание Значение по умолчанию

log4j.logger.io.confluent.ksql.util.KsqlConfig

Включите во избежание спама журналов значениями KsqlConfig

WARN

log4j_properties_template

 

    Шаблон для пользовательской настройки библиотеки логирования log4j.

    Значение по умолчанию:

# Maintained by ADCM
{% set ksql_server_log4j_properties_configuration = services.ksql.SERVER.config.log4j_properties_configuration %}

log4j.rootLogger={{ ksql_server_log4j_properties_configuration['log4j.rootLogger'] }}, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.appender.streams=org.apache.log4j.ConsoleAppender
log4j.appender.streams.layout=org.apache.log4j.PatternLayout
log4j.appender.streams.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.logger.org.reflections={{ ksql_server_log4j_properties_configuration['log4j.logger.org.reflections'] }}, stdout

{% if services.ksql.SERVER.config.log4j_logger_io_confluent_ksql_rest_server_resources_KsqlResource['log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource'] is defined %}
log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource={{ services.ksql.SERVER.config.log4j_logger_io_confluent_ksql_rest_server_resources_KsqlResource['log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource'] }}
{% endif %}
{% if services.ksql.SERVER.config.log4j_logger_io_confluent_ksql_util_KsqlConfig['log4j.logger.io.confluent.ksql.util.KsqlConfig'] is defined %}
log4j.logger.io.confluent.ksql.util.KsqlConfig={{ services.ksql.SERVER.config.log4j_logger_io_confluent_ksql_util_KsqlConfig['log4j.logger.io.confluent.ksql.util.KsqlConfig'] }}
{% endif %}

log4j.logger.org.apache.kafka.streams={{ ksql_server_log4j_properties_configuration['log4j.logger.org.apache.kafka.streams'] }}, streams
log4j.additivity.org.apache.kafka.streams=false

log4j.logger.kafka={{ ksql_server_log4j_properties_configuration['log4j.logger.kafka'] }}, stdout
log4j.logger.org.apache.zookeeper={{ ksql_server_log4j_properties_configuration['log4j.logger.org.apache.zookeeper'] }}, stdout
log4j.logger.org.apache.kafka={{ ksql_server_log4j_properties_configuration['log4j.logger.org.apache.kafka'] }}, stdout
log4j.logger.org.I0Itec.zkclient={{ ksql_server_log4j_properties_configuration['log4j.logger.org.I0Itec.zkclient'] }}, stdout
log4j_rolling_properties_template

 

    Шаблон для пользовательской настройки файла логирования log4j_rolling_properties.

    Значение по умолчанию:

# Maintained by ADCM
{% set broker_port = (services.kafka.config.Main.listeners | regex_replace('.*:(\\d+)$', '\\1')) %}
{% set broker_hosts_with_port = services.kafka.config.bootstrap_servers_without_protocol %}
log4j.rootLogger=INFO, main

# appenders
log4j.appender.main=org.apache.log4j.RollingFileAppender
log4j.appender.main.File=${ksql.log.dir}/ksql.log
log4j.appender.main.layout=org.apache.log4j.PatternLayout
log4j.appender.main.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
log4j.appender.main.MaxFileSize=10MB
log4j.appender.main.MaxBackupIndex=5
log4j.appender.main.append=true

log4j.appender.streams=org.apache.log4j.RollingFileAppender
log4j.appender.streams.File=${ksql.log.dir}/ksql-streams.log
log4j.appender.streams.layout=org.apache.log4j.PatternLayout
log4j.appender.streams.layout.ConversionPattern=[%d] %p %m (%c:%L)%n

log4j.appender.kafka=org.apache.log4j.RollingFileAppender
log4j.appender.kafka.File=${ksql.log.dir}/ksql-kafka.log
log4j.appender.kafka.layout=org.apache.log4j.PatternLayout
log4j.appender.kafka.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
log4j.appender.kafka.MaxFileSize=10MB
log4j.appender.kafka.MaxBackupIndex=5
log4j.appender.kafka.append=true

log4j.appender.kafka_appender=org.apache.kafka.log4jappender.KafkaLog4jAppender
log4j.appender.kafka_appender.layout=io.confluent.common.logging.log4j.StructuredJsonLayout
log4j.appender.kafka_appender.BrokerList=
{%- for host_with_port in broker_hosts_with_port.split(',') -%}
    {% if loop.index > 1 %},{% endif -%}
    {{ ('ssl' in cluster.multi_state) | ternary('https', 'http') }}://{{ host_with_port -}}
{% endfor %}

log4j.appender.kafka_appender.Topic=default_ksql_processing_log
log4j.appender.kafka_appender.SyncSend=true
log4j.appender.kafka_appender.IgnoreExceptions=false


{% if cluster.edition == 'enterprise' %}
{% set sasl_protocol = services.kafka.config['listeners_option']['sasl_protocol'] | d('none') %}
{% set ssl_enable = services.kafka.config['listeners_option']['ssl_enable'] | d(False) %}
log4j.appender.kafka_appender.SecurityProtocol={{ sasl_protocol | kafka_protocol(ssl_enable) }}
log4j.appender.kafka_appender.SaslMechanism={{ sasl_protocol | normalize_sasl_protocol }}

{% if sasl_protocol | normalize_sasl_protocol == 'PLAIN' %}
log4j.appender.kafka_appender.clientJaasConf=org.apache.kafka.common.security.plain.PlainLoginModule required \
    username=ksql-server \
    password="{{ cluster.config.sasl_plain_auth_default_config.sasl_plain_users_data['ksql-server'] }}";
{% endif %}

{% if sasl_protocol | normalize_sasl_protocol == 'GSSAPI' %}
log4j.appender.kafka_appender.SaslKerberosServiceName=kafka
log4j.appender.kafka_appender.clientJaasConf=com.sun.security.auth.module.Krb5LoginModule required \
    useKeyTab=true \
    storeKey=true \
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/ksql-server.service.keytab" \
    principal="ksql-server/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}" \
    serviceName="kafka";
{% endif %}

{% if ssl_enable %}
log4j.appender.kafka_appender.SslTruststoreLocation={{ services.kafka.config.server_properties_content['ssl.truststore.location'] }}
log4j.appender.kafka_appender.SslTruststorePassword={{ services.kafka.config.server_properties_content['ssl.truststore.password'] }}
{% endif %}
{% endif %}
# loggers

log4j.logger.org.reflections=ERROR, main

# Uncomment the following line to stop ksqlDB from logging out each request it receives:
#log4j.logger.io.confluent.ksql.rest.server.resources.KsqlResource=WARN

# And this one to avoid the logs being spammed with KsqlConfig values.
# Though these can be useful for debugging / investigations.
#log4j.logger.io.confluent.ksql.util.KsqlConfig=WARN

## ksqlDB Processing logs:
log4j.logger.processing=WARN, kafka_appender
log4j.additivity.processing=false

## Kafka Streams logs:
log4j.logger.org.apache.kafka.streams=INFO, streams
log4j.additivity.org.apache.kafka.streams=false

## Kafka Clients logs:
log4j.logger.org.apache.kafka.clients=INFO, clients
log4j.additivity.org.apache.kafka.clients=false

## Kafka Connect logs:
log4j.logger.org.apache.kafka.connect=INFO, connect
log4j.additivity.org.apache.kafka.connect=false

## Other Kafka logs:
log4j.logger.kafka=WARN, kafka
log4j.additivity.kafka=false

log4j.logger.org.apache.zookeeper=WARN, kafka
log4j.additivity.org.apache.zookeeper=false

log4j.logger.org.apache.kafka=WARN, kafka
log4j.additivity.org.apache.kafka=false

log4j.logger.org.I0Itec.zkclient=WARN, kafka
log4j.additivity.org.I0Itec.zkclient=false

# To achieve high throughput on pull queries, avoid logging every request from Jetty
log4j.logger.io.confluent.rest-utils.requests=WARN

ksql_migrations_log4j_properties_template
# Root logger -- disable all non-migrations-tool logging
log4j.rootLogger=OFF

# Migrations tool logger
log4j.logger.io.confluent.ksql.tools.migrations=INFO, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n
log4j_file_properties_template

 

    Шаблон для пользовательской настройки файла логирования log4j_file_properties.

    Значение по умолчанию:

#
# Copyright 2018 Confluent Inc.
#
# Licensed under the Confluent Community License (the "License"); you may not use
# this file except in compliance with the License.  You may obtain a copy of the
# License at
#
# http://www.confluent.io/confluent-community-license
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OF ANY KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations under the License.
#

# For the general syntax of property based configuration files see
# the documentation of org.apache.log4j.PropertyConfigurator.

log4j.rootLogger=WARN, default.file

log4j.appender.default.file=io.confluent.ksql.util.TimestampLogFileAppender
log4j.appender.default.file.ImmediateFlush=true
log4j.appender.default.file.append=false

log4j.appender.default.file.file=${ksql.log.dir}/ksql-cli/cli-%timestamp.log
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
log4j_silent_properties_template

 

    Шаблон для пользовательской настройки файла логирования log4j_silent_properties.

    Значение по умолчанию:

#
# Copyright 2018 Confluent Inc.
#
# Licensed under the Confluent Community License (the "License"); you may not use
# this file except in compliance with the License.  You may obtain a copy of the
# License at
#
# http://www.confluent.io/confluent-community-license
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OF ANY KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations under the License.
#

log4j.rootLogger=OFF
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней