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

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

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

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

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

Host index matching

Указывает node.id для хостов. Заполняется автоматически

 — 

Kafka quorum solution

Указывает, какой кворум используется Kafka для хранения метаданных и выбора лидера. Необходимо установить в KRaft перед установкой Kafka в режиме KRaft

Zookeeper

KRaft migration mode

Указывает, находится ли Kafka в состоянии миграции в режим KRaft

false

Kafka Ranger plugin enabled

Указывает, включен ли плагин Ranger Kafka (заполняется автоматически)

false

kafka-env.sh

 

Параметры переменных окружения сервиса Kafka

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

LOG_DIR

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

/var/log/kafka

PID_DIR

Каталог для хранения ID процесса Kafka

/var/run/kafka

JMX_PORT

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

9999

KAFKA_OPTS

Переменные окружения для Kafka

-DZstdTempFolder=/usr/lib/kafka/tmp -Dorg.xerial.snappy.tempdir=/usr/lib/kafka/tmp

Add property

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

 — 

server.properties

 

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

auto.create.topics.enable

Включение автоматического создания топиков

false

auto.leader.rebalance.enable

Включение автоматической балансировки лидера. Балансировка лидера в фоновом режиме через регулярные промежутки времени

true

queued.max.requests

Количество запросов в очереди до блокировки сетевых потоков

500

num.network.threads

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

3

num.io.threads

Число потоков, используемых сервером для обработки запросов, которые могут включать дисковые операции ввода-вывода

8

unclean.leader.election.enable

Указывает, следует ли выбирать не входящие в набор ISR-реплики в качестве лидера в крайнем случае, даже если это может привести к потере данных

false

offsets.topic.replication.factor

Коэффициент репликации для топика смещения (устанавливается выше с целью обеспечения доступности). Создание внутреннего топика невозможно, пока размер кластера не соответствует данному требованию коэффициента репликации

1

transaction.state.log.min.isr

Переопределение конфигурации min.insync.replicas для топика транзакции

1

transaction.state.log.replication.factor

Коэффициент репликации для топика транзакции (задается выше для обеспечения доступности). Создание внутреннего топика завершается ошибкой, пока размер кластера не соответствует данному требованию к фактору репликации

1

zookeeper.connection.timeout.ms

Максимальное время ожидания клиентом установки соединения с ZooKeeper. Если параметр не задан, используется значение zookeeper.session.timeout.ms (в мс)

30000

zookeeper.session.timeout.ms

Тайм-аут сессии ZooKeeper (в мс)

30000

zookeeper.sync.time.ms

Удаленность последователя ZooKeeper от лидера ZooKeeper (в мс)

2000

security.inter.broker.protocol

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

PLAINTEXT

ssl.keystore.location

Расположение файла хранилища ключей keystore. Это необязательно для клиента и может использоваться для двухэтапной аутентификации клиента

 — 

ssl.keystore.password

Пароль хранилища для файла хранилища ключей keystore. Это необязательно для клиента и требуется только в том случае, если настроен параметр ssl.keystore.location

 — 

ssl.key.password

Пароль закрытого ключа в файле хранилища ключей keystore. Это необязательно для клиента

 — 

ssl.keystore.type

Формат файла хранилища ключей keystore. Это необязательно для клиента

 — 

ssl.truststore.location

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

 — 

ssl.truststore.password

Пароль хранилища для файла хранилища truststore. Это необязательно для клиента и требуется только в том случае, если настроен параметр ssl.truststore.location

 — 

ssl.truststore.type

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

 — 

Add key, value

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

 — 

log.dirs

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

/kafka-logs

listeners

Разделенный запятыми список URI, которые будут прослушиваться, и имена слушателей. Поддерживается только смена порта. Изменение протокола или добавление прослушивателя может вызвать ошибки

PLAINTEXT://:9092

default.replication.factor

Фактор репликации по умолчанию для автоматически создаваемых топиков

1

num.partitions

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

1

delete.topic.enable

Параметр позволяет удалять топики. Если параметр выключен, то удаление топика через инструменты администрирования не приводит к фактическому удалению

true

log.retention.hours

Количество часов, в течение которых топики хранятся в Kafka

168

log.roll.hours

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

168

log.cleanup.policy

Политика очистки журналов

delete

log.cleanup.interval.mins

Интервал, определяющий, как часто средство очистки журналов проверяет журналы, подлежащие удалению. Файл журнала подлежит удалению, если он не был изменен в течение времени, заданного параметром log.retention.hours (168 часов по умолчанию)

10

log.cleaner.min.compaction.lag.ms

Минимальное время, в течение которого сообщение остается несжатым в журнале. Применяется только для журналов с функцией сжатия (в мс)

0

log.cleaner.delete.retention.ms

Время, в течение которого должны сохраняться маркеры удаленных записей в реплике для топиков в сжатых журналах (log compacted topics) (в мс)

86400000

log.cleaner.enable

