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

Статья описывает параметры, которые могут быть настроены для сервисов ADS через ADCM. Процесс настройки сервисов приведен в соответствующих статьях: Online-установка, Offline-установка.

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

Kafka

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

Host index matching

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

 — 

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

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

PID_DIR

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

/var/run/kafka

LOG_DIR

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

/var/log/kafka

JMX_PORT

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

9999

KAFKA_OPTS

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

 — 

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

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

jmx_port

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

9999

JMX Exporter Port

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

11201

JMX Authentication

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

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

Username

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

monitoring

Password

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

 — 

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 options

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

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 safety checks

 

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

Interval_sec

Интервал времени между последовательными перезапусками (rolling restart), в секундах

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

 

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

controller.properties

 

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

listeners

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

CONTROLLER://:9093

Metadata log.dirs

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

/kafka-meta

kafka-controller-env.sh

 

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

PID_DIR

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

/var/run/kafka-controller

LOG_DIR

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

/var/log/kafka-controller

Kafka Connect

Main

 

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

tasks.max

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

10

offset-syncs.topic.replication.factor

Фактор репликации для внутреннего топика offset-syncs.topic

1

checkpoint.topic.replication.factor:

Фактор репликации для внутреннего топика checkpoint.topic

1

sync.topic.acls.enabled

Включение мониторинга исходного кластера на предмет изменений ACL

false

kafka-connect-env.sh

 

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

KAFKA_HEAP_OPTS

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

-Xms256M -Xmx2G

LOG_DIR

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

/var/log/kafka

KAFKA_LOG4J_OPTS

Переменная окружения для конфигурации ведения журнала LOG4J

-Dlog4j.configuration=file:/etc/kafka/conf/connect-distributed-log4j.properties

KAFKA_OPTS

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

 — 

connect-distributed.properties

 

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

group.id

Уникальная строка, идентифицирующая группу Kafka Connect, которой принадлежит этот коннектор

mm-connect

rest.port

Порт для работы Kafka Connect REST API

8083

plugin.path

Путь к плагину Kafka Connect

 — 

config.storage.replication.factor

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

1

offset.storage.replication.factor

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

1

status.storage.replication.factor

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

1

offset.flush.interval.ms

Интервал, через который можно попытаться зафиксировать смещения для задач (в мс)

1

key.converter

Преобразователь класса для ключевых данных Connect

org.apache.kafka.connect.converters.ByteArrayConverter

value.converter

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

org.apache.kafka.connect.converters.ByteArrayConverter

connector.client.config.override.policy

Имя класса или псевдоним реализации ConnectorClientConfigOverridePolicy

None

Add key, value

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

 — 

connect-distributed-log4j.properties

 

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

rootLogger

Уровень ведения логов

INFO

MaxBackupIndex

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

10

MaxFileSize

Максимальный размер файла

100MB

Настройка структуры файла конфигурации ведения журнала для Kafka Connect

Журнал (логгер) Имена пакетов по умолчанию Уровень события по умолчанию

loggers

org.apache.zookeeper

ERROR

org.I0Itec.zkclient

ERROR

org.reflections

ERROR

connect_distributed_log4j_properties_template

 

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

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

{% set connect_distributed_log4j_properties = services.kafka_connect.config.connect_distributed_log4j_properties_content %}

log4j.rootLogger={{ connect_distributed_log4j_properties['rootLogger'] }}, connectDRFA, connectRFA, stdout

# Send the logs to the console.
#
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

#
# The `%X{connector.context}` parameter in the layout includes connector-specific and task-specific information
# in the log message, where appropriate. This makes it easier to identify those log messages that apply to a
# specific connector. Simply add this parameter to the log layout configuration below to include the contextual information.
#
#log4j.appender.stdout.layout.ConversionPattern=[%d] %p %X{connector.context}%m (%c:%L)%n
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
connect.log.pattern=[%d] %p %m (%c:%L)%n

{% for key, value in connect_distributed_log4j_properties['loggers'] | dictsort -%}
log4j.logger.{{ key }}={{ value }}
{% endfor -%}

log4j.appender.connectDRFA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.connectDRFA.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.connectDRFA.File=${kafka.logs.dir}/connect-distributed.log
log4j.appender.connectDRFA.layout=org.apache.log4j.PatternLayout
log4j.appender.connectDRFA.layout.ConversionPattern=${connect.log.pattern}
log4j.appender.connectDRFA.MaxBackupIndex={{ connect_distributed_log4j_properties['MaxBackupIndex'] }}

log4j.appender.connectRFA=org.apache.log4j.RollingFileAppender
log4j.appender.connectRFA.File=${kafka.logs.dir}/connect-distributed.log
log4j.appender.connectRFA.layout=org.apache.log4j.PatternLayout
log4j.appender.connectRFA.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.connectRFA.Append=true
log4j.appender.connectRFA.MaxBackupIndex={{ connect_distributed_log4j_properties['MaxBackupIndex'] }}
log4j.appender.connectRFA.MaxFileSize={{ connect_distributed_log4j_properties['MaxFileSize'] }}
SSL

 

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

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

 — 

JAAS template

 

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

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

{% 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 }}/kafka-connect.service.keytab"
    principal="kafka-connect/{{ 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="kafka-connect"
  password="{{ credential['kafka-connect'] }}";
};
{%- endif %}
JMX Monitoring
Параметр Описание Значение по умолчанию

jmx_port

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

9996

JMX Exporter Port

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

11205

JMX Authentication

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

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

Username

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

monitoring

Password

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

 — 

Kafka REST Proxy

Main

 

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

rest_listener_port

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

8082

kafka-env.sh

 

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

LOG_DIR

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

/var/log/kafka-rest

JMX_PORT

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

9998

KAFKAREST_HEAP_OPTS

Размер heap, выделенный процессу Kafka REST Proxy

-Xmx1024M

KAFKAREST_JMX_OPTS

Параметры JVM в части опций JMX (авторизация, подключение, ssl)

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

KAFKAREST_OPTS

Имя переменной окружения Kafka REST Proxy

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

Basic Auth properties

 

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

authentication.method

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

BASIC

authentication.roles

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

admin

authentication.realm

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

KafkaRest

kafka-rest.properties

 

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

id

Уникальный идентификатор для этого экземпляра сервера REST

kafka-rest-server

consumer.threads

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

50

consumer.request.timeout.ms

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

100

consumer.request.max.bytes:

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

67108864

fetch.min.bytes

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

-1

ssl.endpoint.identification.algorithm

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

 — 

ssl.keystore.location

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

 — 

ssl.keystore.type

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

 — 

ssl.keystore.password

Используется для HTTPS. Пароль для доступа к keystore

 — 

ssl.key.password

Используется для HTTPS. Пароль ключа, содержащегося в keystore

 — 

ssl.truststore.location

Используется для HTTPS. Расположение truststore. Требуется только для аутентификации HTTPS-клиентов

 — 

ssl.truststore.type

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

 — 

ssl.truststore.password

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

 — 

client.ssl.keystore.location

Расположение файла хранилища keystore для использования SSL

 — 

client.ssl.keystore.password

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

 — 

client.ssl.key.password

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

 — 

client.ssl.keystore.type

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

 — 

client.ssl.truststore.location

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

 — 

client.ssl.truststore.password

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

 — 

client.ssl.truststore.type

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

 — 

client.ssl.endpoint.identification.algorithm

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

 — 

Add key, value

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

 — 

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

jmx_port

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

9998

JMX Exporter Port

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

11204

JMX Authentication

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

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

Username

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

monitoring

Password

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

 — 

JAAS template

 

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

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

{% if cluster.config.basic_auth_default_config is not none %}
{{ services.kafka_rest.config.basic_auth_properties_content['authentication.realm'] }} {
  org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
  file="{{ rest_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 }}/kafka-rest.service.keytab"
    principal="kafka-rest/{{ 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="kafka-rest"
  password="{{ credential['kafka-rest'] }}";
};
{% endif %}
Principal Propagation

 

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

JAAS Entry

Раздел пользовательского файла jaas.conf, в котором указан список пользователей для аутентификации в Kafka. Подробнее см. Использование kafka-rest-security

KafkaClient

ksqlDB

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

MiNiFi

Main

 

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

MiNiFi C2 Server port

HTTP-порт для подключения к MiNiFi C2 Server

10080

nifi.minifi.notifier.ingestors.pull.http.query

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

minifi

minifi-env.sh

 

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

MINIFI_HOME

Каталог для установки MiNiFi

/usr/lib/minifi

MINIFI_PID_DIR

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

/var/run/minifi

MINIFI_LOG_DIR

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

/var/log/minifi

MiNiFi Agent bootstrap.conf

 

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

MiNiFi Agent Heap size

Heap-размер агента

256m

nifi.minifi.notifier.ingestors.pull.http.period.ms

Период проверки обновлений (в мс)

300000

nifi.minifi.status.reporter.log.query

Запрос состояния экземпляра MiNiFi:

  • health — состояние отчета экземпляра, активные потоки, наличие или отсутствие bulletins и каких-либо ошибок проверки;

  • bulletins — список всех текущих bulletins (если есть);

  • stats — текущее состояние экземпляра, включает в том числе байты чтения/записи и отправленные/переданные FlowFiles.

instance:

  • health;

  • bulletins.

nifi.minifi.status.reporter.log.level

Уровень журнала, на котором регистрируется статус

INFO

nifi.minifi.status.reporter.log.period

Задержка между запросами (в мс)

60000

nifi.minifi.security.keystore

Полный путь и имя хранилища keystore

 — 

nifi.minifi.security.keystoreType

Тип хранилища keystore

 — 

nifi.minifi.security.keystorePasswd

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

 — 

nifi.minifi.security.keyPasswd

Ключевой пароль

 — 

nifi.minifi.security.truststore

Полный путь и имя хранилища truststore

 — 

nifi.minifi.security.truststoreType

Тип хранилища truststore

 — 

nifi.minifi.security.truststorePasswd

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

 — 

nifi.minifi.security.ssl.протокол

Протокол безопасности

 — 

nifi.minifi.notifier.ingestors.pull.http.keystore.location

Полный путь и имя хранилища keystore

 — 

nifi.minifi.notifier.ingestors.pull.http.keystore.type

Тип хранилища keystore

 — 

nifi.minifi.notifier.ingestors.pull.http.keystore.password

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

 — 

nifi.minifi.notifier.ingestors.pull.http.truststore.location

Полный путь и имя хранилища truststore

 — 

nifi.minifi.notifier.ingestors.pull.http.truststore.type