Включает запуск процесса очистки журналов на сервере

true

ranger-kafka-audit.xml

 
Параметры Apache Ranger

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

xasecure.audit.destination.solr.batch.filespool.dir

Каталог для Solr audit spool

/srv/ranger/kafka_plugin/audit_solr_spool

xasecure.audit.destination.solr.urls

Определяет Solr URL. Не устанавливается при использовании ZooKeeper для подключения к Solr

 — 

xasecure.audit.destination.solr.zookeepers

Включает аудит в Solr для плагинов Ranger

 — 

Add key, value

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

 — 

ranger-kafka-security.xml

 
Параметры Apache Ranger

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

ranger.plugin.kafka.policy.rest.url

Путь (адрес, порт) для подключения к Ranger Admin Kafka

 — 

ranger.plugin.kafka.service.name

Имя сервиса Ranger, содержащего политику для конкретного экземпляра Kafka

 — 

ranger.plugin.kafka.policy.cache.dir

Каталог, в котором кешируется политика Ranger после успешного извлечения из источника

/srv/ranger/kafka/policycache

ranger.plugin.kafka.policy.pollIntervalMs

Как часто проводить опрос на предмет изменений в политике (в мс)

30000

ranger.plugin.kafka.policy.rest.client.connection.timeoutMs

Тайм-аут соединения плагина Kafka RangerRestClient (в мс)

120000

ranger.plugin.kafka.policy.rest.client.read.timeoutMs

Тайм-аут чтения плагина Kafka RangerRestClient (в мс)

30000

ranger.plugin.kafka.policy.rest.ssl.config.file

Расположение файла, содержащего SSL-данные для соединения с Ranger Admin

/etc/kafka/conf/ranger-policymgr-ssl.xml

Add key, value

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

 — 

ranger-policymgr-ssl.xml

 
Параметры Apache Ranger

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

xasecure.policymgr.clientssl.keystore

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

 — 

xasecure.policymgr.clientssl.keystore.password

Пароль хранилища ключей keystore

 — 

xasecure.policymgr.clientssl.truststore

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

 — 

xasecure.policymgr.clientssl.truststore.password

Пароль хранилища truststore

 — 

xasecure.policymgr.clientssl.keystore.credential.file

Расположение файла учетных записей keystore

/etc/kafka/conf/keystore.jceks

xasecure.policymgr.clientssl.truststore.credential.file

Расположение файла учетных записей truststore

/etc/kafka/conf/truststore.jceks

Add key, value

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

 — 

JAAS template

 

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

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

{% if cluster.config.kerberos_client and cluster.config.kerberos_client.enable_kerberos %}
Client {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/kafka.service.keytab"
    principal="kafka/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}";
};
KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/kafka.service.keytab"
    principal="kafka/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}";
};
KafkaServer {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    serviceName="kafka"
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/kafka.service.keytab"
    principal="kafka/{{ 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 %}
KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="kafka"
  password="{{ credential['kafka'] }}"
{% for user, password in credential.items() %}
  user_{{ user }}="{{ password }}"{% if loop.index != loop | length %}
{% endif %}
{% endfor %};
};
{% endif %}
core-site config template

 

    Шаблон предназначен для указания данных для подключения к узлам Hadoop.

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

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
      <name>hadoop.security.authentication</name>
      <value>kerberos</value>
  </property>
   <property>
      <name>hadoop.security.authorization</name>
      <value>true</value>
  </property>
</configuration>
HDFS Tiered Storage
Параметр Описание Значение по умолчанию

storage.hdfs.root

Полный путь к директории HDFS, предназначенной для хранения сегментов Kafka

/kafka

storage.hdfs.upload.buffer.size

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

8192

S3 Tiered Storage

 

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

storage.s3.endpoint.url

Эндпойнт хранилища S3

 — 

storage.s3.bucket.name

Имя бакета S3 — единицы хранения объектного хранилища, выделенной для пользовательских данных

 — 

storage.aws.access.key.id

Идентификатор доступа к хранилищу S3

 — 

storage.aws.secret.access.key

Ключ доступа к хранилищу S3

 — 

storage.s3.region

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

 — 

Tiered Storage General

 

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

chunk.size

Размер фрагмента данных, который будет одновременно извлекаться/загружаться из/в многоуровневое хранилище данных

4194304

fetch.chunk.cache.path

Путь к каталогу для хранения фрагментов кеша полученных данных из многоуровневого хранилища

/var/cache/kafka

fetch.chunk.cache.prefetch.max.size

Максимальный размер извлекаемого фрагмента данных

8388608

fetch.chunk.cache.size

Максимальный размер всего кеша получения

1073741824

fetch.chunk.cache.retention.ms

Время жизни кеша

600000

Rolling restart/upgrade options

 

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

Interval_sec

Интервал времени между проверками в секундах

10

Retries

Максимальное количество проверок

12

Custom listeners

 

Нажмите +1 для указания пользовательского слушателя для Kafka на странице конфигурирования сервиса. Новый слушатель будет добавлен ​​к свойству listeners в /usr/lib/kafka/config/server.properties в формате {name}://:{port}, а также новый протокол слушателя будет добавлен к свойству listener.security.protocol.map в формате {name}:{protocol}.

Параметр Описание

name

Имя нового слушателя, должно быть указано в верхнем регистре

protocol

Протокол прослушивателя, должен быть указан один из протоколов: PLAINTEXT, SSL, SASL_SSL, SASL_PLAINTEXT

port

Порт прослушивателя

 

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

log4j properties configuration

 

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

log4j.rootLogger

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

INFO

log4j.logger.org.apache.zookeeper

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

INFO

log4j.logger.kafka

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

INFO

log4j.logger.org.apache.kafka

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

INFO

log4j.logger.kafka.request.logger

Настройка ведения лога запросов — измените на DEBUG или TRACE, чтобы включить

WARN

log4j.logger.kafka.controller

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

TRACE

log4j.logger.kafka.log.LogCleaner

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

INFO

log4j.logger.state.change.logger

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

INFO

log4j.logger.kafka.authorizer.logger

Настройка доступа к логам — отказы в доступе регистрируются на уровне INFO. Измените на DEBUG, чтобы также регистрировать разрешенные доступы

INFO

log4j advanced properties configuration

 

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

log4j.logger.kafka.network.Processor

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

TRACE

log4j.logger.kafka.server.KafkaApis

Настройка уровня ведения логов KafkaApis (обработка запросов к брокеру Kafka)

TRACE

log4j.logger.kafka.network.RequestChannel

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

TRACE

log4j_properties_template

 

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

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

{% set kafka_broker_log4j_properties_configuration = services.kafka.BROKER.config.log4j_properties_configuration %}

log4j.rootLogger={{ kafka_broker_log4j_properties_configuration['log4j.rootLogger'] }}, stdout, kafkaAppender

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

log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.stateChangeAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stateChangeAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log
log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.requestAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.requestAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log
log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.cleanerAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.cleanerAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log
log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.controllerAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.controllerAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log
log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.authorizerAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.authorizerAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.authorizerAppender.File=${kafka.logs.dir}/kafka-authorizer.log
log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.logger.org.apache.zookeeper={{ kafka_broker_log4j_properties_configuration['log4j.logger.org.apache.zookeeper'] }}

log4j.logger.kafka={{ kafka_broker_log4j_properties_configuration['log4j.logger.kafka'] }}
log4j.logger.org.apache.kafka={{ kafka_broker_log4j_properties_configuration['log4j.logger.org.apache.kafka'] }}

log4j.logger.kafka.request.logger={{ kafka_broker_log4j_properties_configuration['log4j.logger.kafka.request.logger'] }}, requestAppender
log4j.additivity.kafka.request.logger=false

{% if services.kafka.BROKER.config.log4j_advanced_properties_configuration['log4j.logger.kafka.network.Processor'] is defined %}
{% set kafka_broker_log4j_advanced_properties_configuration = services.kafka.BROKER.config.log4j_advanced_properties_configuration %}
log4j.logger.kafka.network.Processor={{ kafka_broker_log4j_advanced_properties_configuration['log4j.logger.kafka.network.Processor'] }}, requestAppender
log4j.logger.kafka.server.KafkaApis={{ kafka_broker_log4j_advanced_properties_configuration['log4j.logger.kafka.server.KafkaApis'] }}, requestAppender
log4j.additivity.kafka.server.KafkaApis=false

log4j.logger.kafka.network.RequestChannel$={{ kafka_broker_log4j_advanced_properties_configuration['log4j.logger.kafka.network.RequestChannel'] }}, requestAppender
{% else %}
log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender
{% endif %}
log4j.additivity.kafka.network.RequestChannel$=false


log4j.logger.kafka.controller={{ kafka_broker_log4j_properties_configuration['log4j.logger.kafka.controller'] }}, controllerAppender
log4j.additivity.kafka.controller=false

log4j.logger.kafka.log.LogCleaner={{ kafka_broker_log4j_properties_configuration['log4j.logger.kafka.log.LogCleaner'] }}, cleanerAppender
log4j.additivity.kafka.log.LogCleaner=false

log4j.logger.state.change.logger={{ kafka_broker_log4j_properties_configuration['log4j.logger.state.change.logger'] }}, stateChangeAppender
log4j.additivity.state.change.logger=false

log4j.logger.kafka.authorizer.logger={{ kafka_broker_log4j_properties_configuration['log4j.logger.kafka.authorizer.logger'] }}, authorizerAppender
log4j.additivity.kafka.authorizer.logger=false
tools log4j properties configuration

 

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

log4j.rootLogger

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

WARN

tools_log4j_properties_template

 

    Шаблон tools_log4j_properties предназначен для указания пользовательских параметров логирования.

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