Тип хранилища truststore

 — 

nifi.minifi.notifier.ingestors.pull.http.truststore.password

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

 — 

MiNiFi Agent logback.xml

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

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

app_file_max_history

Максимальное количество файлов для приложений

10

boot_file_max_history

Максимальное количество файлов для Boot

5

status_file_max_history

Максимальное количество файлов для статусов

5

root_level

Уровень события

INFO

Настройка структуры файла конфигурации логирования для MiNiFi

Журнал (логгер) Имена пакетов по умолчанию Уровень события по умолчанию

app_loggers

org.apache.nifi

INFO

org.apache.nifi.processors

WARN

org.apache.nifi.processors.standard.LogAttribute

INFO

org.apache.nifi.controller.repository.StandardProcessSession

WARN

bootstrap_loggers

org.apache.nifi.bootstrap

INFO

org.apache.nifi.bootstrap.Command

INFO

org.apache.nifi.StdOut

INFO

org.apache.nifi.StdErr

ERROR

status_loggers

org.apache.nifi.minifi.bootstrap.status.reporters.StatusLogger

INFO

MiNiFi Agent logback.xml template

 

    Шаблон для пользовательской настройки файла MiNiFi Agent logback.xml.

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

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Maintained by ADCM
-->
<configuration scan="true" scanPeriod="30 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
    {% set logback = services.minifi.config['minifi_agent_logback_content'] %}
    <appender name="APP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'app_%d.log'.
              For hourly rollover, use 'app_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-app_%d{yyyy-MM-dd_HH}.%i.log.gz</fileNamePattern>
            <!-- Keep 10 rolling periods worth of log files-->
            <maxHistory>{{ logback.app_file_max_history }}</maxHistory>
            <!-- Max size each log file will be-->
            <maxFileSize>1MB</maxFileSize>
            <!-- Provide a cap of 10 MB across all archive files -->
            <totalSizeCap>10MB</totalSizeCap>
        </rollingPolicy>
        <immediateFlush>true</immediateFlush>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-bootstrap.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'user_%d.log'.
              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-bootstrap_%d.log.gz</fileNamePattern>
            <!-- Keep 5 rolling periods worth of logs-->
            <maxHistory>{{ logback.boot_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
        </appender>

    <appender name="STATUS_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-status.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
            For daily rollover, use 'user_%d.log'.
            For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
            To GZIP rolled files, replace '.log' with '.log.gz'.
            To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-status_%d.log</fileNamePattern>
            <!-- keep 5 log files worth of history -->
            <maxHistory>{{ logback.status_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>


    <!-- valid logging levels: TRACE, DEBUG, INFO, WARN, ERROR -->

    {% for key, value in logback.app_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}"/>
    {% endfor -%}

    <!-- Logger for managing logging statements for jetty -->
    <logger name="org.eclipse.jetty" level="INFO"/>

    <!-- Suppress non-error messages due to excessive logging by class or library -->
    <logger name="com.sun.jersey.spi.container.servlet.WebComponent" level="ERROR"/>
    <logger name="com.sun.jersey.spi.spring" level="ERROR"/>
    <logger name="org.springframework" level="ERROR"/>

    <!-- Suppress non-error messages due to known warning about redundant path annotation (NIFI-574) -->
    <logger name="com.sun.jersey.spi.inject.Errors" level="ERROR"/>

    <!--
        Logger for capturing Bootstrap logs and MiNiFi's standard error and standard out.
    -->

    {% for key, value in logback.bootstrap_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="BOOTSTRAP_FILE"/>
    {% if key == "org.apache.nifi.minifi.bootstrap.Command" %}
        <appender-ref ref="CONSOLE" />
    {% endif -%}
    </logger>
    {% endfor -%}

    {% for key, value in logback.status_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="STATUS_LOG_FILE" />
    </logger>
    {% endfor -%}

    <root level="{{ logback.root_level }}">
        <appender-ref ref="APP_FILE"/>
    </root>

</configuration>
MiNiFi Agent state-management.xml template

 

    Шаблон для пользовательской настройки файла MiNiFi Agent state-management.xml.

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  Maintained by ADCM
-->
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (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.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!--
  This file provides a mechanism for defining and configuring the State Providers
  that should be used for storing state locally and across a NiFi cluster. In order
  to use a specific provider, it must be configured here and its identifier
  must be specified in the nifi.properties file.
-->
<stateManagement>
    <!--
        State Provider that stores state locally in a configurable directory. This Provider requires the following properties:

        Directory - the directory to store components' state in. If the directory being used is a sub-directory of the NiFi installation, it
                    is important that the directory be copied over to the new version when upgrading NiFi.
     -->
    <local-provider>
        <id>local-provider</id>
        <class>org.apache.nifi.controller.state.providers.local.WriteAheadLocalStateProvider</class>
        <property name="Directory">./state/local</property>
    </local-provider>

    <!--
        State Provider that is used to store state in ZooKeeper. This Provider requires the following properties:

        Root Node - the root node in ZooKeeper where state should be stored. The default is '/nifi', but it is advisable to change this to a different value if not using
                   the embedded ZooKeeper server and if multiple NiFi instances may all be using the same ZooKeeper Server.

        Connect String - A comma-separated list of host:port pairs to connect to ZooKeeper. For example, myhost.mydomain:2181,host2.mydomain:5555,host3:6666

        Session Timeout - Specifies how long this instance of NiFi is allowed to be disconnected from ZooKeeper before creating a new ZooKeeper Session. Default value is "30 seconds"

        Access Control - Specifies which Access Controls will be applied to the ZooKeeper ZNodes that are created by this State Provider. This value must be set to one of:
                            - Open  : ZNodes will be open to any ZooKeeper client.
                            - CreatorOnly  : ZNodes will be accessible only by the creator. The creator will have full access to create children, read, write, delete, and administer the ZNodes.
                                             This option is available only if access to ZooKeeper is secured via Kerberos or if a Username and Password are set.

        Username - An optional username that can be used to assign Access Controls to ZNodes. ZooKeeper allows users to assign arbitrary usernames and passwords to ZNodes. These usernames
                   and passwords are not explicitly defined elsewhere but are simply associated with ZNodes, so it is important that all NiFi nodes in a cluster have the same value for the
                   Username and Password properties.

        Password - An optional password that can be used to assign Access Controls to ZNodes. This property must be set if the Username property is set. NOTE: ZooKeeper transmits passwords
                   in plain text. As a result, a Username and Password should be used only if communicate with a ZooKeeper on a localhost or over encrypted comms (such as configuring SSL
                   communications with ZooKeeper).
    -->
    <cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <property name="Connect String"></property>
        <property name="Root Node">/nifi</property>
        <property name="Session Timeout">30 seconds</property>
        <property name="Access Control">CreatorOnly</property>
        <property name="Username">nifi</property>
        <property name="Password">nifi</property>
    </cluster-provider>
</stateManagement>
MiNiFi C2 Server c2.properties

 

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

minifi.c2.server.secure

MiNiFi C2 безопасен

 — 

minifi.c2.server.keystore

Полный путь и имя хранилища ключей keystore

 — 

minifi.c2.server.keystoreType

Тип хранилища ключей keystore

 — 

minifi.c2.server.keystorePasswd

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

 — 

minifi.c2.server.keyPasswd

Ключевой пароль

 — 

minifi.c2.server.truststore

Полный путь и имя хранилища truststore

 — 

minifi.c2.server.truststoreType

Тип хранилища truststore

 — 

minifi.c2.server.truststorePasswd

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

 — 

Add key, value

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

 — 

MiNiFi C2 Server logback.xml

 

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

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

log_file_max_history

Максимальное количество файлов для приложений

5

root_level

Уровень события

INFO

Настройка структуры файла конфигурации логирования для MiNiFi C2 Server

Журнал (логгер) Имена пакетов по умолчанию Уровень события по умолчанию

log_file_loggers

org.apache.nifi.minifi.c2

DEBUG

MiNiFi C2 Server authorizations.yaml

 

    Шаблон для пользовательской настройки файла MiNiFi C2 Server authorizations.yaml.

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

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (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.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an \"AS IS\" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

Default Action: deny
Paths:
  /c2/config:
    Default Action: deny
    Actions:
    - Authorization: CLASS_RASPI_3
      Query Parameters:
        class: raspi3
      Action: allow
    - Authorization: ROLE_SUPERUSER
      Action: allow

    # Default authorization lets anonymous pull any config.  Remove below to change that.
    - Authorization: ROLE_ANONYMOUS
      Action: allow

  /c2/config/contentTypes:
    Default Action: deny
    Actions:
    - Authorization: CLASS_RASPI_3
      Action: allow
    # Default authorization lets anonymous pull any config.  Remove below to change that.
    - Authorization: ROLE_ANONYMOUS
      Action: allow

  /c2/config/heartbeat:
    Default Action: deny
    Actions:
      - Authorization: CLASS_RASPI_3
        Query Parameters:
          class: raspi3
        Action: allow
      - Authorization: ROLE_SUPERUSER
        Action: allow

      # Default authorization lets anonymous pull any config.  Remove below to change that.
      - Authorization: ROLE_ANONYMOUS
        Action: allow

  /c2/config/acknowledge:
    Default Action: deny
    Actions:
      - Authorization: CLASS_RASPI_3
        Query Parameters:
          class: raspi3
        Action: allow
      - Authorization: ROLE_SUPERUSER
        Action: allow

      # Default authorization lets anonymous pull any config.  Remove below to change that.
      - Authorization: ROLE_ANONYMOUS
        Action: allow
MiNiFi C2 Server logback.xml template

 

    Шаблон для пользовательской настройки файла MiNiFi C2 Server logback.xml.

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

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Maintained by ADCM
-->
{% set logback = services.minifi.config['minifi_c2_server_logback_content'] -%}
<configuration scan="true" scanPeriod="30 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
        </appender>

    <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/var/log/minifi-c2/minifi-c2.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/var/log/minifi-c2/minifi-c2_%d.log</fileNamePattern>
            <!-- keep 5 log files worth of history -->
            <maxHistory>{{ logback.log_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    {% for key, value in logback.log_file_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}">
        <appender-ref ref="LOG_FILE"/>
    {% if key == "org.apache.nifi.minifi.c2" %}
        <appender-ref ref="CONSOLE" />
    {% endif -%}
    </logger>
    {% endfor -%}

    <root level="{{ logback.root_level }}">
        <appender-ref ref="LOG_FILE"/>
    </root>

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

Set service checks

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

true

Monitoring

Prometheus settings

 

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

 — 

scrape_interval

Интервал сбора метрик

1m

 — 

scrape_timeout

Время ожидания данных

10s

 — 

Password for grafana connection

Пароль пользователя Grafana (admprom_grafana) для подключения к Prometheus

 — 

 — 

Prometheus users to login/logout to Prometheus

Учетные данные пользователей для входа в веб-интерфейс Prometheus

 — 

Service parameters

config.file

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

/etc/admprom/prometheus/prometheus.yml

storage.tsdb.path

Путь к базе данных сервера Prometheus

/var/lib/admprom/prometheus

web.console.libraries

Путь к библиотекам управления консолями

/usr/share/admprom/prometheus/console_libraries

web.console.templates

Путь к шаблонам консолей сервера Prometheus

/usr/share/admprom/prometheus/consoles

web.config.file

Указывает, какой файл веб-конфигурации следует загрузить. Файл записывается в YAML-формате

/etc/admprom/prometheus/prometheus-auth.yml

storage.tsdb.retention.time

Время хранения данных. Поддерживаемые единицы: y, w, d, h, m, s, ms

15d

web.listen-address

Адрес для доступа к веб-интерфейсу Prometheus

0.0.0.0:11200

Grafana settings

 

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

Grafana administrator’s password

Пароль администратора Grafana

 — 

Grafana listen port

Порт доступа к web-интерфейсу Grafana

11210

Node exporter settings

 

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

Listen port

Порт доступа к системным метрикам хоста ADS в формате Prometheus

11203

Metrics endpoint

Конечная точка, в которую Node exporter экспортирует системные метрики в формате Prometheus

/metrics

[Deprecated] Monitoring Clients

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

Protocol

Протокол, используемый для отправки метрик в кластер мониторинга. Возможные значения: TCP и UDP. Выбор протокола UDP доступен в кластерах мониторинга начиная с версии 2.8

TCP

NiFi

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

Nifi config encryption password

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

 — 

NiFi Ranger plugin enabled

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

false

Nifi-Registry Flow Provider

Провайдер Nifi-Registry Flow

FileSystemFlowPersistenceProvider

Nifi-Registry Bundle Provider

Провайдер Nifi-Registry Bundle

FileSystemBundlePersistenceProvider

Set service checks

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

true

Main

 

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

Nifi UI port

HTTP-порт, на котором поднимается веб-интерфейс сервиса NiFi, указывается в качестве параметра nifi.web.http.port в конфигурационном файле nifi.properties

9090

Nifi server Heap size

Размер heap, выделенный процессу сервиса NiFi, указывается в конфигурационном файле bootstrap.conf

1024m

Nifi Registry UI port

HTTP-порт реестра Nifi, указывается в качестве параметра nifi.registry.web.http.port в файле конфигурации nifi.properties

18080

Nifi Registry Heap size

Размер heap, выделенный реестру Nifi, указывается в конфигурационном файле bootstrap.conf

512m

nifi.queue.backpressure.count

Значение по умолчанию для количества файлов FlowFile (базовый объект обработки NiFi), которые могут находиться в очереди до того, как будет применено backpressure, то есть прекращение отправки данных источником. Значение должно быть целым числом (integer)

10000

nifi.queue.backpressure.size

Значение по умолчанию для максимального объема данных, которые должны быть поставлены в очередь перед применением backpressure. Значение должно быть размером данных, включая единицу измерения

1 GB

java.arg.snappy

Аргумент для библиотеки snappy (файловая система tempdir должна быть установлена с флагом noexes)

-Dorg.xerial.snappy.tempdir=/var/tmp

Directories

 

Параметры расположения репозиториев сервиса NiFi

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

nifi.flowfile.repository.directory

Расположение репозитория FlowFile

/usr/lib/nifi-server/flowfile_repository

nifi.content.repository.directory

Расположение репозитория Content

/usr/lib/nifi-server/content_repository

nifi.provenance.repository.directory

Расположение репозитория Provenance

/usr/lib/nifi-server/provenance_repository

nifi.database.directory

Расположение директории H2 database

/usr/lib/nifi-server/database_repository

nifi.nar.library.directory.lib

Параметр следует использовать в случае добавления custom nars

 — 

ranger-nifi-audit.xml

 

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

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

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

/srv/ranger/nifi_plugin/audit_solr_spool

xasecure.audit.destination.solr.urls

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

 — 

xasecure.audit.destination.solr.zookeepers

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

 — 

xasecure.audit.destination.solr.force.use.inmemory.jaas.config

Подключение Zookeeper к Solr с использованием конфигурации в JAAS-файле

 — 

xasecure.audit.jaas.Client.loginModuleControlFlag

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

 — 

xasecure.audit.jaas.Client.loginModuleName

Имя класса используемой технологии аутентификации

 — 

xasecure.audit.jaas.Client.option.keyTab

Имя файла keytab для получения секретного ключа принципала

 — 

xasecure.audit.jaas.Client.option.serviceName

Имя сервиса

 — 

xasecure.audit.jaas.Client.option.storeKey

Включите, если хотите, чтобы keytab или ключ субъекта сохранялись в личных учетных данных субъекта

 — 

xasecure.audit.jaas.Client.option.useKeyTab

Включите, если хотите, чтобы модуль получал ключ принципала из таблицы ключей keystore

 — 

Add key, value

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

 — 

ranger-nifi-security.xml

 

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

ranger.plugin.nifi.policy.rest.url

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

 — 

ranger.plugin.nifi.service.name

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

 — 

ranger.plugin.nifi.policy.source.impl

Класс для получения политик из источника

org.apache.ranger.admin.client.RangerAdminRESTClient

ranger.plugin.nifi.policy.cache.dir

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

/srv/ranger/nifi/policycache

ranger.plugin.nifi.policy.pollIntervalMs

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

30000

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

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

120000

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

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

30000

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

Путь к файлу, содержащему данные SSL для связи с Ranger Admin

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

Add key, value

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

 — 

ranger-nifi-policymgr-ssl.xml

 

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

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/nifi/conf/keystore.jceks

xasecure.policymgr.clientssl.truststore.credential.file

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

/etc/nifi/conf/truststore.jceks

Add key, value

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

 — 

ranger-nifi-registry-audit.xml

 

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

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

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

/srv/ranger/nifi_registry_plugin/audit_solr_spool

xasecure.audit.destination.solr.urls

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

 — 

xasecure.audit.destination.solr.zookeepers

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

 — 

xasecure.audit.destination.solr.force.use.inmemory.jaas.config

Подключение ZooKeeper к Solr с использованием конфигурации в JAAS-файле

 — 

xasecure.audit.jaas.Client.loginModuleControlFlag

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

 — 

xasecure.audit.jaas.Client.loginModuleName

Имя класса используемой технологии аутентификации

 — 

xasecure.audit.jaas.Client.option.keyTab

Имя файла keytab для получения секретного ключа принципала

 — 

xasecure.audit.jaas.Client.option.serviceName

Имя сервиса

 — 

xasecure.audit.jaas.Client.option.storeKey

Установите для этого параметра значение true, если вы хотите, чтобы keytab или ключ субъекта сохранялись в личных учетных данных субъекта

 — 

xasecure.audit.jaas.Client.option.useKeyTab

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

 — 

Add key, value

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

 — 

ranger-nifi-registry-security.xml

 

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

ranger.plugin.nifi-registry.policy.rest.url

Путь к переменной NiFi-registry для службы Ranger

 — 

ranger.plugin.nifi-registry.service.name

Имя службы Ranger, содержащей политики для этого экземпляра реестра NiFi-registry

 — 

ranger.plugin.nifi-registry.policy.source.impl

Класс для получения политик из источника

org.apache.ranger.admin.client.RangerAdminRESTClient

ranger.plugin.nifi-registry.policy.cache.dir

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

/srv/ranger/nifi-registry/policycache

ranger.plugin.nifi-registry.policy.pollIntervalMs

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

30000

ranger.plugin.nifi-registry.policy.rest.client.connection.timeoutMs

Время ожидания соединения RangerRestClient (в мс)

120000

ranger.plugin.nifi-registry.policy.rest.client.read.timeoutMs

Таймаут чтения RangerRestClient (в мс)

30000

ranger.plugin.nifi-registry.policy.rest.ssl.config.file

Путь к файлу, содержащему данные SSL для связи с Ranger Admin

/etc/nifi-registry/conf/ranger-policymgr-ssl.xml

Add key, value

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

 — 

ranger-nifi-registry-policymgr-ssl.xml

 

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

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/nifi-registry/conf/keystore.jceks

xasecure.policymgr.clientssl.truststore.credential.file

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

/etc/nifi-registry/conf/truststore.jceks

Add key, value

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

 — 

authorizers.xml

 

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

DN NiFi’s nodes list

Список идентификаторов пользователей и систем для заполнения пользовательского файла. Это обязательные поля для включения SSL в первый раз. Должен включать в себя не только DName компонента NiFi Server, но и DName NiFi Registry, а также DName для компонентов сервиса MiNiFi. Например, для кластера с включенным SSL, состоящего только из NiFi Server, при добавлении сервиса MiNiFi или расширения Schema Registry необходимо дополнить этот список новыми DName . Пример для узлов — CN=nifi_node_hostname, OU=Arenadata, O=Arenadata, L=Moscow, ST=Moscow, C=RU

 — 

NiFi Initial Admin

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

  • полный DN пользователя при установке значения Identity Strategy группы LDAP Login Identitity Provider в USE_DN;

  • только логин (имя) пользователя при установке значения Identity Strategy группы LDAP Login Identitity Provider в USE_USERNAME.

 — 

NiFi Initial Admin password

Начальный пароль администратора — пароль пользователя, назначенного NiFi Initial Admin

 — 

Ranger Admin Identitity

DN сертификата, который Ranger будет использовать для связи с Nifi. Требуется сгенерированное хранилище ключей keystore SSL и хранилище truststore на хосте Ranger. Применимо только для плагина NiFi Ranger

 — 

LDAP Login Identitity Provider

 

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

Authentication Strategy

Как аутентифицируется подключение к серверу LDAP

ANONYMOUS

Manager DN

DN пользователя, имеющего запись в каталоге Active Directory с правами поиска пользователей и групп. Будет использован для привязки к серверу LDAP для поиска пользователей

 — 

Manager Password

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

 — 

TLS - Keystore

Путь к хранилищу ключей keystore, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Keystore Password

Пароль для хранилища ключей keystore, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Keystore Type

Тип хранилища ключей keystore, которое используется при подключении к LDAP с помощью LDAPS или START_TLS (например, JKS или PKCS12)

 — 

TLS - Truststore

Путь к хранилищу truststore, которое используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Truststore Password

Пароль для truststore, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Truststore Type

Тип хранилища truststore, который используется при подключении к LDAP с помощью LDAPS или START_TLS (например, JKS или PKCS12)

 — 

TLS - Client Auth

Политика аутентификации клиента при подключении к LDAP с помощью LDAPS или START_TLS. Возможные значения: REQUIRED, WANT, NONE

NONE

TLS - Protocol

Протокол для использования при подключении к LDAP с помощью LDAPS или START_TLS (например, TLS, TLSv1.1, TLSv1.2 и т. д.)

 — 

TLS - Shutdown Gracefully

Указывает, должен ли TLS корректно завершать работу перед закрытием целевого контекста

False

Referral Strategy

Стратегия работы с referrals

FOLLOW

Connect Timeout

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

10 sec

Read Timeout

Продолжительность тайм-аута чтения

10 sec

LDAP URL

Разделенный пробелами список URL-адресов серверов LDAP (например, ldap://<hostname>:<port>)

 — 

User Search Base

Базовое DN для поиска пользователей (например, ou=users,o=nifi). Требуется для поиска пользователей

 — 

User Search Filter

Фильтр для поиска пользователей по базе поиска (например, sAMAccountName={0}). Указанное пользователем имя вставляется в {0}

 — 

Identity Strategy

Стратегия идентификации пользователей. Возможные значения: USE_DN и USE_USERNAME

USE_DN

Authentication Expiration

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

12 hours

LDAP UserGroupProvider

 

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

Authentication Strategy

Как аутентифицируется подключение к серверу LDAP

ANONYMOUS

Manager DN

DN пользователя, имеющего запись в каталоге Active Directory, обладающий правами поиска пользователей и групп. Будет использован для привязки к серверу LDAP для поиска пользователей

 — 

Manager Password

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

 — 

TLS - Keystore

Путь к хранилищу ключей, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Keystore Password

Пароль для хранилища ключей keystore, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Keystore Type

Тип хранилища ключей keystore, которое используется при подключении к LDAP с помощью LDAPS или START_TLS (например, JKS или PKCS12)

 — 

TLS - Truststore

Путь к хранилищу truststore, которое используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Truststore Password

Пароль для truststore, который используется при подключении к LDAP с помощью LDAPS или START_TLS

 — 

TLS - Truststore Type

Тип хранилища truststore, который используется при подключении к LDAP с помощью LDAPS или START_TLS (например, JKS или PKCS12)

 — 

TLS - Client Auth

Политика аутентификации клиента при подключении к LDAP с помощью LDAPS или START_TLS. Возможные значения: REQUIRED, WANT, NONE

NONE

TLS - Protocol

Протокол для использования при подключении к LDAP с помощью LDAPS или START_TLS (например, TLS, TLSv1.1, TLSv1.2 и т. д.)

 — 

TLS - Shutdown Gracefully

Указывает, должен ли TLS корректно завершать работу перед закрытием целевого контекста

 — 

Referral Strategy

Стратегия работы с referrals

FOLLOW

Connect Timeout

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

10 sec

Read Timeout

Продолжительность тайм-аута чтения

10 sec

LDAP URL

Разделенный пробелами список URL-адресов серверов LDAP (например, ldap://<hostname>:<port>)

 — 

Page Size

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

 — 

Sync Interval

Продолжительность времени между синхронизацией пользователей и групп. Минимально допустимое значение – 10 sec

30 mins

User Search Base

Базовое DN для поиска пользователей (например, ou=users,o=nifi). Требуется для поиска пользователей

 — 

User Object Class

Класс объекта для идентификации пользователей (например, person). Требуется при поиске пользователей

 — 

User Search Scope

Область для поиска пользователей

ONE_LEVEL

User Search Filter

Фильтр для поиска пользователей по базе поиска (например, (memberof=cn=team1,ou=groups,o=nifi))

 — 

User Identity Attribute

Атрибут для извлечения идентификатора пользователя (например, cn). Опционально. Если не установлено, используется все DN

 — 

User Group Name Attribute

Атрибут, используемый для определения членства в группе (например, memberof). Опционально. Если не задано, членство в группе не будет рассчитываться через пользователей

 — 

User Group Name Attribute - Referenced Group Attribute

Если параметр не установлен, значение атрибута в User Group Name Attribute будет полным dn группы. Если параметр установлен, значение атрибута в User Group Name Attribute будет определять атрибут записи групповой записи ldap пользователя, являясь ссылкой (например, name)

 — 

Group Search Base

Базовое DN для поиска групп (например, ou=groups,o=nifi). Требуется для поиска групп

 — 

Group Object Class

Класс объекта для идентификации групп (например, groupOfNames). Требуется при поиске групп

 — 

Group Search Scope

Область для поиска группы пользователей

ONE_LEVEL

Group Search Filter

Фильтр для поиска групп по базе поиска. Опционально

 — 

Group Name Attribute

Атрибут для извлечения имени группы (например, cn). Опционально. Если не установлено, используется все DN

 — 

Group Member Attribute

Атрибут, используемый для определения членства в группе (например, member). Опционально

 — 

Group Member Attribute - Referenced User Attribute

Если параметр установлен, значение атрибута в Group Member Attribute будет полным dn пользователя. Если параметр не установлен, значение атрибута в Group Member Attribute будет определять атрибут записи ldap пользователя, являясь ссылкой (например, uid)

 — 

nifi.security.group.mapping.value.anygroup

Значение замены для сопоставления DN имен групп пользователей NiFi Server шаблону

$1

nifi.security.group.mapping.pattern.anygroup

Шаблон для сопоставления DN имен групп пользователей NiFi Server

(?i)cn=([,]+),.*

nifi.security.group.mapping.transform.anygroup

Преобразование, применяемое для DN имен групп пользователей NiFi Server

LOWER

nifi.registry.security.group.mapping.value.anygroup

Значение замены для сопоставления DN имен групп пользователей NiFi Registry шаблону

$1

nifi.registry.security.group.mapping.pattern.anygroup

Шаблон для сопоставления DN имен групп пользователей NiFi Registry

(?i)cn=([,]+),.*

nifi.registry.security.group.mapping.transform.anygroup

Преобразование, применяемое для DN имен групп пользователей NiFi Registry

LOWER

Analytics Framework

 

Конфигурации платформы аналитики

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

nifi.analytics.predict.interval

Интервал времени, в который должны быть сделаны аналитические прогнозы (например, насыщение очереди)

3 min

nifi.analytics.query.interval

Интервал времени для запроса прошлых наблюдений (например, последние 3 минуты снапшотов). Значение должно быть как минимум в 3 раза больше, чем заданный nifi.components.status.snapshot.frequency

5 min

nifi.analytics.connection.model.implementation

Класс реализации для модели анализа состояния, используемой для прогнозирований соединения

Ordinary Least Squares

nifi.analytics.connection.model.score.name

Имя типа скоринга, которое следует использовать для оценки модели

rSquared

nifi.analytics.connection.model.score.threshold

Порог для значения скоринга (модель score должна быть выше заданного порога)

.90

nifi-env.sh

 
Параметры, определяющие место для установки сервиса NiFi

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

NIFI_HOME

Каталог для установки NiFi

/usr/lib/nifi-server

NIFI_PID_DIR

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

/var/run/nifi

NIFI_LOG_DIR

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

/var/log/nifi

NIFI_ALLOW_EXPLICIT_KEYTAB

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

true

NiFi bootstrap.conf

 
Позволяет пользователям устанавливать параметры запуска NiFi в файле bootstrap.conf при помощи поля Add key, value.

nifi.properties

 

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

nifi.flow.configuration.file

Расположение файла конфигурации потока (содержащего то, что в текущий момент отображается на графике NiFi)

/etc/nifi/conf/flow.xml.gz

nifi.flow.configuration.json.file

Директория хранения файла flow.json.gz, содержащего весь поток для данного экземпляра NiFi. Используется для восстановления или миграции потока

/etc/nifi/conf/flow.json.gz

nifi.flow.configuration.archive.enabled

Включает автоматическое создание NiFi резервной копии потока при обновлении потока

true

nifi.cluster.node.connection.timeout

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

5 sec

nifi.cluster.node.read.timeout

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

5 sec

nifi.zookeeper.connect.timeout

Время ожидания при подключении к ZooKeeper для принятия решения о неудачном подключении

3 secs

nifi.zookeeper.session.timeout

Время ожидания после потери соединения с ZooKeeper до истечения сессии

3 secs

nifi.variable.registry.properties

Путь расположения файлов для одного или нескольких файлов индивидуальных свойств. Для нескольких файлов пути разделяются запятыми

/etc/nifi/conf/extra-args.properties

nifi.remote.input.http.enabled

Указывает, следует ли включить HTTP Site-to-Site на этом узле

true

nifi.remote.input.http.transaction.ttl

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

30 sec

nifi.remote.contents.cache.expiration

Указывает, как долго NiFi должен кешировать информацию об удаленном экземпляре NiFi при обмене данными через Site-to-Site

30 secs

nifi.flow.configuration.archive.max.time

Срок жизни заархивированных файлов flow.xml

30 days

nifi.flow.configuration.archive.max.storage

Общий размер данных, допустимый для заархивированных файлов flow.xml

500 MB

nifi.flow.configuration.archive.max.count

Разрешенное количество архивных файлов

 — 

nifi.flowcontroller.autoResumeState

Указывает, должны ли после перезапуска компоненты на графике NiFi возвращаться в свое последнее состояние

true

nifi.flowcontroller.graceful.shutdown.period

Указывает период отключения

10 sec

nifi.flowservice.writedelay.interval

Если в файл flow.xml внесено много изменений, свойство указывает время ожидания перед записью изменений, чтобы объединить изменения в одну запись

500 ms

nifi.administrative.yield.duration

Если компонент допускает появление неожиданного исключения, это считается ошибкой. В результате фреймворк произведет остановку (или уступит права) для компонента на это время

30 sec

nifi.bored.yield.duration

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

10 millis

nifi.ui.banner.text

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

 — 

nifi.ui.autorefresh.interval

Интервал автоматического обновления пользовательского интерфейса

30 sec

nifi.state.management.provider.local

Идентификатор локального поставщика состояний для использования

local-provider

nifi.state.management.provider.cluster

Идентификатор используемого поставщика состояния кластера

zk-provider

nifi.state.management.embedded.zookeeper.start

Указывает, должен ли этот экземпляр NiFi запускать встроенный сервер ZooKeeper

false

nifi.h2.url.append

Свойство указывает дополнительные аргументы для добавления в строку подключения к базе данных H2

;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE

nifi.flowfile.repository.implementation

Реализация репозитория FlowFile. Чтобы хранить потоковые файлы в памяти, а не на диске (с учетом потери данных в случае сбоя питания/машины или перезапуска NiFi), установите для этого свойства значение org.apache.nifi.controller.repository.VolatileFlowFileRepository

org.apache.nifi.controller.repository.WriteAheadFlowFileRepository

nifi.flowfile.repository.wal.implementation

Если реализация репозитория настроена на использование WriteAheadFlowFileRepository, свойство можно использовать, чтобы указать, какую реализацию Write-Ahead Log следует использовать

org.apache.nifi.wali.SequentialAccessWriteAheadLog

nifi.flowfile.repository.partitions

Количество партиций

256

nifi.flowfile.repository.checkpoint.interval

Интервал контрольной точки репозитория FlowFile

2 mins

nifi.flowfile.repository.always.sync

Если установлено значение true, любое изменение в репозитории будет синхронизировано с диском, а это означает, что NiFi попросит операционную систему не кешировать информацию. Это очень дорого и может значительно снизить производительность NiFi. Однако, если установлено значение false, может возникнуть вероятность потери данных

false

nifi.swap.manager.implementation

Реализация Swap Manager

org.apache.nifi.controller.FileSystemSwapManager

nifi.queue.swap.threshold

Порог очереди, при котором NiFi начинает swap информации FlowFile на диск

20000

nifi.swap.in.period

Swap in период

5 sec

nifi.swap.in.threads

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

1

nifi.swap.out.period

Swap out период

5 sec

nifi.swap.out.threads

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

4

nifi.content.repository.implementation

Реализация Content Repository. Значение по умолчанию следует изменять с осторожностью. Чтобы содержимое потокового файла сохранялось в памяти, а не на диске (с риском потери данных в случае сбоя питания/машины), установите для этого свойства значение org.apache.nifi.controller.repository

org.apache.nifi.controller.repository.FileSystemRepository

nifi.content.claim.max.appendable.size

Максимальный размер батча данных для сохранения на диск (content claim)

1 MB

nifi.content.claim.max.flow.files

Максимальное количество FlowFiles для назначения одному батчу для сохранения на диск (content claim)

100

nifi.content.repository.archive.max.retention.period

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

12 hours

nifi.content.repository.archive.max.usage.percentage

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

50%

nifi.content.repository.archive.enabled

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

true

nifi.content.repository.always.sync

Если установлено значение true, любое изменение в репозитории будет синхронизировано с диском, а это означает, что NiFi попросит операционную систему не кешировать информацию. Это очень дорого и может значительно снизить производительность NiFi. Однако, если установлено значение false, может возникнуть вероятность потери данных в случае внезапного отключения питания или сбоя операционной системы

false

nifi.content.viewer.url

URL-адрес веб-программы просмотра контента, если она доступна

../nifi-content-viewer/

nifi.provenance.repository.implementation

Реализация Provenance Repository

org.apache.nifi.provenance.WriteAheadProvenanceRepository

nifi.provenance.repository.debug.frequency

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

1000000

nifi.provenance.repository.encryption.key.provider.implementation

Полное имя класса поставщика ключей (key provider)

 — 

nifi.provenance.repository.encryption.key.provider.location

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

 — 

nifi.provenance.repository.encryption.key.id

Идентификатор активного ключа для шифрования (например, Key1)

 — 

nifi.provenance.repository.encryption.key

Ключ для StaticKeyProvider

 — 

nifi.provenance.repository.max.storage.time

Максимальное время хранения информации о происхождении данных

24 hours

nifi.provenance.repository.max.storage.size

Максимальный объем информации о происхождении данных, который можно хранить одновременно

1 GB

nifi.provenance.repository.rollover.time

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

30 secs

nifi.provenance.repository.rollover.size

Количество информации, которое нужно просматривать за раз

100 MB

nifi.provenance.repository.query.threads

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

2

nifi.provenance.repository.index.threads

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

2

nifi.provenance.repository.compress.on.rollover

Указывает, следует ли сжимать данные provenance при переносе

true

nifi.provenance.repository.always.sync

Если установлено значение true, любое изменение в репозитории будет синхронизировано с диском, а это означает, что NiFi попросит операционную систему не кешировать информацию

false

nifi.provenance.repository.indexed.fields

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

EventType, FlowFileUUID, Filename, ProcessorID, Relationship

nifi.provenance.repository.indexed.attributes

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

 — 

nifi.provenance.repository.index.shard.size

Большие значения размера сегмента приведут к большему использованию java heap при поиске в репозитории Provenance, но должны обеспечить более высокую производительность

500 MB

nifi.provenance.repository.max.attribute.length

Указывает максимальную длину для атрибута FlowFile при извлечении Provenance Event из репозитория. Если длина любого атрибута превышает значение, оно будет усечено при извлечении события

65536

nifi.provenance.repository.concurrent.merge.threads

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

2

nifi.provenance.repository.buffer.size

Размер буфера репозитория Provenance

100000

nifi.components.status.repository.implementation

Реализация репозитория состояния компонентов (Component Status Repository)

org.apache.nifi.controller.status.history.VolatileComponentStatusRepository

nifi.components.status.repository.buffer.size

Указывает размер буфера для репозитория состояния компонентов (Component Status Repository)

1440

nifi.components.status.snapshot.frequency

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

1 min

nifi.web.war.directory

Расположение каталога web.war

./lib

nifi.web.jetty.working.directory

Расположение рабочего каталога Jetty

./work/jetty

nifi.web.jetty.threads

Количество потоков Jetty

200

nifi.web.max.header.size

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

16 KB

nifi.web.proxy.context.path

Список разделенных запятыми допустимых значений заголовка HTTP X-ProxyContextPath или X-Forwarded-Context. По умолчанию значение пусто, что означает, что все запросы, содержащие путь контекста прокси, отклоняются

 — 

nifi.web.proxy.host

Список разделенных запятыми разрешенных значений заголовка HTTP-хоста, которые следует учитывать, когда NiFi работает безопасно и будет получать запросы на другой хост [: порт], к которому он привязан. Например, при работе в контейнере Docker или за прокси-сервером (например, localhost:18443, proxyhost:443). По умолчанию значение пустое, что означает, что NiFi должен разрешать только запросы, отправляемые на хост [: порт], к которому привязан NiFi

 — 

nifi.sensitive.props.key

Пароль (исходная строка), из которого извлекается ключ шифрования для алгоритма, указанного в параметре nifi.sensitive.props.algorithm

mysensetivekey

nifi.sensitive.props.key.protected

Защищенный пароль (исходная строка), используемая для получения ключа шифрованиядля алгоритма, указанного в параметре nifi.sensitive.props.algorithm

 — 

nifi.sensitive.props.algorithm

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

PBEWITHMD5AND256BITAES-CBC-OPENSSL

nifi.sensitive.props.provider

Поставщик конфиденциальной свойств

BC

nifi.sensitive.props.additional.keys

Список свойств, разделенных запятыми, для шифрования в дополнение к конфиденциальным свойствам по умолчанию

 — 

nifi.security.user.authorizer

Указывает, какой из настроенных авторизаторов в файле authorizers.xml следует использовать. По умолчанию установлен файловый провайдер

managed-authorizer

nifi.security.ocsp.responder.url

URL responder Online Certificate Status Protocol (OCSP), если он используется

 — 

nifi.security.ocsp.responder.certificate

Расположение responder certificate OCSP, если он используется

 — 

nifi.security.user.oidc.discovery.url

URL-адрес обнаружения для нужного провайдера OpenId Connect

 — 

nifi.security.user.oidc.connect.timeout

Время ожидания подключения при обмене данными с провайдером OpenId Connect

5 secs

nifi.security.user.oidc.read.timeout

Тайм-аут чтения при обмене данными с провайдером OpenId Connect

5 secs

nifi.security.user.oidc.client.id

Идентификатор клиента для NiFi после регистрации в провайдере OpenId Connect

 — 

nifi.security.user.oidc.client.secret

Секрет клиента для NiFi после регистрации в провайдере OpenId Connect

 — 

nifi.security.user.oidc.preferred.jwsалгоритм

Предпочитаемый алгоритм проверки токенов идентификации. Если значение пустое, по умолчанию используется RS256, который должен поддерживаться провайдером OpenId Connect в соответствии со спецификацией. Если Значение равно HS256, HS384 или HS512, NiFi попытается проверить токены, защищенные HMAC, используя указанный секрет клиента. Если Значение равно нулю, NiFi попытается проверить незащищенные/обычные токены. Другие значения для этого алгоритма будут пытаться проанализировать как алгоритм RSA или EC для использования в сочетании с веб-ключом JSON (JWK), предоставленным через jwks_uri в метаданных, найденных по URL-адресу обнаружения

 — 

nifi.security.user.knox.url

URL-адрес страницы входа в Apache Knox

 — 

nifi.security.user.knox.publicKey

Путь к открытому ключу Apache Knox, который будет использоваться для проверки подписей маркеров аутентификации в файле cookie HTTP

 — 

nifi.security.user.knox.cookieName

Имя файла cookie HTTP, который Apache Knox сгенерирует после успешного входа в систему

hadoop-jwt

nifi.security.user.knox.audiences

Необязательно. Через запятую перечислены разрешенные audiences. Если установлено, audiences в токене должна присутствовать в этом списке. Audiences, указанная в токене, может быть настроена в Knox

 — 

nifi.cluster.protocol.heartbeat.interval

Интервал, с которым узлы должны посылать heartbeats координатору кластера

5 sec

nifi.cluster.node.protocol.port

Порт протокола узла

11433

nifi.cluster.node.protocol.threads

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

10

nifi.cluster.node.protocol.max.threads

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

50

nifi.cluster.node.event.history.size

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

25

nifi.cluster.node.max.concurrent.requests

Максимальное количество необработанных веб-запросов, которые можно реплицировать на узлы в кластере. Если это количество запросов превышено, встроенный сервер Jetty вернет ответ "409: Conflict"

100

nifi.cluster.firewall.file

Расположение файла брандмауэра узла. Это файл, который можно использовать для перечисления всех узлов, которым разрешено подключаться к кластеру. Он обеспечивает дополнительный уровень безопасности. По умолчанию значение пусто, что означает, что файл брандмауэра не используется

 — 

nifi.cluster.flow.election.max.wait.time

Указывает время ожидания перед выбором Flow в качестве "правильного" потока. Если количество проголосовавших узлов равно количеству, указанному в свойстве nifi.cluster.flow.election.max.candidates, кластер не будет ждать так долго

5 mins

nifi.cluster.load.balance.host

Указывает имя хоста для прослушивания входящих подключений для данных балансировки нагрузки в кластере. Если не указано, по умолчанию будет использоваться значение, указанное в свойстве nifi.cluster.node.address

 — 

nifi.cluster.load.balance.port

Указывает порт для прослушивания входящих подключений для данных балансировки нагрузки в кластере

6342

nifi.cluster.load.balance.connections.per.node

Максимальное количество соединений, которые можно создать между этим узлом и каждым другим узлом в кластере. Например, если в кластере 5 узлов и для этого значения установлено значение 4, для балансировки нагрузки будет установлено до 20 соединений сокетов (5 x 4 = 20)

4

nifi.cluster.load.balance.max.thread.count

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

8

nifi.cluster.load.balance.comms.timeout

При обмене данными с другим узлом, если в течение этого времени не происходит никакого прогресса при чтении или записи в сокет, будет выдано исключение TimeoutException. Это приведет к повторной попытке передачи данных или их отправке на другой узел в кластере, в зависимости от настроенной стратегии балансировки нагрузки

30 sec

nifi.remote.input.socket.port

Порт удаленного входного сокета для связи Site-to-Site

10443

nifi.remote.input.secure

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

false

nifi.security.keystore

Полный путь и имя хранилища keystore

 — 

nifi.security.keystoreType

Тип хранилища keystore

 — 

nifi.security.keystoreПароль

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

 — 

nifi.security.keyPasswd

Ключевой пароль

 — 

nifi.security.truststore

Полный путь и имя хранилища truststore

 — 

nifi.security.truststoreType

Тип хранилища truststore

 — 

nifi.security.truststorePasswd

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

 — 

Add key, value

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

 — 

extra-args.properties

 
Файл для указания дополнительных аргументов (extra-args) при помощи поля Add property.

Nifi Server logback.xml

 
Настройка уровней логирования и log rotate для NiFi-Server

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

app_file_max_history

Максимальное количество файлов для приложений

10

user_file_max_history

Максимальное количество файлов пользователя

10

boot_file_max_history

Максимальное количество файлов для Boot

5

root_level

Уровень события

INFO

Настройка структуры файла конфигурации логирования для NiFi-Server

Журнал (логгер) Имена пакетов по умолчанию Уровень события по умолчанию

app_loggers

org.apache.nifi

INFO

org.apache.nifi.processors

WARN

org.apache.nifi.processors.standard.LogAttribute

INFO

org.apache.nifi.processors.standard.LogMessage

INFO

org.apache.nifi.controller.repository.StandardProcessSession

WARN

org.wali

WARN

org.apache.nifi.cluster

INFO

org.apache.nifi.server.JettyServer

INFO

org.eclipse.jetty

INFO

user_events_loggers

org.apache.nifi.web.security

INFO

org.apache.nifi.web.api.config

INFO

org.apache.nifi.authorization

INFO

org.apache.nifi.cluster.authorization

INFO

org.apache.nifi.web.filter.RequestLogger

INFO

bootstrap_loggers

org.apache.nifi.bootstrap

INFO

org.apache.nifi.bootstrap.Command

INFO

org.apache.nifi.StdOut

INFO

org.apache.nifi.StdErr

INFO

custom_logger

 — 

 — 

NiFi logback.xml

 

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

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

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Maintained by ADCM
-->
{% set logback = services.nifi.config['nifi_logback_content'] %}

<configuration scan="true" scanPeriod="30 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <appender name="APP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'app_%d.log'.
              For hourly rollover, use 'app_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app_%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <!-- keep 30 log files worth of history -->
            <maxHistory>{{ logback.app_file_max_history }}</maxHistory>
        </rollingPolicy>
        <immediateFlush>true</immediateFlush>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="USER_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-user.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'user_%d.log'.
              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-user_%d.log</fileNamePattern>
            <!-- keep 30 log files worth of history -->
            <maxHistory>{{ logback.user_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'user_%d.log'.
              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap_%d.log</fileNamePattern>
            <!-- keep 5 log files worth of history -->
            <maxHistory>{{ logback.boot_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <!-- valid logging levels: TRACE, DEBUG, INFO, WARN, ERROR -->

    {% for key, value in logback.app_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}"/>
    {% endfor -%}

    <logger name="org.apache.zookeeper.ClientCnxn" level="ERROR" />
    <logger name="org.apache.zookeeper.server.NIOServerCnxn" level="ERROR" />
    <logger name="org.apache.zookeeper.server.NIOServerCnxnFactory" level="ERROR" />
    <logger name="org.apache.zookeeper.server.quorum" level="ERROR" />
    <logger name="org.apache.zookeeper.ZooKeeper" level="ERROR" />
    <logger name="org.apache.zookeeper.server.PrepRequestProcessor" level="ERROR" />

    <logger name="org.apache.calcite.runtime.CalciteException" level="OFF" />

    <logger name="org.apache.curator.framework.recipes.leader.LeaderSelector" level="OFF" />
    <logger name="org.apache.curator.ConnectionState" level="OFF" />

    <!-- Suppress non-error messages due to excessive logging by class or library -->
    <logger name="com.sun.jersey.spi.container.servlet.WebComponent" level="ERROR"/>
    <logger name="com.sun.jersey.spi.spring" level="ERROR"/>
    <logger name="org.springframework" level="ERROR"/>

    <!-- Suppress non-error messages due to known warning about redundant path annotation (NIFI-574) -->
    <logger name="com.sun.jersey.spi.inject.Errors" level="ERROR"/>
    <logger name="org.glassfish.jersey.internal.Errors" level="ERROR"/>

    <!-- Suppress non-error messages due to Jetty AnnotationParser emitting a large amount of WARNS. Issue described in NIFI-5479. -->
    <logger name="org.eclipse.jetty.annotations.AnnotationParser" level="ERROR"/>

    <!--
        Logger for capturing user events. We do not want to propagate these
        log events to the root logger. These messages are only sent to the
        user-log appender.
    -->

    {% for key, value in logback.user_events_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="USER_FILE"/>
    </logger>
    {% endfor -%}

    <!--
        Logger for capturing Bootstrap logs and NiFi's standard error and standard out.
    -->

    {% for key, value in logback.bootstrap_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="BOOTSTRAP_FILE"/>
    {% if key == "org.apache.nifi.bootstrap.Command" %}
        <appender-ref ref="CONSOLE" />
    {% endif -%}
    </logger>
    {% endfor -%}

    <!--
        Custom Logger
    -->

    {% if logback.custom_logger is not none -%}
    {% if logback.custom_logger | length > 0 -%}
    {% for key, value in logback.custom_logger | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}"/>
    {% endfor -%}
    {% endif -%}
    {% endif -%}

    <root level="{{ logback.root_level }}">
        <appender-ref ref="APP_FILE"/>
    </root>

</configuration>
NiFi state-management.xml

 

    Шаблон для пользовательской настройки файла NiFi state-management.xml.

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  Maintained by ADCM
-->
{%- if cluster.config.cluster_znode is defined and cluster.config.cluster_znode is not none %}
{% set zookeeper_connect = cluster.config.cluster_znode.split('/')[0] %}
{%- endif -%}

<stateManagement>
    <!--
        State Provider that stores state locally in a configurable directory. This Provider requires the following properties:

        Directory - the directory to store components' state in. If the directory being used is a sub-directory of the NiFi installation, it
                    is important that the directory be copied over to the new version when upgrading NiFi.
        Always Sync - If set to true, any change to the repository will be synchronized to the disk, meaning that NiFi will ask the operating system not to cache the information. This is very
                expensive and can significantly reduce NiFi performance. However, if it is false, there could be the potential for data loss if either there is a sudden power loss or the
                operating system crashes. The default value is false.
        Partitions - The number of partitions.
        Checkpoint Interval - The amount of time between checkpoints.
     -->
    <local-provider>
        <id>local-provider</id>
        <class>org.apache.nifi.controller.state.providers.local.WriteAheadLocalStateProvider</class>
        <property name="Directory">{{ nifi_home }}/conf/state/local</property>
        <property name="Always Sync">false</property>
        <property name="Partitions">16</property>
        <property name="Checkpoint Interval">2 mins</property>
    </local-provider>

    <!--
        State Provider that is used to store state in ZooKeeper. This Provider requires the following properties:

        Root Node - the root node in ZooKeeper where state should be stored. The default is '/nifi', but it is advisable to change this to a different value if not using
                   the embedded ZooKeeper server and if multiple NiFi instances may all be using the same ZooKeeper Server.

        Connect String - A comma-separated list of host:port pairs to connect to ZooKeeper. For example, myhost.mydomain:2181,host2.mydomain:5555,host3:6666

        Session Timeout - Specifies how long this instance of NiFi is allowed to be disconnected from ZooKeeper before creating a new ZooKeeper Session. Default value is "30 seconds"

        Access Control - Specifies which Access Controls will be applied to the ZooKeeper ZNodes that are created by this State Provider. This value must be set to one of:
                            - Open  : ZNodes will be open to any ZooKeeper client.
                            - CreatorOnly  : ZNodes will be accessible only by the creator. The creator will have full access to create children, read, write, delete, and administer the ZNodes.
                                             This option is available only if access to ZooKeeper is secured via Kerberos or if a Username and Password are set.
    -->
    <cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <property name="Connect String">{{ zookeeper_connect | default('') }}</property>
        <property name="Root Node">/arenadata/cluster/{{ cluster.id }}/nifi</property>
        <property name="Session Timeout">10 seconds</property>
        <property name="Access Control">Open</property>
    </cluster-provider>

    <!--
        Cluster State Provider that stores state in Redis. This can be used as an alternative to the ZooKeeper State Provider.

        This provider requires the following properties:

            Redis Mode - The type of Redis instance:
                            - Standalone
                            - Sentinel
                            - Cluster (currently not supported for state-management due to use of WATCH command which Redis does not support in clustered mode)

            Connection String - The connection string for Redis.
                        - In a standalone instance this value will be of the form hostname:port.
                        - In a sentinel instance this value will be the comma-separated list of sentinels, such as host1:port1,host2:port2,host3:port3.
                        - In a clustered instance this value will be the comma-separated list of cluster masters, such as host1:port,host2:port,host3:port.

        This provider has the following optional properties:

            Key Prefix - The prefix for each key stored by this state provider. When sharing a single Redis across multiple NiFi instances, setting a unique
                        value for the Key Prefix will make it easier to identify which instances the keys came from (default nifi/components/).

            Database Index - The database index to be used by connections created from this connection pool.
                        See the databases property in redis.conf, by default databases 0-15 will be available.

            Communication Timeout - The timeout to use when attempting to communicate with Redis.

            Cluster Max Redirects - The maximum number of redirects that can be performed when clustered.

            Sentinel Master - The name of the sentinel master, require when Mode is set to Sentinel.

            Password - The password used to authenticate to the Redis server. See the requirepass property in redis.conf.

            Pool - Max Total - The maximum number of connections that can be allocated by the pool (checked out to clients, or idle awaiting checkout).
                        A negative value indicates that there is no limit.

            Pool - Max Idle - The maximum number of idle connections that can be held in the pool, or a negative value if there is no limit.

            Pool - Min Idle - The target for the minimum number of idle connections to maintain in the pool. If the configured value of Min Idle is
                    greater than the configured value for Max Idle, then the value of Max Idle will be used instead.

            Pool - Block When Exhausted - Whether or not clients should block and wait when trying to obtain a connection from the pool when the pool
                    has no available connections. Setting this to false means an error will occur immediately when a client requests a connection and
                    none are available.

            Pool - Max Wait Time - The amount of time to wait for an available connection when Block When Exhausted is set to true.

            Pool - Min Evictable Idle Time - The minimum amount of time an object may sit idle in the pool before it is eligible for eviction.

            Pool - Time Between Eviction Runs - The amount of time between attempting to evict idle connections from the pool.

            Pool - Num Tests Per Eviction Run - The number of connections to tests per eviction attempt. A negative value indicates to test all connections.

            Pool - Test On Create - Whether or not connections should be tested upon creation (default false).

            Pool - Test On Borrow - Whether or not connections should be tested upon borrowing from the pool (default false).

            Pool - Test On Return - Whether or not connections should be tested upon returning to the pool (default false).

            Pool - Test While Idle - Whether or not connections should be tested while idle (default true).

        <cluster-provider>
            <id>redis-provider</id>
            <class>org.apache.nifi.redis.state.RedisStateProvider</class>
            <property name="Redis Mode">Standalone</property>
            <property name="Connection String">localhost:6379</property>
        </cluster-provider>
    -->

</stateManagement>
NiFi bootstrap-notification-services.xml

 

    Шаблон для пользовательской настройки файла NiFi bootstrap-notification-services.xml.

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

<?xml version="1.0"?>
<!--
  Maintained by ADCM
-->
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (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.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<services>
    <!-- This file is used to define how interested parties are notified when events in NiFi's lifecycle occur. -->
    <!-- The format of this file is:
        <services>
            <service>
                <id>service-identifier</id>
                <class>org.apache.nifi.notifications.DesiredNotificationService</class>
                <property name="property name">property value</property>
                <property name="another property">another property value</property>
            </service>
        </services>

        This file can contain 0 to many different service definitions.
        The id can then be referenced from the bootstrap.conf file in order to configure the notification service
        to be used when particular lifecycle events occur.
    -->

<!--
     <service>
        <id>email-notification</id>
        <class>org.apache.nifi.bootstrap.notification.email.EmailNotificationService</class>
        <property name="SMTP Hostname"></property>
        <property name="SMTP Port"></property>
        <property name="SMTP Username"></property>
        <property name="SMTP Password"></property>
        <property name="SMTP TLS"></property>
        <property name="From"></property>
        <property name="To"></property>
     </service>
-->
<!--
     <service>
        <id>http-notification</id>
        <class>org.apache.nifi.bootstrap.notification.http.HttpNotificationService</class>
        <property name="URL"></property>
     </service>
-->
</services>
NiFi Registry bootstrap.conf

 
Позволяет пользователям устанавливать параметры запуска NiFi Registry в файле bootstrap.conf при помощи поля Add key, value.

nifi-registry.properties

 

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

nifi.registry.web.war.directory

Место хранения каталога web.war

./lib

nifi.registry.web.jetty.working.directory

Место хранения каталога Jetty working

./work/jetty

nifi.registry.web.jetty.threads

Количество потоков Jetty

200

nifi.registry.security.needClientAuth

Это указывает, что подключающиеся клиенты должны проходить аутентификацию с помощью клиентского сертификата

false

nifi.registry.db.directory

Расположение каталога базы данных реестра

 — 

nifi.registry.db.url.append

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

 — 

nifi.registry.db.url

Полная строка подключения JBDC

jdbc:h2:/usr/lib/nifi-registry/database/nifi-registry-primary;AUTOCOMMIT=OFF;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=3;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE

nifi.registry.db.driver.class

Имя класса драйвера JBDC

org.h2.Driver

nifi.registry.db.driver.directory

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

 — 

nifi.registry.db.username

Имя пользователя для базы данных

nifireg

nifi.registry.db.password

Пароль для базы данных

 — 

nifi.registry.db.maxConnections

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

5

nifi.registry.db.sql.debug

Включить или нет ведение журнала отладки для операторов SQL

false

nifi.registry.sensitive.props.additional.keys

Разделенный запятыми список свойств для шифрования в дополнение к конфиденциальным свойствам по умолчанию

nifi.registry.db.password

nifi.registry.security.keystore

Полный путь и имя keystore

 — 

nifi.registry.security.keystoreType

Тип хранилища keystore

 — 

nifi.registry.security.keystorePasswd

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

 — 

nifi.registry.security.keyPasswd

Ключевой пароль

 — 

nifi.registry.security.truststore

Полный путь и имя хранилища truststore

 — 

nifi.registry.security.truststoreType

Тип хранилища truststore

 — 

nifi.registry.security.truststorePasswd

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

 — 

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

jmx_port

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

9995

JMX Exporter Port

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

11206

JMX Authentication

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

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

Username

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

monitoring

Password

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

 — 

FileSystem Flow Provider Configuration

 

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

Filesystem Flow Storage Directory

Каталог хранения файлов Flow

/usr/lib/nifi-registry/flow_storage

Git Flow Provider Configuration

 

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

Git Flow Storage Directory

Путь файловой системы для каталога, в котором сохраняются файлы содержимого потока. Каталог должен существовать при запуске NiFi Registry. Также необходимо инициализировать как каталог Git

/usr/lib/nifi-registry/git_flow_storage

Remote To Push

При создании нового моментального снимка потока этот провайдер обновляет файлы в указанном каталоге Git, а затем создает фиксацию в локальном репозитории. Если определен Remote To Push, данные также отправляются в указанный удаленный репозиторий (например, источник). Чтобы определить более подробную удаленную спецификацию, например имена ветвей, используйте Refspec

 — 

Remote Access User

Имя пользователя используется для отправки push-запросов в удаленный репозиторий, когда включена функция Remote To Push, а доступ к удаленному репозиторию осуществляется по протоколу HTTP. Если используется SSH, аутентификация пользователя осуществляется с помощью ключей SSH

 — 

Remote Access Password

Пароль для пользователя удаленного доступа

 — 

Remote Clone Repository

URI удаленного репозитория, который будет использоваться для клонирования в каталог Flow Storage, если локальный репозиторий отсутствует в каталоге Flow Storage. Если оставить пустым, каталог Git необходимо настроить в соответствии с каталогом инициализации Git. Если указан URI, то также должны присутствовать Remote Access User и Remote Access Password. В настоящее время ветка удаленного управления по умолчанию будет клонирована

 — 

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

Extension Bundle Storage Directory

Каталог хранения пакетов расширений

/usr/lib/nifi-registry/extension_bundles

nifi-registry-env.sh

 
Параметры, определяющие место для установки сервиса NiFi-Registry

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

NIFI_REGISTRY_HOME

/usr/lib/nifi-registry

NIFI_REGISTRY_PID_DIR

/var/run/nifi-registry

NIFI_REGISTRY_LOG_DIR

/var/log/nifi-registry

Nifi-Registry logback.xml

 
Настройка уровней логирования и log rotate для NiFi-Registry

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

app_file_max_history

Максимальное количество файлов для приложений

10

events_file_max_history

Максимальное количество файлов для событий

5

boot_file_max_history

Максимальное количество файлов для Boot

5

root_level

Уровень события

INFO

Настройка структуры файла конфигурации логирования для NiFi-Registry

Журнал (логгер) Имена пакетов по умолчанию Уровень события по умолчанию

app_loggers

org.apache.nifi.registry

INFO

org.hibernate.SQL

WARN

org.hibernate.type

INFO

events_loggers

org.apache.nifi.registry.provider.hook.LoggingEventHookProvider

INFO

bootstrap_loggers

org.apache.nifi.registry.bootstrap

INFO

org.apache.nifi.registry.bootstrap.Command

INFO

org.apache.nifi.registry.StdOut

INFO

org.apache.nifi.registry.StdErr

ERROR

NiFi Registry logback.xml

 

    Шаблон для пользовательской настройки файла NiFi Registry logback.xml.

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

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Maintained by ADCM
-->
{% set logback = services.nifi.config['nifi_registry_logback_content'] %}

<configuration scan="true" scanPeriod="30 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <appender name="APP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'app_%d.log'.
              For hourly rollover, use 'app_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-app_%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- keep 30 log files worth of history -->
            <maxHistory>{{ logback.app_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
            <immediateFlush>true</immediateFlush>
        </encoder>
    </appender>

    <appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-bootstrap.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'user_%d.log'.
              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-bootstrap_%d.log</fileNamePattern>
            <!-- keep 5 log files worth of history -->
            <maxHistory>{{ logback.boot_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="EVENTS_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-event.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
              For daily rollover, use 'user_%d.log'.
              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
              To GZIP rolled files, replace '.log' with '.log.gz'.
              To ZIP rolled files, replace '.log' with '.log.zip'.
            -->
            <fileNamePattern>${org.apache.nifi.registry.bootstrap.config.log.dir}/nifi-registry-event_%d.log</fileNamePattern>
            <!-- keep 5 log files worth of history -->
            <maxHistory>{{ logback.events_file_max_history }}</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date ## %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
    </appender>

    <!-- valid logging levels: TRACE, DEBUG, INFO, WARN, ERROR -->

    {% for key, value in logback.app_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}"/>
    {% endfor -%}

    <!--
        Logger for capturing Bootstrap logs and NiFi Registry's standard error and standard out.
    -->

    {% for key, value in logback.bootstrap_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="BOOTSTRAP_FILE"/>
    {% if key == "org.apache.nifi.registry.bootstrap.Command" %}
        <appender-ref ref="CONSOLE" />
    {% endif -%}
    </logger>
    {% endfor -%}

    <!-- This will log all events to a separate file when the LoggingEventHookProvider is enabled in providers.xml -->

    {% for key, value in logback.events_loggers | dictsort -%}
    <logger name="{{ key }}" level="{{ value }}" additivity="false">
        <appender-ref ref="EVENTS_FILE"/>
    </logger>
    {% endfor -%}

    <root level="{{ logback.root_level }}">
        <appender-ref ref="APP_FILE"/>
    </root>

</configuration>
NiFi Registry providers.xml

 

    Шаблон для пользовательской настройки файла NiFi Registry providers.xml.

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  Maintained by ADCM
-->
<providers>

{% if services.nifi.config['registry_flow_provider'] == 'FileSystemFlowPersistenceProvider' %}
{% set provider = services.nifi.config['registry_filesystem_flow_provider'] %}
    <flowPersistenceProvider>
        <class>org.apache.nifi.registry.provider.flow.FileSystemFlowPersistenceProvider</class>
        <property name="Flow Storage Directory">{{ provider.flow_persistence_directory }}</property>
    </flowPersistenceProvider>
{% elif services.nifi.config['registry_flow_provider'] == 'GitFlowPersistenceProvider' %}
{% set provider = services.nifi.config['registry_git_flow_provider'] %}
    <flowPersistenceProvider>
        <class>org.apache.nifi.registry.provider.flow.git.GitFlowPersistenceProvider</class>
        <property name="Flow Storage Directory">{{ provider.flow_persistence_directory }}</property>
        <property name="Remote To Push">{{ provider.remote_to_push }}</property>
        <property name="Remote Access User">{{ provider.remote_access_user }}</property>
        <property name="Remote Access Password">{{ provider.remote_access_password }}</property>
        <property name="Remote Clone Repository">{{ provider.remote_clone_repository }}</property>
    </flowPersistenceProvider>
{% endif %}

    <!--
    <eventHookProvider>
    	<class>org.apache.nifi.registry.provider.hook.ScriptEventHookProvider</class>
    	<property name="Script Path"></property>
    	<property name="Working Directory"></property>
    	-->
    	<!-- Optional Whitelist Event types
        <property name="Whitelisted Event Type 1">CREATE_FLOW</property>
        <property name="Whitelisted Event Type 2">DELETE_FLOW</property>
    	-->
    <!--
    </eventHookProvider>
    -->

    <!-- This will log all events to a separate file specified by the EVENT_APPENDER in logback.xml -->
    <!--
    <eventHookProvider>
        <class>org.apache.nifi.registry.provider.hook.LoggingEventHookProvider</class>
    </eventHookProvider>
    -->

{% if services.nifi.config['registry_bundle_provider'] == 'FileSystemBundlePersistenceProvider' %}
{% set provider = services.nifi.config['registry_filesystem_bundle_provider'] %}
    <extensionBundlePersistenceProvider>
        <class>org.apache.nifi.registry.provider.extension.FileSystemBundlePersistenceProvider</class>
        <property name="Extension Bundle Storage Directory">{{ provider.bundle_persistence_directory }}</property>
    </extensionBundlePersistenceProvider>
{% endif %}

</providers>
NiFi Registry registry-aliases.xml

 

    Шаблон для пользовательской настройки файла NiFi Registry registry-aliases.xml.

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
    Maintained by ADCM
-->
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (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.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<aliases>
    <!--
    <alias>
        <internal>LOCAL_NIFI_REGISTRY</internal>
        <external>http://registry.nifi.apache.org:18080</external>
    </alias>
    -->
</aliases>
JAAS template file

 

    Шаблон пользовательского файла 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
    principal="nifi/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}"
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/nifi.service.keytab";
};
{% endif %}

Schema-Registry

Main

 

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

listener port

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

8081

schema-registry-env.sh

 

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

LOG_DIR

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

/var/log/schema-registry

JMX_PORT

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

9997

SCHEMA_REGISTRY_HEAP_OPTS

Размер heap, выделенный Schema-Registry

-Xmx1024M

SCHEMA_REGISTRY_JVM_PERFORMANCE_OPTS

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

-server

-XX:+UseG1G

-XX:MaxGCPauseMillis=20

-XX:InitiatingHeapOccupancyPercent=35

-XX:+ExplicitGCInvokesConcurrent

-Djava.awt.headless=true

SCHEMA_REGISTRY_OPTS

Переменные среды JAVA для Schema-Registry

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

Basic Auth properties

 

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

authentication.method

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

BASIC

authentication.roles

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

admin

authentication.realm

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

SchemaRegistry-Props

ADSControl_user

Пользователь ADS Control для подключения к Schema-Registry

admin

schema-registry.properties

 

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

kafkastore.topic

Одиночная партиция топика, который является надежным логом для данных. Этот топик необходимо сжать, чтобы избежать потери данных из-за политики хранения

_schemas

debug

Логическое значение, указывающее генерировать ли дополнительную отладочную информацию при обработке ошибок

false

inter.instance.protocol

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

http

ssl.keystore.location

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

 — 

ssl.keystore.password

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

 — 

ssl.key.password

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

 — 

ssl.truststore.location

Используется для HTTPS. Расположение truststore. Требуется только для аутентификации HTTPS-клиентов

 — 

ssl.truststore.password

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

 — 

kafkastore.ssl.keystore.location

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

 — 

kafkastore.ssl.keystore.password

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

 — 

kafkastore.ssl.key.password

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

 — 

kafkastore.ssl.keystore.type

Формат файла хранилища ключей keystore

 — 

kafkastore.ssl.truststore.location

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

 — 

kafkastore.ssl.truststore.password

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

 — 

kafkastore.ssl.truststore.type

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

 — 

kafkastore.ssl.endpoint.identification.algorithm

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

 — 

Add key, value

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

 — 

JAAS template file

 

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

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

{% if cluster.config.basic_auth_default_config is not none %}
{{ services.schema_registry.config.basic_auth_properties_content['authentication.realm'] }} {
  org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
  file="{{ schema_registry_home_path }}/config/password.properties"
  debug="false";
};
{% endif %}
{% 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
    serviceName="kafka"
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/schema-registry.service.keytab"
    principal="schema-registry/{{ ansible_fqdn }}@{{ cluster.config.kerberos_client.realm }}";
};
KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    useTicketCache=false
    serviceName="kafka"
    keyTab="{{ cluster.config.kerberos_client.keytab_dir }}/schema-registry.service.keytab"
    principal="schema-registry/{{ 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="schema-registry"
  password="{{ credential['schema-registry'] }}";
};
{% endif %}

 
Конфигурационные параметры компонента Schema-Registry:

log4j properties configuration

 

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

log4j.rootLogger

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

INFO

log4j.logger.kafka

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

ERROR

log4j.logger.org.apache.zookeeper

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

ERROR

log4j.logger.org.apache.kafka

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

ERROR

log4j.logger.org.I0Itec.zkclient

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

ERROR

log4j_properties_template

 

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

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

{%- set schema_registry_server_log4j_properties_configuration = services.schema_registry.SERVER.config.log4j_properties_configuration %}

log4j.rootLogger={{ schema_registry_server_log4j_properties_configuration['log4j.rootLogger'] }}, stdout, file

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.logger.kafka={{ schema_registry_server_log4j_properties_configuration['log4j.logger.kafka'] }}, stdout
log4j.logger.org.apache.zookeeper={{ schema_registry_server_log4j_properties_configuration['log4j.logger.org.apache.zookeeper'] }}, stdout
log4j.logger.org.apache.kafka={{ schema_registry_server_log4j_properties_configuration['log4j.logger.org.apache.kafka'] }}, stdout
log4j.logger.org.I0Itec.zkclient={{ schema_registry_server_log4j_properties_configuration['log4j.logger.org.I0Itec.zkclient'] }}, stdout
log4j.additivity.kafka.server=false
log4j.additivity.kafka.consumer.ZookeeperConsumerConnector=false

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxBackupIndex=10
log4j.appender.file.maxFileSize=100MB
log4j.appender.file.File=${schema-registry.log.dir}/schema-registry.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d] %p %m (%c)%n

ZooKeeper

Main

 

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

connect

Строка подключения ZooKeeper, которая будет использоваться другими службами или кластерами, генерируется автоматически

 — 

dataDir

Место, где ZooKeeper будет хранить моментальные снимки базы данных в памяти и, если не указано иное, журнал транзакций обновлений базы данных

/var/lib/zookeeper

admin.serverPort

Порт, который прослушивает встроенный сервер Jetty. Сервер Jetty предоставляет HTTP-интерфейс для команд из четырехбуквенных слов

58080

zoo.cfg

 

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

clientPort

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

2181

metricsHttpPort

Порт для сбора метрик

7000

tickTime

Основная единица времени, используемая ZooKeeper (в мс). Минимальный тайм-аут сеанса будет в два раза больше, чем tickTime

2000

initLimit

Тайм-ауты, которые ZooKeeper использует для ограничения времени, в течение которого серверы ZooKeeper в Quorum должны подключаться к лидеру

5

syncLimit

Насколько каждый сервер может отставать от Лидера

2

maxClientCnxns

Это свойство ограничивает количество активных подключений с хоста, указанного по IP-адресу, к одному серверу ZooKeeper

0

autopurge.snapRetainCount

Когда функция автоматической очистки ZooKeeper включена, последние снапшоты в количестве autopurge.snapRetainCount и соответствующие им журналы транзакций в dataDir и dataLogDir сохраняются, а остальные удаляются. Минимальное значение 3

3

autopurge.purgeInterval

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

24

Add key, value

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

 — 

zookeeper-env.sh

 

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

ZOO_LOG_DIR

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

/var/log/zookeeper

ZOOPIDFILE

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

/var/run/zookeeper/zookeeper_server.pid

SERVER_JVMFLAGS

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

-Xmx1024m

JAVA

Путь к Java

$JAVA_HOME/bin/java

ZOO_LOG4J_PROP

Используется для установки уровня ведения журнала LOG4J и указания того, какие приложения журнала следует включить. Эффект от включения приложения журнала CONSOLE заключается в том, что журналы отправляются на стандартный вывод. Эффект от включения ROLLINGFILE заключается в том, что файл zookeeper.log создается, ротируется и истекает

INFO, CONSOLE, ROLLINGFILE

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

jmx_port

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

9994

JMX Exporter Port

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

11208

JMX Authentication

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

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

Username

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

monitoring

Password

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

 — 

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