{% set kafka_broker_tools_log4j_properties_configuration = services.kafka.BROKER.config.tools_log4j_properties_configuration %}

log4j.rootLogger={{ kafka_broker_tools_log4j_properties_configuration['log4j.rootLogger'] }}, stderr

log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.stderr.Target=System.err
JMX Monitoring

Для работы мониторинга Kafka необходимо включить JMX-мониторинг.

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

jmx_port

Порт, по которому отправляются JMX-метрики

9999

JMX Exporter Port

Порт для подключения к Prometheus JMX Exporter

11201

JMX Authentication

 
Включает аутентификацию для JMX в сервисе (используется при необходимости защиты доступа к JMX-порту).

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

Username

Имя пользователя для аутентификации в JMX

monitoring

Password

Пароль пользователя для аутентификации в JMX

 — 

 

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

controller.properties

 

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

listeners

Порт для подключения к Kafka Controller

CONTROLLER://:9093

Metadata log.dirs

Путь к месту хранения метаданных кластера

/kafka-meta

additional

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

 — 

kafka-controller-env.sh

 

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

LOG_DIR

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

/var/log/kafka-controller

PID_DIR

Каталог для хранения ID Kafka Controller

/var/run/kafka-controller

Add property

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

 — 

 

Конфигурационные параметры компонента Kafka Cruise Control:

cruisecontrol.properties

 

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

default.goals

Список межброкерских целей, который будет использоваться по умолчанию, если не предоставлен список goals. Этот список целей также будет использоваться для предварительных расчетов предложений. Значение должно быть подмножеством goals и надмножеством hard.goals и self.healing.goals

com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.PotentialNwOutGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.TopicReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderBytesInDistributionGoal

goals

Набор нечувствительных к регистру межброкерских целей, поддерживаемых Сruise Сontrol. Межброкерские цели способствуют распределению нагрузки между брокерами

com.linkedin.kafka.cruisecontrol.analyzer.goals.BrokerSetAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.PotentialNwOutGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.TopicReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderReplicaDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.LeaderBytesInDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.kafkaassigner.KafkaAssignerDiskUsageDistributionGoal, com.linkedin.kafka.cruisecontrol.analyzer.kafkaassigner.KafkaAssignerEvenRackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.PreferredLeaderElectionGoal

intra.broker.goals

Список нечувствительных к регистру внутриброкерских целей в порядке приоритета. Цели с высоким приоритетом будут выполняться первыми. Внутриброкерские цели имеют значение, только если поддерживается внутриброкерская операция (в версии 2 и выше Cruise Control), в противном случае этот список должен быть пустым

com.linkedin.kafka.cruisecontrol.analyzer.goals.IntraBrokerDiskCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.IntraBrokerDiskUsageDistributionGoal

hard.goals

Список нечувствительных к регистру, жестких внутриброкерских целей. Жесткие цели будут выполняться, если Cruise Control работает в режиме non-kafka-assigner и параметр skip_hard_goal_check не установлен в запросе

com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal

anomaly.detection.goals

Цели, нарушение которых должен обнаруживать детектор аномалий

com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkInboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.NetworkOutboundCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.CpuCapacityGoal

self.healing.enabled

Включение самовосстановления для всех аномалий, если конкретная аномалия явно не отключена в детекторе аномалий

false

sample.store.topic.replication.factor

Конфигурация фактора репликации для топиков хранилища Sample Store в Kafka

1

webserver.http.cors.enabled

Включает разрешение CORS при установке в значение true

false

webserver.http.cors.origin

Значение для заголовка Access-Control-Allow-Origin

http://localhost:8080/

webserver.http.cors.allowmethods

Значение для заголовка Access-Control-Request-Method

OPTIONS,GET,POST

webserver.http.cors.exposeheaders

Значение для заголовка Access-Control-Expose-Headers

User-Task-ID

webserver.http.port

Порт для подключения к Cruise Control Webserver

9181

webserver.http.address

IP-адрес для подключения к Cruise Control Webserver

0.0.0.0

metric.sampler.class

Имя класса Metric Sampler

com.linkedin.kafka.cruisecontrol.monitor.sampling.CruiseControlMetricsReporterSampler

sampling.allow.cpu.capacity.estimation

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

true

metric.reporter.topic

Точное название топика Metric Reporter, из которой Metric Sampler извлекает нужные метрики

__CruiseControlMetrics

sample.store.class

Имя класса Sample Store. Пользователь может настроить Sample Store, который сохраняет метрики, образцы которых уже были агрегированы в Kafka Cruise Control. Позже сохраненные образцы могут быть загружены из Sample Store в Kafka Cruise Control

com.linkedin.kafka.cruisecontrol.monitor.sampling.KafkaSampleStore

partition.metric.sample.store.topic

Топик, в котором Cruise Control будет хранить свои обработанные образцы метрик в качестве резервной копии. Когда Cruise Control будет перезагружен, он загрузит метрики из этого топика, чтобы заполнить монитор нагрузки

__KafkaCruiseControlPartitionMetricSamples

broker.metric.sample.store.topic

Топик, в котором Cruise Control будет хранить образцы метрик брокеров в качестве резервной копии. Когда Cruise Control будет перезапущен, он загрузит образцы метрик брокеров из этого топика для обучения своей модели кластера

__KafkaCruiseControlModelTrainingSamples

num.sample.loading.threads

Количество потоков для загрузки из топика Sample Store

8

metric.sampler.partition.assignor.class

Класс, используемый для назначения партиций Metric Sampler

com.linkedin.kafka.cruisecontrol.monitor.sampling.DefaultMetricSamplerPartitionAssignor

metric.sampling.interval.ms

Интервал извлечения образцов метрик

120000

partition.metrics.window.ms

Размер окна в миллисекундах для агрегирования метрик партиций Kafka. Окно должно быть шире, чем metric.sampling.interval.ms

300000

num.partition.metrics.windows

Максимальное количество окон метрик партиций, которые будет держать монитор загрузки. Каждое окно охватывает временной интервал, определенный partition.metrics.window.ms

5

min.samples.per.partition.metrics.window

Минимальное количество образцов метрик, которые должно иметь действующее окно метрик партиций. Если в окне метрик партиций недостаточно образцов, топик с такими партициями будет удален из окна из-за недостаточности данных

1

broker.metrics.window.ms

Размер окна в миллисекундах для агрегации метрик брокера Kafka. Окно должно быть больше, чем metric.sampling.interval.ms

300000

num.broker.metrics.windows

Максимальное количество окон метрик брокера, которые будет держать монитор загрузки. Каждое окно охватывает временной интервал, определяемый broker.metrics.window.ms

20

min.samples.per.broker.metrics.window

Минимальное количество образцов метрик, которое должно иметь действующее окно метрик брокеров. Если у брокера недостаточно образцов метрик, этот брокер будет удален из окна из-за недостаточности данных

1

capacity.config.file

Путь к конфигурационному JSON-файлу, который предоставляет информацию о мощностях брокеров

config/capacity.json

min.valid.partition.ratio

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

0.95

cpu.balance.threshold

Максимально допустимый предел дисбаланса по использованию ЦП. Например, 1.1 означает, что максимальная загрузка ЦП брокера не должна превышать 1.10x от средней загрузки ЦП всех брокеров

1.1

disk.balance.threshold

Максимально допустимая степень дисбаланса для использования диска. Например, 1.1 означает, что наибольшее использование диска брокером не должно превышать 1.10x среднего использования диска всеми брокерами

1.1

network.inbound.balance.threshold

Максимально допустимая степень дисбаланса для использования сети в входящем потоке. Например, 1.1 означает, что наибольшее использование сети в входящем потоке брокера не должно превышать 1.10x среднего входящего потока использования сети всех брокеров

1.1

network.outbound.balance.threshold

Максимально допустимая степень дисбаланса для использования сети на выходе. Например, 1.1 означает, что максимальное использование сети на входе брокера не должно превышать 1.10x от среднего использования сети на входе всех брокеров

1.1

replica.count.balance.threshold

Максимально допустимый предел дисбаланса для распределения реплик. Например, 1.1 означает, что максимальное количество реплик у брокера не должно превышать 1.10x от среднего количества реплик у всех брокеров

1.1

cpu.capacity.threshold

Максимальный процент от общей мощности CPU брокера (broker.cpu.capacity), который разрешено использовать на брокере. Анализатор будет обеспечивать жесткую цель, при которой использование CPU на брокере не может превышать значения (broker.cpu.capacity*cpu.capacity.threshold)

0.7

disk.capacity.threshold

Максимальный процент от общей емкости диска брокера (broker.disk.capacity), который разрешается использовать на брокере. Анализатор будет обеспечивать жесткую цель, при которой использование диска на брокере не может превышать значения (broker.disk.capacity*disk.capacity.threshold)

0.8

network.inbound.capacity.threshold

Максимальный процент от общей пропускной способности (broker.network.inbound.capacity), который может использоваться на брокере. Анализатор будет обеспечивать жесткую цель, при которой использование диска брокера не может превышать значения (broker.network.inbound.capacity*network.inbound.capacity.threshold)

0.8

network.outbound.capacity.threshold

Максимальный процент от общей пропускной способности (broker.network.outbound.capacity), который может быть использован на брокере. Анализатор будет обеспечивать жесткую цель, при которой использование диска брокера не может превышать значения (broker.network.outbound.capacity*network.outbound.capacity.threshold)

0.8

cpu.low.utilization.threshold

Устанавливает низкий порог (в процентах) для определения использования CPU, при котором перебалансировка не имеет смысла. Кластер будет находиться в состоянии низкой загрузки только тогда, когда все брокеры будут ниже порога низкой загрузки

0

disk.low.utilization.threshold

Устанавливает низкий порог (в процентах) для определения использования диска, при котором перебалансировка не имеет смысла. Кластер будет находиться в состоянии низкой загрузки только тогда, когда все брокеры будут ниже порога низкой загрузки

0

network.inbound.low.utilization.threshold

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

0

network.outbound.low.utilization.threshold

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

0

metric.anomaly.percentile.upper.threshold

Устанавливает верхний порог (в процентах) для детектора аномалий метрик с целью выявления увеличения значений метрики брокера как аномалии метрики. Текущее значение метрики сравнивается с историческим значением, соответствующим данному значению в истории метрик после применения верхней границы

90

metric.anomaly.percentile.lower.threshold

Устанавливает нижний порог (в процентах) для детектора аномалий метрик с целью выявления увеличения значений метрики брокера как аномалии метрики. Текущее значение метрики сравнивается с историческим значением, соответствующим данному значению в истории метрик после применения верхней границы

10

proposal.expiration.ms

Cruise Control постоянно кеширует одно из лучших предложений среди всех кандидатных предложений на оптимизацию, которые он недавно вычислил. Этот параметр определяет, когда кешированное предложение будет недействительным и потребует пересчета. Если параметр установлен в 0, кандидатные предложения будут вычисляться постоянно

60000

max.replicas.per.broker

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

10000

num.proposal.precompute.threads

Количество потоков, используемых для предварительного вычисления кандидатов для оптимизации. Чем больше потоков используется, тем больше ресурсов памяти и CPU будет задействовано

1

num.concurrent.partition.movements.per.broker

Максимальное количество партиций, которые исполнитель (executor) переместит в брокер или из него одновременно. Например, установка значения на 10 означает, что исполнитель в данный момент позволит максимум 10 партициям покинуть брокер и 10 партициям войти в брокер. Это сделано для того, чтобы избежать перегрузки кластера перемещениями партиций

10

max.num.cluster.partition.movements

Максимальное количество разрешенных перемещений партиций в кластере. Этот глобальный лимит не может быть превышен независимо от уровня параллелизма перемещения реплик по брокерам. Например, установка значения на 10 означает, что исполнитель в любой момент времени позволит переместить не более 10 партиций между всеми брокерами в кластере, независимо от уровня параллелизма на уровне брокера

1250

num.concurrent.intra.broker.partition.movements

Максимальное количество партиций, которые исполнитель (executor) будет перемещать между дисками в рамках брокера одновременно. Например, установка значения на 10 означает, что исполнитель позволит в наибольшем количестве 10 партиций перемещаться между дисками внутри брокера в любой момент времени. Это сделано для того, чтобы избежать перегрузки кластера перемещениями партиций внутри брокера

2

num.concurrent.leader.movements

Максимальное количество перемещений лидера, которые исполнитель (executor) выполнит за один раз. Это в основном связано с тем, что znode имеет верхний предел размера в 1 МБ. Это также снизит нагрузку на контроллер

1000

execution.progress.check.interval.ms

Интервал в миллисекундах, в течение которого исполнитель (executor) будет проверять прогресс выполнения

10000

anomaly.notifier.class

Класс уведомителя для вызова предупреждения при выявлении аномалии

com.linkedin.kafka.cruisecontrol.detector.notifier.SelfHealingNotifier

metric.anomaly.finder.class

Список классов для поиска аномалий метрик, чтобы определить текущее состояние для выявления аномалий метрик

com.linkedin.kafka.cruisecontrol.detector.KafkaMetricAnomalyFinder

metric.anomaly.analyzer.metrics

Идентификаторы метрик, которые детектор аномалий метрик должен обнаруживать в случае их нарушения

BROKER_PRODUCE_LOCAL_TIME_MS_50TH, BROKER_PRODUCE_LOCAL_TIME_MS_999TH, BROKER_CONSUMER_FETCH_LOCAL_TIME_MS_50TH, BROKER_CONSUMER_FETCH_LOCAL_TIME_MS_999TH, BROKER_FOLLOWER_FETCH_LOCAL_TIME_MS_50TH, BROKER_FOLLOWER_FETCH_LOCAL_TIME_MS_999TH, BROKER_LOG_FLUSH_TIME_MS_50TH, BROKER_LOG_FLUSH_TIME_MS_999TH

self.healing.exclude.recently.demoted.brokers

Устанавливается в true, если брокеры, недавно пониженные в приоритете, нужно исключить из оптимизаций во время самовосстановления

true

self.healing.exclude.recently.removed.brokers

Устанавливается в true, если брокеры, недавно удаленные, нужно исключить из оптимизаций во время самовосстановления

true

failed.brokers.zk.path

Путь в ZooKeeper для хранения списка неисправных брокеров, где сохраняется время сбоя брокера на случай, если в Cruise Control произошел сбой и перезапуск в тот момент, когда некоторые брокеры не запущены

/CruiseControlBrokerList

topic.config.provider.class

Класс провайдера, который сообщает об активной конфигурации топиков

com.linkedin.kafka.cruisecontrol.config.KafkaAdminTopicConfigProvider

cluster.configs.file

Путь к файлу конфигураций кластера

config/clusterConfigs.json

completed.kafka.monitor.user.task.retention.time.ms

Максимальное время в миллисекундах для хранения ответа и доступа к деталям завершенной задачи мониторинга пользователя Kafka. Если этот параметр не установлен, будет использоваться значение, установленное в completed.user.task.retention.time.ms

86400000

completed.cruise.control.monitor.user.task.retention.time.ms

Максимальное время в миллисекундах для хранения ответа и доступа к деталям завершенной задачи мониторинга пользователя Cruise Control. Если этот параметр не установлен, будет использоваться значение, установленное в completed.user.task.retention.time.ms

86400000

completed.kafka.admin.user.task.retention.time.ms

Максимальное время в миллисекундах для хранения ответа и деталей доступа завершенной задачи администратора пользователя Kafka. Если этот параметр не установлен, будет использоваться значение, установленное в completed.user.task.retention.time.ms

604800000

completed.cruise.control.admin.user.task.retention.time.ms

Максимальное время в миллисекундах для хранения ответа и деталей доступа завершенной задачи пользователя Cruise Control. Если этот параметр не установлен, будет использоваться значение, установленное в completed.user.task.retention.time.ms

604800000

completed.user.task.retention.time.ms

Максимальное время в миллисекундах для хранения ответа и деталей доступа завершенной пользовательской задачи

86400000

demotion.history.retention.time.ms

Максимальное время в миллисекундах для хранения истории понижения брокеров

1209600000

removal.history.retention.time.ms

Максимальное время в миллисекундах для хранения истории удаления брокеров

1209600000

max.cached.completed.kafka.monitor.user.tasks

Максимальное количество завершенных пользовательских задач мониторинга Kafka, для которых будут кешироваться данные об ответах и доступе. Если этот параметр отсутствует, будет использовано значение, установленное в max.cached.completed.user.tasks

20

max.cached.completed.cruise.control.monitor.user.tasks

Максимальное количество завершенных пользовательских задач мониторинга Cruise Control, для которых будут кешироваться данные об ответах и доступе. Если этот параметр отсутствует, будет использовано значение, установленное в max.cached.completed.user.tasks

20

max.cached.completed.kafka.admin.user.tasks

Максимальное количество завершенных пользовательских задач по администрированию Kafka, для которых будут кешироваться данные ответа и доступа. Если этот параметр отсутствует, будет использовано значение, установленное в max.cached.completed.user.tasks

30

max.cached.completed.cruise.control.admin.user.tasks

Максимальное количество завершенных пользовательских задач по управлению Cruise Control, для которых будут кешироваться данные ответа и доступа. Если этот параметр отсутствует, будет использовано значение, установленное в max.cached.completed.user.tasks

30

max.cached.completed.user.tasks

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

25

max.active.user.tasks

Максимальное количество пользовательских задач, которые могут выполняться одновременно в асинхронных конечных точках (endpoints) для всех пользователей

5

webserver.api.urlprefix

Префикс по умолчанию для URL REST API

/kafkacruisecontrol/*

webserver.ui.diskpath

Место, где развернут фронтенд Cruise Control

./cruise-control-ui/dist/

webserver.ui.urlprefix

URL путь, откуда подается пользовательский интерфейс

/*

webserver.request.maxBlockTimeMs

Время, по истечении которого запрос преобразуется в асинхронный

10000

webserver.session.maxExpiryTimeMs

Период истечения срока действия сессии по умолчанию

60000

webserver.session.path

Путь по умолчанию для сессии (для файлов cookie)

/

webserver.accesslog.enabled

Установите в true, если нужно включить журнал доступа

true

two.step.verification.enabled

Установите в true, если нужно включить двухступенчатую проверку для обработки POST-запросов

false

two.step.purgatory.retention.time.ms

Максимальное время в миллисекундах для сохранения запросов в двухступенчатом (верификационном) "чистилище запросов" (request purgatory)

1209600000

two.step.purgatory.max.requests

Максимальное количество запросов в двухступенчатом (верификационном) "чистилище запросов" (request purgatory)

25

vertx.enabled

Включает использование вертиклей

false

spnego.principal

Принципал Kerberos-аутентификации для SPNEGO

HTTP/{{ groups['kafka.CRUISECONTROL'][0] | d(omit) }}@{{ cluster.config.kerberos_client.realm }}

spnego.keytab.file

Keytab-файл для SPNEGO

{{ cluster.config.kerberos_client.keytab_dir }}/HTTP.service.keytab

additional

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

 — 

capacity.json config template

 
    Пользовательский шаблон для настройки JSON-файла, который предоставляет информацию о мощностях брокеров.

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

{
  "brokerCapacities":[
    {
      "brokerId": "-1",
      "capacity": {
        "DISK": "20000",
        "CPU": "100",
        "NW_IN": "50000",
        "NW_OUT": "50000"
      },
      "doc": "This is the default capacity. Capacity unit used for disk is in MB, CPU is in percentage, network throughput is in KB."
    }
  ]
}
log4j properties configuration

 

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

property.filename

Путь к логам Cruise Control

/var/log/cruise-control

rootLogger.level

Уровень логирования корневого регистратора (root logger)

INFO

logger.cruisecontrol.level

Уровень логирования Cruise Control

INFO

logger.detector.level

Уровень логирования детектора аномалий

INFO

logger.operationLogger.level

Уровень логирования выполнения операций

INFO

logger.CruiseControlPublicAccessLogger.level

Уровень логирования публичного доступа Cruise Control

INFO

log4j_properties_template

 

    Шаблон пользовательского файла log4j_properties Cruise Control предназначен для указания пользовательских параметров логирования

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

#jinja2: lstrip_blocks:"True", trim_blocks:"True"
# {{ ansible_managed }}
{% set kafka_cruisecontrol_log4j = services.kafka.CRUISECONTROL.config.log4j_properties_configuration %}

rootLogger.level={{ kafka_cruisecontrol_log4j['rootLogger.level'] }}
property.filename={{ kafka_cruisecontrol_log4j['property.filename'] }}

appenders=console, kafkaCruiseControlAppender, operationAppender, requestAppender

appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d] %p %m (%c)%n

appender.kafkaCruiseControlAppender.type=RollingFile
appender.kafkaCruiseControlAppender.name=kafkaCruiseControlFile
appender.kafkaCruiseControlAppender.fileName=${filename}/kafkacruisecontrol.log
appender.kafkaCruiseControlAppender.filePattern=${filename}/kafkacruisecontrol.log.%d{yyyy-MM-dd-HH}
appender.kafkaCruiseControlAppender.layout.type=PatternLayout
appender.kafkaCruiseControlAppender.layout.pattern=[%d] %p %m (%c)%n
appender.kafkaCruiseControlAppender.policies.type=Policies
appender.kafkaCruiseControlAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.kafkaCruiseControlAppender.policies.time.interval=1

appender.operationAppender.type=RollingFile
appender.operationAppender.name=operationFile
appender.operationAppender.fileName=${filename}/kafkacruisecontrol-operation.log
appender.operationAppender.filePattern=${filename}/kafkacruisecontrol-operation.log.%d{yyyy-MM-dd}
appender.operationAppender.layout.type=PatternLayout
appender.operationAppender.layout.pattern=[%d] %p [%c] %m %n
appender.operationAppender.policies.type=Policies
appender.operationAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.operationAppender.policies.time.interval=1

appender.requestAppender.type=RollingFile
appender.requestAppender.name=requestFile
appender.requestAppender.fileName=${filename}/kafkacruisecontrol-request.log
appender.requestAppender.filePattern=${filename}/kafkacruisecontrol-request.log.%d{yyyy-MM-dd-HH}
appender.requestAppender.layout.type=PatternLayout
appender.requestAppender.layout.pattern=[%d] %p %m (%c)%n
appender.requestAppender.policies.type=Policies
appender.requestAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.requestAppender.policies.time.interval=1

# Loggers
logger.cruisecontrol.name=com.linkedin.kafka.cruisecontrol
logger.cruisecontrol.level={{ kafka_cruisecontrol_log4j['logger.cruisecontrol.level'] }}
logger.cruisecontrol.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile

logger.detector.name=com.linkedin.kafka.cruisecontrol.detector
logger.detector.level={{ kafka_cruisecontrol_log4j['logger.detector.level'] }}
logger.detector.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile

logger.operationLogger.name=operationLogger
logger.operationLogger.level={{ kafka_cruisecontrol_log4j['logger.operationLogger.level'] }}
logger.operationLogger.appenderRef.operationAppender.ref=operationFile

logger.CruiseControlPublicAccessLogger.name=CruiseControlPublicAccessLogger
logger.CruiseControlPublicAccessLogger.level={{ kafka_cruisecontrol_log4j['logger.CruiseControlPublicAccessLogger.level'] }}
logger.CruiseControlPublicAccessLogger.appenderRef.requestAppender.ref=requestFile


rootLogger.appenderRefs=console, kafkaCruiseControlAppender
# Write to Syslog
# rootLogger.appenderRef.console.ref=STDOUT
rootLogger.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile
Basic Auth properties

 

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

ADSControl_user

Имя сервисного пользователя ADS Control

admin

Kerberos Authentication "principal:role" map

 
Меню конфигурации API Kerberos для Cruise Control.

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

HTTP

Принципал для подключения по HTTP

ADMIN

adscc

Принципал сервисного пользователя ADS Control

ADMIN

Add property

Позволяет добавить короткое имя принципала (без указания host@REALM), которое будет использоваться в случае если Kerberos включен без генерации принципалов и keytab

 — 

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