Обновление#
Обновление Platform V Audit SE (AUD) до последней версии#
Внимание! Все стендозависимые параметры заполняются администраторами стендов самостоятельно.
Обновление Kafka независимо от типа стенда#
Перед обновлением Platform V Audit SE (AUD) на любом стенде, необходимо привести состав топиков и их настройки в соответствие с таблицей.
Топик |
Настройки |
|---|---|
audit-global-events, audit-global-operations, audit-global-metamodels, audit-pcidss-events, audit-pcidss-operations, audit-pcidss-metamodels |
Настроить максимальный размер сообщения max.message.bytes=2097152 |
audit-client-ping-topic |
Настроить сжатие и удаление данных: retention.ms=3600000, segment.bytes=1048576, cleanup.policy=delete |
audit-metamodels-proxy, audit-metamodels-proxy-v6, audit-pcidss-metamodels-proxy, audit-pcidss-metamodels-proxy-v6 |
Настроить сжатие и удаление данных: max.message.bytes=2621440, min.compaction.lag.ms=86400000, retention.ms=2592000000, retention.bytes=1073741824, segment.bytes=104857600, cleanup.policy=delete,compact, min.cleanable.dirty.ratio=0.1 |
audit-events-proxy, audit-events-proxy-v6, audit-pcidss-events-proxy, audit-pcidss-events-proxy-v6, audit-metamodels-proxy-v6-1, audit-migrated-v6-events |
Настроить максимальный размер сообщения max.message.bytes=2621440 |
audit-events-errors, audit-operations-errors, audit-metamodels-errors, audit-events-proxy-errors, audit-metamodels-proxy-errors, audit-events-errors-dc1, audit-operations-errors-dc1, audit-metamodels-errors-dc1, audit-events-proxy-errors-dc1, audit-metamodels-proxy-errors-dc1, audit-events-errors-dc2, audit-operations-errors-dc2, audit-metamodels-errors-dc2, audit-events-proxy-errors-dc2, audit-metamodels-proxy-errors-dc2 |
Настроить максимальный размер сообщения max.message.bytes=3145728 |
audit-raw-data |
Дополнительных параметров не требуется |
Также необходимо настроить ACL на топиках Kafka.
Настройка ACL на основном кластере Kafka#
На текущий момент Platform V Audit SE (AUD) имеет несколько кластеров Kafka с различным функциональным назначением. Все они должны быть закрыты SSL без анонимного доступа и без автосоздания топиков, а также должны быть настроены ACL (как минимум на ПСИ и ПРОМ).
Компоненты, которые взаимодействуют с ними, следующие:
Клиентские модули Platform V Audit SE (AUD) 3-го поколения (audit2-client-platform.war). Эти модули работают напрямую с транспортом Kafka, у них могут быть отдельные перекрытия с индивидуальными сертификатами под конкретную АС. Обозначим их сертификаты как clientDN для клиентов в основном контуре и clientPCIDSSDN для клиентов в контуре PCI DSS. Эти сертификаты должны позволять создавать при их отсутствии топики для записи данных (если позволяют настройки Kafka), конфигурировать топики, писать данные в топики. Также эти клиенты опрашивают Kafka, то есть пишут данные в отдельный служебный топик.
Прокси-приложение, которое пишет в Kafka, читает метамодели из Kafka и опрашивает состояние тестовыми сообщениями. Назовем его сертификат условно auditProxyDN. Этот сертификат также предлагается использовать для всех сервисов Platform V Audit SE (AUD), разворачиваемых в OpenShift.
Flume, сервисы обработки, которые вычитывают события из Kafka и возвращают их в отдельные топики, в случае ошибок обработки. Все Flume используют один сертификат, назовем его условно flumeDN. Этот сертификат должен позволять создавать топики, конфигурировать, писать данные в топики, читать данные из топиков.
Перекладчик PCI DSS, читает данные из Kafka контура PCI DSS и перекладывает в Kafka основного контура. Имеет выделенный сертификат transDN. Этот сертификат должен позволять читать данные из всех топиков Kafka контура PCI DSS и писать данные в основную Kafka и при необходимости создавать в ней топики.
UI Platform V Audit SE (AUD). Он содержит в себе модуль, выполняющий сбор jmx-метрик с Kafka. Сбор выполняется без SSL. Доступ к топикам не требуется.
Для старых версий клиентского модуля 8.х и старее топики для клиентов индивидуальны для каждого модуля и имеют названия audit-MODULENAME-events, audit-MODULENAME-operations, audit-MODULENAME-metamodels.
Также в Kafka должен быть заранее создан и сконфигурирован топик audit-client-ping-topic. Он используется для определения доступности Kafka с клиента посредством записи в него тестового сообщения с заданной периодичностью. Никаких чувствительных данных в нем не содержится.
Cледующие части Platform V Audit SE (AUD) работают с транзакциями на Kafka:
Прокси-приложение, которое пишет в Kafka, читает метамодели из Kafka и опрашивает состояние тестовыми сообщениями. Назовем его сертификат условно auditProxyDN. Этот сертификат также предлагается использовать для всех сервисов Platform V Audit SE (AUD), разворачиваемых в OpenShift.
Flume, сервисы обработки, которые вычитывают события из Kafka и возвращают их в отдельные топики, в случае ошибок обработки. Все Flume используют один сертификат, назовем его условно flumeDN. Транзакции в Kafka являются ресурсом, на который надо выдавать права. Подробнее описано ниже, в пункте 7.
Исходя из этого, в ACL основной Kafka должны быть выданы следующие права:
С правами "producer" (в утилите kafka-acls соответствует опции producer, в результате должны появиться права write, create, describe)
На топики:
audit-global-metamodels audit-global-events audit-global-operations audit-client-ping-topic
Для сертификатов:
clientDN (вместо этого подставить DN всех сертификатов, которые используются для клиентского модуля Platform V Audit SE (AUD) - см. артефакт audit2-client в PACMAN) transDN (вместо этого подставить DN сертификата перекладчика событий аудита PCI DSS (см. артефакт audit2-pcidss-transmitter в PACMAN)
Внимание!
При настройке ACL Kafka для доступа к топикам нельзя использовать маску с * (звездочкой). Доступ по маске запрещен по требованиям безопасности. Вместо маски необходимо явно перечислить полные названия топиков (audit-global-events, audit-global-metamodels.)
С правами "producer" (в утилите kafka-acls соответствует опции producer, в результате должны появиться права write, create, describe)
На топики:
audit-metamodels-proxy audit-events-proxy audit-metamodels-proxy-v6 audit-events-proxy-v6 audit-client-ping-topic
Для сертификата:
auditProxyDN (вместо этого подставить DN сертификата, под которым прокси-приложение Platform V Audit SE (AUD) работает с Kafka (см. конфигурацию audit-proxy).
С правами "read"
На топики:
audit-metamodels-proxy audit-metamodels-proxy-v6
Для сертификата:
auditProxyDN (вместо этого подставить DN сертификата, под которым прокси-приложение Platform V Audit SE (AUD) работает с Kafka (см. конфигурацию audit-proxy)).
С правами "All"
На все группы (Group:LITERAL:*)
Для сертификатов:
auditProxyDN (вместо этого подставить DN сертификата, под которым прокси-приложение Platform V Audit SE (AUD) работает с Kafka (см. конфигурацию audit-proxy)).
flumeDN (вместо этого подставить DN сертификата, который используют Flume для подключения к Kafka (см. конфигурацию Flume))
С правами "read"
На все топики (Topic:LITERAL:*):
flumeDN (вместо этого подставить DN сертификата, который используют Flume для подключения к Kafka (см. конфигурацию Flume))
С правами "producer" (в утилите kafka-acls соответствует опции producer, в результате должны появиться права write, create, describe)
На топики:
audit-events-errors audit-operations-errors audit-metamodels-errors audit-events-proxy-errors audit-metamodels-proxy-errors
audit-events-errors-dc1 audit-operations-errors-dc1 audit-metamodels-errors-dc1 audit-events-proxy-errors-dc1 audit-metamodels-proxy-errors-dc1
audit-events-errors-dc2 audit-operations-errors-dc2 audit-metamodels-errors-dc2 audit-events-proxy-errors-dc2 audit-metamodels-proxy-errors-dc2
Для сертификата:
flumeDN (вместо этого подставить DN сертификата, который используют Flume для подключения к Kafka (см. конфигурацию Flume))
С правами "producer" (в утилите kafka-acls соответствует опции producer, в результате должны появиться права write, create, describe)
На топики:
audit-XXX-metamodels audit-XXX-events audit-XXX-operations audit-client-ping-topic
Для сертификатов:
DN сертификата системы XXX, для которой выделены отдельные топики. Если такие системы известны.
Принципалу auditProxyDN надо выдать права producer (write,create,describe) на все transactionId (transactionId = ‘*')
Принципалу flumeDN надо выдать права (read) на все transactionId (transactionId = ‘*')
Настройка брокеров Kafka#
В этом разделе представлена типовая конфигурации для ПРОМ.
Перед запуском необходимо заполнить стендозависимые параметры:
broker.id - уникальный идентификатор сервера Kafka в кластере.
log.dir - директория с данными (не логами) этого сервера Kafka.
zookeeper.connect - строка со связками IP:PORT ZooKeeper для Kafka.
listeners - директива о том какой порт открывать, на каком IP, по какому протоколу.
Пути и пароли до сертификатов для случая "listeners=SSL":
ssl.keystore.location
ssl.truststore.location
ssl.keystore.password
ssl.truststore.password
ssl.key.password
super.users - список пользователей с повышенными привилегиями на кластере. Может быть указан сертификат.
zookeeper.ssl.client.enable - подключение к Zookeeper по SSL.
Пути и пароли до сертификатов для случая "zookeeper.ssl.client.enable=true":
zookeeper.ssl.keystore.location
zookeeper.ssl.keystore.password
zookeeper.ssl.truststore.location
zookeeper.ssl.truststore.password
######[ КОНФИГУРАЦИЯ ПРОМ ОПТИМАЛЬНА ДЛЯ 5 УЗЛОВ В КЛАСТЕРЕ ]####
##########################[ MAIN ]#########################
broker.id = [ Стендозависимый параметр ] example: 4
log.dir = [ Стендозависимый параметр ] example: /kafkadata
########################[ ZOOKEEPER ]######################
zookeeper.connect = [ Стендозависимый параметр ] example: 192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181,192.168.0.4:2181,192.168.0.5:2181
zookeeper.connection.timeout.ms = 30000
zookeeper.session.timeout.ms = 6000
#####################[ AUTHENTICATION ]####################
listeners= [ Стендозависимый параметр ] example: SSL://192.168.1.1:9093
security.inter.broker.protocol = SSL
sasl.enabled.mechanisms = GSSAPI
sasl.mechanism.inter.broker.protocol = GSSAPI
sasl.kerberos.service.name = kafka
ssl.keystore.location = [ Стендозависимый параметр ] example: ssl/kafka-server.jks
ssl.truststore.location = [ Стендозависимый параметр ] example: ssl/kafka-server.jks
ssl.keystore.password = [ Стендозависимый параметр ] example: changeit
ssl.truststore.password = [ Стендозависимый параметр ] example: changeit
ssl.key.password = [ Стендозависимый параметр ] example: changeit
ssl.client.auth = required
ssl.enabled.protocols = TLSv1.2
#####################[ TLS kafka zookeeper ]###################
zookeeper.ssl.client.enable=true
zookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
zookeeper.ssl.keystore.location= [ Стендозависимый параметр ] example: /opt/Apache/stores/keystore-audit-kafka.jks
zookeeper.ssl.keystore.password= [ Стендозависимый параметр ] example: changeit
zookeeper.ssl.truststore.location= [ Стендозависимый параметр ] example: /opt/Apache/stores/truststore-audit-kafka.jks
zookeeper.ssl.truststore.password= [ Стендозависимый параметр ] example: changeit
zookeeper.ssl.endpoint.identification.algorithm =
zookeeper.ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
#####################[ AUTHORIZATION ]#####################
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users= [ Стендозависимый параметр ] example: User:CN=ApacheKafka-Audit2-Transport-MC,OU=00CA,O=Company Name,C=RU
allow.everyone.if.no.acl.found=false
###################[ ZK AUTHORIZATION ]####################
zookeeper.set.acl=true
#########################[ TOPICS ]########################
auto.create.topics.enable = false
delete.topic.enable = true
num.partitions = 21
offsets.topic.replication.factor = 3
transaction.state.log.replication.factor = 3
transaction.state.log.min.isr = 3
# Potentially allow to increase message size up to 5MB.
# See also:
# message.max.bytes on broker
# max.message.bytes on topic
# Increasing message size up to 5 MB and more is not recommended
# and is generally a bad practice affecting:
# heap size x5, potential latency increase / throughput decrease
replica.fetch.max.bytes = 5242880
#######################[ CONSUMERS ]#######################
group.max.session.timeout.ms = 300000
############# [ GROUP COORDINATOR SETTINGS ] ##############
# For a better out-of-the-box experience for development
# and testing set this value to 0.
# In production environments the default value of 3 seconds
# is more suitable as this will help to avoid unnecessary,
# and potentially expensive, rebalances during application
# startup.
group.initial.rebalance.delay.ms = 3000
#####################[ SOCKET SERVER ]#####################
socket.send.buffer.bytes = 102400
socket.receive.buffer.bytes = 102400
socket.request.max.bytes = 104857600
num.network.threads = 6
num.io.threads = 8
num.replica.fetchers = 2
num.recovery.threads.per.data.dir = 1
#########################[ LOGS ]##########################
# Выставляется в зависимости от объемов дисков и требований по сохранности для ПРОМ 168 hours это 7 days
log.retention.hours = 168
# 1073741824 bytes is 1 GB
log.segment.bytes = 1073741824
log.retention.check.interval.ms = 300000
log.cleaner.enable = true
############## Confluent Metrics Reporter #################
confluent.support.customer.id = anonymous
#####################[ ADDITIONAL PROPERTIES SPECIFIC FOR Platform V Audit SE (AUD) ]#####################
# 43200 minutes in 30 days
offsets.retention.minutes = 43200
max.incremental.fetch.session.cache.slots = 100000
log.roll.hours = 1
queued.max.requests = 1000
# 2097152 bytes is 2 MB
message.max.bytes = 2097152
default.replication.factor = 3
min.insync.replicas = 2
log.cleaner.threads = 2
unclean.leader.election.enable = false
compression.type = snappy
# The endpoint identification algorithm to validate server hostname using server certificate. default: https
# empty string mean that hostname verification is disabled
ssl.endpoint.identification.algorithm =
listener.name.internal.ssl.endpoint.identification.algorithm =
Тестовые среды#
Cloudera Manager (Install_Eip)#
При обновлении Cloudera Manager средствами Install_Eip, выберите:
Шаг 1 - Обновление Cloudera 6.
OpenShift (Install_Eip)#
Перед обновлением Platform V Audit SE удалите из Install_EIP старые каталоги с сертификатами.
Добавьте в файл <EIP STAND_NAME>/<AUDIT_DIR>/actions.xml шаг обновления OpenShift:
<?xml version="1.0" encoding="UTF-8"?>
<Actions>
<Deploy>
<Action name="deploy_to_openshift" visible="true">
<context/>
<mode>all</mode>
<default>true</default>
<Description>Установка приложения на OpenShift</Description>
<type>groovy</type>
<Script>bin/roles/sbt-wildfly-cfg/openshift/deploy_to_openshift_multi.groovy</Script>
</Action>
</Deploy>
</Actions>
В файле <EIP STAND_NAME>/<AUDIT_DIR>/os_namespaces.yml укажите настройки для подключения к OpenShift:
--- # (опциональный) нотификация, что это YAML
jenkinsVaultCredId: vault_cred # (опциональный)Если vault id = vault_cred, то указывать не нужно
projects: # (обязательный) структура
- name: "first" # (опциональный) имя секции
openShiftNamespace: example-audit2 # (обязательный) В YAML-ах поставки можете использовать ${NAMESPACE} и тогда это значение применится при развертывании.
openShiftURL: api.example.com:6443 # (обязательный) В YAML-ах поставки можете использовать ${OPENSHIFT_CLUSTER} и тогда значение url1 без префикса "api." применится при развертывании.
oc_token: example.audit2_Cloud.audit_token # (обязательный) ID токена Jenkins сервис-аккаунта вашего namespace, который завели в пространстве вашей job Jenkins
os_props: "os_props1.conf" # (опциональный) Параметры подсистемы в конкретном namespace. Если ваш os_props = os_props.conf, то указывать не нужно. В общем случае результирующий файл будет равен os_props.conf + os_props1.conf.
# os_cluster_props: "os_cluster_props1.conf" # (опциональный) Параметры кластера для всех подсистем. Лежат в корне стенда. Следует сюда выносить переменные только если эти переменные будут использоваться другими модулями в кластере. Если ваш os_cluster_props = os_cluster_props.conf, то указывать не нужно. В общем случае результирующий файл будет равен os_props.conf + os_cluster_props.conf + os_cluster_props1.conf.
deleteResources: false # (опциональный) Удалять ресурсы перед развертыванием - true/false. По умолчанию - false. Если true, то сначала ищет файл delete.yaml и удаляет только указанные ресурсы. Если файла нет, то удаляет все ресурсы из поставки + все ресурсы из конфигов подсистемы. Если содержимое поставки изменилось, то могут удалиться не все ресурсы. Рекомендуем установить этот параметр в true и указать в файле delete.yaml ресурсы audit-proxy-egress-template, ott-settings-egress и egressgateway-audit-istio-${STAND_NAME}.
# os_delete: delete1.yaml # (опциональный) Параметры списка ресурсов подсистемы для удаления в конкретном namespace. Если не указан, то сначала ищем общий файл /openshift/delete.yaml. Если и его нет, то формируется автоматически.
validateDeploy: false # Установите false, потому что эта функция недоступна для Platform V Audit SE (AUD).
backupResources: false # Установите false, потому что эта функция недоступна для Platform V Audit SE (AUD).
rollback: # (опциональный) В этой секции находятся параметры отката.
- needToRollback: false # Установите false, потому что эта функция недоступна для Platform V Audit SE (AUD).
#
# - name: "second"
# openShiftNamespace: example2-audit2
# openShiftURL: api.example2.example.com:6443
# oc_token: audit_2_token
# os_props: "os_props2.conf"
# deleteResources: true # (опциональный) Удалять ресурсы перед развертыванием - true/false. По умолчанию - false. Если true, то сначала ищет файл delete.yaml и удаляет только указанные ресурсы. Если файла нет, то удаляет все ресурсы из поставки + все ресурсы из конфигов подсистемы. Если содержимое поставки изменилось, то могут удалиться не все ресурсы. Рекомендуем установить этот параметр в true и указать в файле delete.yaml ресурсы audit-proxy-egress-template, ott-settings-egress и egressgateway-audit-istio-${STAND_NAME}.
# # os_delete: delete1.yaml # (опциональный) Параметры списка ресурсов подсистемы для удаления в конкретном namespace. Если не указан, то сначала ищется общий файл /openshift/delete.yaml, если и его нет, то формируется автоматически.
# validateDeploy: false # Установите false.
# backupResources: false # Установите false.
# rollback: # (опциональный) В этой секции находятся параметры отката.
# - needToRollback: false # Установите false.
В файл <EIP STAND_NAME>/<AUDIT_DIR>/os_yaml_dirs.conf добавьте следующие строки:
/modules/audit2-proxy/configs
/modules/audit2-divider/configs
/modules/audit2-indicator/configs
В файле os_yaml_dirs.conf указываются конфигурации компонентов, которые нужно установить. Если вам не нужны какие-либо модули или компоненты Platform V Audit SE (AUD), не включайте их конфигурационные файлы в os_yaml_dirs.conf, и тогда они не будут устанавливаться.
Также есть дополнительный способ, как избежать установки компонентов и файлов, которые вам не нужны: можно указать в файле <EIP STAND_NAME>/<AUDIT_DIR>/os_ignore.conf список файлов, находящихся по путям из os_yaml_dirs.conf, которые нужно проигнорировать. Подробнее об этом в следующем пункте 4.
В файле <EIP STAND_NAME>/<AUDIT_DIR>/os_ignore.conf укажите список файлов, игнорируемых при развертывании:
Если планируете включать интеграцию с сервисом Secret Management System, добавьте такие строки:
audit2-divider-deployment.yml,audit2-proxy-dc.yml,audit2-indicator-dc.yml
Если не планируете использовать сервис Secret Management System, добавьте такие строки:
audit2-divider-dc-secman.yml,audit2-proxy-dc-secman.yml,audit2-indicator-dc-secman.yml
Скопируйте из дистрибутива содержимое директории distrib-<version>-OS/modules/audit2-proxy/configs/configMaps в директорию <EIP STAND_NAME>/<AUDIT_DIR>/openshift/configs/.
Заполните файл <EIP STAND_NAME>/<AUDIT_DIR>/openshift/configs/audit2-proxy-acl-cfg/acl.yml. В этом файле укажите CN сертификатов клиентских модулей, которым разрешено записывать данные в Platform V Audit через API и при необходимости установите квоту на ширину канала, которые эти модули могут занять, записывая потоки своих данных. Пример конфигурации ACL Proxy:
acl: enable: true quotas_refresh_interval_ms: 1000 quotas: # Квота на запись в Platform V Audit. Мегабайты в секунду. audit: 100 spas: 20Здесь:
enable — состояние фильтра: true = включен, false = выключен;
quotas_refresh_interval_ms: периодичность обновления данных о расходе квоты, в миллисекундах; рекомендуем указать значение 1000 миллисекунд (одна секунда);
quotas — коллекция квот, содержащая пары «ключ — значение» (CN — квота), также выступая в качестве «белого списка»; значение квоты указывается в мегабайтах в секунду. Настроек по умолчанию не предусмотрено, поэтому вам нужно явно указать параметры для вашей инсталляции Platform V Audit SE (AUD).
Если не планируете использовать Secret Management System:
a. Cкопируйте из дистрибутива все папки из distrib-
-OS/other/utils/openshift/certs в директорию конфигурации EIP <EIP STAND_NAME>/<AUDIT_DIR>/openshift/certs. b. Cкопируйте из дистрибутива все папки из distrib-<version>-OS/modules/<MODULE_NAME>/configs/certs в директорию конфигурации EIP <EIP STAND_NAME>/<AUDIT_DIR>/openshift/certs.
c. Заполните в директории <EIP STAND_NAME>/<AUDIT_DIR>/openshift/certs все вложенные файлы сертификатами и паролями от них.
d. Зашифруйте с помощью ansible-vault все файлы в директории <EIP STAND_NAME>/<AUDIT_DIR>/openshift/certs. Внимание: менять названия папок и файлов нельзя.
Сгенерируйте конфигурации Ingress, Egress и Egress-additional-configs. Поместите получившийся набор файлов-конфигураций в директорию
/<AUDIT_DIR>/openshift/templates. Запустите скрипт distrib- -OS/other/utils/openshift/audit-proxy-ingress-config-generator/create-ingress-config-file.sh. Параметры для запуска:
Вывод подсказки по использованию:
sh create-ingress-config-file.sh -h
Используются HTTP роуты:
sh create-ingress-config-file.sh --route-protocol http
Используются HTTPS роуты. Сертификаты будут взяты из OSE/K8s:
sh create-ingress-config-file.sh --route-protocol https
Используются HTTPS роуты. Сертификаты будут взяты из Secret Management System:
sh create-ingress-config-file.sh --route-protocol https -s
Используются HTTPS роуты. Сертификаты будут взяты из Secret Management System. Включен HorizontalPodAutoscaler для подов Ingress:
sh create-ingress-config-file.sh --route-protocol https -s --hpa
Запустите скрипт distrib-
Вывод подсказки по использованию:
sh create-egress-config-file.sh -h
Генерация конфигурации в обычном режиме работы. Сертификаты будут взяты из OSE/K8s:
sh create-egress-config-file.sh
Генерация конфигурации в режиме интеграции с Secret Management System. Сертификаты будут взяты из Secret Management System:
sh create-egress-config-file.sh --secman
Генерация конфигурации в режиме интеграции с Secret Management System. Сертификаты будут взяты из Secret Management System. Включен HorizontalPodAutoscaler для подов Egress.
sh create-egress-config-file.sh --secman --hpa
Для направления исходящего из pods Platform V Audit трафика в сервисы, не присутствующие в кластере OSE/K8s (Solr, Zookeeper), необходимо создать ресурсы:
ServiceEntry
Gateway
Service
VirtualService
DestinationRule
Совокупность конфигураций в этих ресурсах дают определенному трафику (в сторону определенного в конфигурации порта, протокола, хоста) возможность выходить из кластера OSE/K8s.
Необходимо создать данный набор ресурсов для каждого хоста, находящегося вне OSE/K8s, к которому будет происходить подключение, с указанием его порта и протокола.
Используйте для этого скрипт distrib-
Краткое руководство по пользованию скриптом (readme.md) находится в папке egress-additional-config-generator.
Результатом работы скрипта является файл конфигурации OSE с типом template - ${build_dir}/egress-${service_name}-additional-config.yaml
Описание параметров:
--hosts FQDN_1,FQDN_2,FQDN_3
Список через запятую хостов в виде FQDN, на которых работает внешний для k8s/OSE сервис (например Kafka).
--port 9093
Порт внешнего сервиса, работающего на хостах из параметра `--hosts`.
--mesh-port 9092
Порт, указанный в конфигурации OSE приложения (например, audit2-proxy) для подключения к внешнему сервису. Необязательный.
--protocol TCP
Протокол, по которому можно подключиться к внешнему сервису. Возможные варианты: `HTTP/HTTPS/TCP/TLS`. Регистр неважен.
--service kafka-01
Уникальное имя сервиса, до которого требуется открыть доступ. Например: `kafka-01`,`solr`,`logger`. Необходимо для исключения варианта пересечения конфигураций.
Допускается использование латинских букв [A-Z,a-z], цифр [0-9], дефиса "-".
--egress-origination
Включение функции Egress TLS Origination, обеспечивающей организацию TLS на поде Egress.
Примеры запуска (требуется выбрать одну команду для каждого внешнего сервиса, основываясь на том, как происходит подключение к этому внешнему сервису):
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по TCP.
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 9092 --protocol tcp --service service-name
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по TLS (TLS организуется на прикладном поде).
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 9093 --protocol tls --service service-name
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по TLS (TLS организуется на Egress поде). Приложение должно подключаться без SSL/TLS по порту `mesh-port`.
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 9093 --protocol tls --service service-name --egress-origination --mesh-port 9093
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по HTTP.
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 8080 --protocol HTTP --service service-name
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по HTTPS (TLS организуется на прикладном поде).
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 443 --protocol HTTPS --service service-name
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по HTTPS (TLS организуется на Egress поде). Приложение должно подключаться по БЕЗ ssl/tls по порту `mesh-port`!
sh create-egress-additional-config.sh --hosts FQDN_1,FQDN_2,FQDN_3 --port 443 --protocol HTTPS --service service-name --egress-origination --mesh-port 8080
Для каких сервисов требуется отрывать доступ:
Kafka (MAIN_KAFKA, FALLBACK_KAFKA)
Solr (Cloudera)
Zookeeper (Cloudera)
Secret Management System
Kerberos (IPA) Server
Журналирование (LOGA)
Kafka (JMX port)
Все Flume в Cloudera (JMX port)
Для каждого внешнего сервиса требуется создать конфигурацию с помощью скрипта create-egress-additional-config.sh, кроме Secret Management System, так как для него подключение специфичное и уже включено в скрипт create-egress-config-file.sh.
Для исключения случая наложения конфигураций в OSE/K8s, требуется указывать в скрипте уникальное значение флага --service для каждого сервиса, к которому открывается доступ.
Рекомендуемые команды для каждого внешнего сервиса:
Kafka (MAIN_KAFKA, FALLBACK_KAFKA) - Возможен любой вариант подключения (TCP/PLAINTEXT, TLS на поде, TLS на Egress).
sh create-egress-additional-config.sh --hosts kafka1.fqdn.example.com,kafka2.fqdn.example.com,kafka3.fqdn.example.com --port 9092 --protocol tcp --service kafka-01
sh create-egress-additional-config.sh --hosts kafka1.fqdn.example.com,kafka2.fqdn.example.com,kafka3.fqdn.example.com --port 9093 --protocol tls --service kafka-02
sh create-egress-additional-config.sh --hosts kafka1.fqdn.example.com,kafka2.fqdn.example.com,kafka3.fqdn.example.com --port 9093 --protocol tls --service kafka-03 --egress-origination --mesh-port 9093
Solr (Cloudera) - использовать можно только варианты HTTP и HTTPS на прикладном поде, так как обычно приложение получает порт Solr сервера из ZooKeeper и вручную нет возможности его задать.
sh create-egress-additional-config.sh --hosts solr1.fqdn.example.com,solr2.fqdn.example.com,solr3.fqdn.example.com --port 8983 --protocol HTTP --service solr
sh create-egress-additional-config.sh --hosts solr1.fqdn.example.com,solr2.fqdn.example.com,solr3.fqdn.example.com --port 8985 --protocol HTTPS --service solr
ZooKeeper (Cloudera) - Cloudera 6 не дает возможности закрыть Zookeeper с помощью TLS, поэтому возможен только вариант подключения по TCP.
sh create-egress-additional-config.sh --hosts zk1.fqdn.example.com,zk2.fqdn.example.com,zk3.fqdn.example.com --port 2181 --protocol tcp --service cloudera-zk
Secret Management System - Не требуется генерация, так как для него подключение специфичное и уже включено в скрипт create-egress-config-file.sh.
Kerberos (IPA) Server - обычно Kerberos работает на порту 88 по протоколу TCP.
sh create-egress-additional-config.sh --hosts kerberos.server.example.com --port 88 --protocol tcp --service kerberos
Журналирование (LOGA) - в Logger-sidecar нет требуемых сертификатов для подключения к Logger-server, поэтому возможные подключения HTTP и HTTPS через Egress.
Создание конфигурации для подключения к 3-х нодовому кластеру <Внешнего_сервиса> по HTTP.
sh create-egress-additional-config.sh --hosts logger.fqdn.example.com --port 8080 --protocol HTTP --service logger
sh create-egress-additional-config.sh --hosts logger.fqdn.example.com --port 443 --protocol HTTPS --service logger --egress-origination --mesh-port 8080
Приведите файл конфигурации <EIP STAND_NAME>/<AUDIT_DIR>/openshift/os_props.conf к виду файла os_props.conf из дистрибутива (distrib-<version>-OS/doc/os_props.conf).
Заполните стендозависимые параметры в os_props.conf.
Обязательны к заполнению:
APPLICATION_ROUTE - FQDN хоста для приема REST API запросов клиентов Platform V Audit SE (AUD).
APPLICATION_NAMESPACE - Namespace приложения. Зайдите в ваш проект в OpenShift. Имя проекта равно этой переменной.
APPLICATION_ROUTE_WITH_OTT - FQDN хоста для приема REST API запросов клиентов Platform V Audit SE (AUD), c авторизацией по One-Time-Password (OTT).
APPLICATION_GEO_ROUTE - FQDN хоста для приема REST API запросов клиентов Platform V Audit SE (AUD), при работе через схему гео-резервирования.
APPLICATION_GEO_ROUTE_WITH_OTT - FQDN хоста для приема REST API запросов клиентов Platform V Audit SE (AUD), c авторизацией по One-Time-Password (OTT), при работе через схему гео-резервирования.
APPLICATION_REPLICAS_COUNT - Количество Pods для приложения Platform V Audit SE (AUD). Например, 4.
AUDIT_PROXY_SERVICE_NAME - Указано в OpenShift > Networking > Services > Name сервиса Platform V Audit SE (AUD). Например, audit2-client-proxy-lb.
AUDIT_DOCKER_REPOSITORY - Репозиторий для docker images прокси-приложения Platform V Audit SE (AUD).
AUDIT_LIMITS_CPU - Лимит на процессорный ресурс для прокси-приложения Platform V Audit SE (AUD). Установите значение 400m.
AUDIT_LIMITS_MEMORY - Лимит на память для прокси-приложения Platform V Audit SE (AUD). Установите значение 1Gi.
AUDIT_REQUESTS_CPU - Необходимое количество процессорного ресурса для прокси-приложения Platform V Audit SE (AUD). Установите значение 250m.
AUDIT_REQUESTS_MEMORY - Необходимое количество памяти для прокси-приложения Platform V Audit SE (AUD). Установите значение 900Mi.
EGRESS_LIMITS_CPU - Лимит на процессорный ресурс для сервиса Egress. Установите значение 200m.
EGRESS_LIMITS_MEMORY - Лимит на количество памяти для сервиса Egress. Установите значение 250Mi.
EGRESS_REQUESTS_CPU - Необходимое количество процессорного ресурса для сервиса Egress. Установите значение 150m.
EGRESS_REQUESTS_MEMORY - Необходимое количество памяти для сервиса Egress. Установите значение 150Mi.
EGRESS_REPLICAS - Количество Pods для сервиса EGRESS. Например, 2.
LOGGER_SERVICE_PORT - Порт, по которому подключается Logger sidecar к сервису Logger, например, 8080. Заменяется на Egress на реальный порт сервиса Logger.
LOGGER_SIDECAR_IMAGE - Logger image URL в формате image_name@sha256:image_hash.
LOGGER_SIDECAR_LIMITS_MEMORY - Лимит на количество памяти для sidecar Logger. Установите значение 32Mi.
LOGGER_SIDECAR_LIMITS_CPU - Лимит на процессорный ресурс для sidecar Logger. Установите значение 200m.
LOGGER_SIDECAR_REQUESTS_MEMORY - Необходимое количество памяти для sidecar Logger. Установите значение 16Mi.
LOGGER_SIDECAR_REQUESTS_CPU - Необходимое количество процессорного ресурса для sidecar Logger. Установите значение 100m.
LOGGER_KAFKA_BOOTSTRAP_SERVERS - Список серверов Kafka для отправки логов OSE сервисов AUDT, в формате IP1:PORT,IP2:PORT,IP3:PORT.
LOGGER_KAFKA_TOPIC - Имя топика Kafka, куда будут складироваться логи OSE сервисов AUDT. Необходимо завести заявку на LOGE для выделения топика, по их процессу подключения к системе. Например, audit2-logs.
SERVER_MAX_HTTP_HEADER_SIZE - Максимальный размер http-заголовков запросов, принимаемых сервером Platform V Audit (пример: 20000)
STAND_NAME - Параметр, дающий уникальность имен конфигураций OpenShift для случаев, когда в одном кластере OpenShift расположено несколько инсталляций Platform V Audit SE (AUD).
MAIN_KAFKA_BOOTSTRAP_SERVERS=IP1:PORT,IP2:PORT,IP3:PORT - Основные сервера Kafka вашего стенда, откуда вычитываются сообщения.
FALLBACK_KAFKA_BOOTSTRAP_SERVERS=IP1:PORT,IP2:PORT,IP3:PORT - Резервные сервера Kafka вашего стенда.
PROXY_KAFKA_SECURITY_PROTOCOL - Протокол подключения к кластеру Kafka. Укажите PLAINTEXT или SSL. Если для подключения к Kafka используются сертификаты Egress, то этот параметр должен иметь значение PLAINTEXT.
PROXY_KAFKA_TOPIC_EVENT - Топик Kafka, в который audit-proxy отправляет события. Укажите audit-events-proxy-v6.
PROXY_KAFKA_TOPIC_METAMODEL - Топик Kafka, в который audit-proxy отправляет метамодели. Укажите audit-metamodels-proxy-v6.
PROXY_METAMODEL_CACHE_ENABLE - Состояние кеша метамоделей - включен/выключен (true/false). По умолчанию включен. В случае серьезных проблем с потреблением оперативной памяти в приложении audit-proxy рекомендуется установить значение false. Но в этом случае будет отключена проверка событий по метамодели при регистрации через REST API, события будут зарегистрированы в хранилищах Platform V Audit SE, но в случае отсутствия метамодели в хранилище не будут загружены описания событий и их параметров.
PROXY_METAMODEL_CACHE_TYPE - Тип кеша метамоделей: guava - умный вытесняющий кеш на основе библиотеки Guava; native - кеш на основе ConcurrentHashMap, без реализации вытеснения. Заполняется до размера PROXY_METAMODEL_CACHE_MAX_SIZE, после чего операции добавления игнорируются. По умолчанию установлено значение guava. В случае высокого потребления оперативной памяти приложением audit-proxy, рекомендуем попробовать использовать значение native.
PROXY_METAMODEL_CACHE_MAX_SIZE - Максимальный размер кеша метамоделей в audit-proxy. По умолчанию - 10000 метамоделей. Значение должно соответствовать количеству метамоделей, зарегистрированных в хранилище метамоделей. При необходимости снизить потребление оперативной памяти в приложении audit-proxy значение может быть уменьшено (например, в два раза). В этом случае при регистрации первых событий проверка по метамодели не будет выполняться, а затем недостающие метамодели будут догружены в audit-proxy взамен редко используемых.
PROXY_ADDITIONAL_JVM_OPTS - Параметр для добавления Java Options в ConfigMap Audit2-Proxy. Перечисление через пробел. Можно оставить пустым.
CONTAINER_OTT_IMAGE - OTT image URL в формате image_name@sha256:image_hash.
SIDECAR_OTT_LIMITS_CPU - Лимит на процессорный ресурс для sidecar OTT. Установите значение 300m.
SIDECAR_OTT_LIMITS_MEMORY - Лимит на память для sidecar OTT. Установите значение 500Mi.
SIDECAR_OTT_REQUESTS_CPU - Необходимое количество процессорного ресурса для sidecar OTT. Установите значение 200m.
SIDECAR_OTT_REQUESTS_MEMORY - Необходимое количество памяти для sidecar OTT. Установите значение 300Mi.
USE_ISTIO - Включение и выключение sidecar Istio. Укажите true или false.
CONTAINER_ISTIO_PROXY_IMAGE - Envoy image URL в формате image_name@sha256:image_hash.
ISTIO_CONTROL_PLANE - Настройка для sidecar Istio. Зайдите в ваш проект в OpenShift > Projects > Labels > metadata.labels.maistra.io/owner.
CONTROL_PLANE_ISTIOD_SERVICE_NAME - Имя сервиса ISTIOD. Например, istiod-<ISTIO_CONTROL_PLANE>. Значение для вашего namespace зависит от подключенной Control Plane. Точное значение может подсказать администратор Control Plane.
CONTROL_PLANE_ISTIOD_SERVICE_PORT - Порт сервиса ISTIOD. Например, 15012. Значение для вашего namespace зависит от подключенной Control Plane. Точное значение может подсказать администратор Control Plane.
CONTROL_PLANE_JAEGER_SERVICE_NAME - Имя сервиса Jaeger. Например, synapse-tracer-svc. Значение для вашего namespace зависит от подключенной Control Plane. Точное значение может подсказать администратор Control Plane.
CONTROL_PLANE_JAEGER_SERVICE_PORT - Порт сервиса Jaeger. Например, 8788. Значение для вашего namespace зависит от подключенной Control Plane. Точное значение может подсказать администратор Control Plane.
ISTIO_META_DNS_AUTO_ALLOCATE - Включение и выключение режима автоопределения виртуального IP-адреса для внешнего хоста. Принимает значения true или false. По умолчанию - false. При значении true, требуется чтобы в ServiceEntry внешних хостов поле "resolution" имело значение NONE. При значении false, поле "resolution" может принимать значение DNS.
ISTIO_SIDECAR_REQUEST_CPU - Необходимое количество процессорного ресурса для sidecar Istio. Установите значение 250m.
ISTIO_SIDECAR_LIMIT_CPU - Лимит на процессорный ресурс для sidecar Istio. Установите значение 300m.
ISTIO_SIDECAR_REQUEST_MEM - Необходимое количество памяти для sidecar Istio. Установите значение 450Mi.
ISTIO_SIDECAR_LIMIT_MEM - Настройка для sidecar Istio. Установите значение 800Mi.
INGRESS_REPLICAS_COUNT - Количество Pods для сервиса INGRESS. Например, 2.
INGRESS_LIMITS_CPU - Лимит на процессорный ресурс для сервиса Ingress. Установите значение 400m.
INGRESS_LIMITS_MEMORY - Лимит на память для сервиса Ingress. Установите значение 250Mi.
INGRESS_REQUESTS_CPU - Необходимое количество процессорного ресурса для сервиса Ingress. Установите значение 300m.
INGRESS_REQUESTS_MEMORY - Необходимое количество памяти для сервиса Ingress. Установите значение 150Mi.
INDICATOR_LIMIT_CPU - Лимит на процессорный ресурс для сервиса Indicator. Установите значение 300m.
INDICATOR_LIMIT_MEM - Лимит на память для сервиса Indicator. Установите значение 500Mi.
INDICATOR_REQUEST_CPU - Необходимое количество процессорного ресурса для сервиса Indicator. Установите значение 200m.
INDICATOR_REQUEST_MEM - Необходимое количество памяти для сервиса Indicator. Установите значение 300Mi.
HBASE_ZOOKEEPER_QUORUM - FQDN серверов ZooKeeper, указанные через запятую. Например, 1.example.com,2.example.com. FQDN можно узнать в Cloudera Manager > ZooKeeper > Instances.
HBASE_RPC_PROTECTION - Уровень шифрования RPC-взаимодействия между клиентом Hbase и сервером. Значение выставляется таким же, какое прописано в конфигурации Hbase Cloudera. Возможные значения: authentication, integrity, privacy.
KUBERNETES_VERSION - Версия Kubernetes.
LOGGER_SERVICE_HOSTNAME - URL сервиса Журналирование (LOGA).
OTT_SERVICE_HOSTS - Список IP1:PORT1, IP2:PORT2 на которых расположен сервис ОТТ, относящийся к вашему стенду.
OTT_AUTH_TLS_TRUST_MODE - Режим авторизации на Ingress (через OTT) с аутентификацией клиентов по mTLS. Может принимать значение true или false.
OTT_CLIENT_BILLING_ACCOUNT - Параметр OTT_CLIENT_BILLING_ACCOUNT нужен для метрики биллинга TokenRequestCount на сервере, чтобы различать, какой сервис какие токены запрашивает. Подробную инструкцию по заполнению параметра смотрите в Руководстве администратора OTTS, в разделе Формат метрики TokenRequestCount.
MASTER_HBASE_PRINCIPAL - "hbase/<master_host>@<realm>". Principal master-сервера hbase. <master_host> - хост master-сервера hbase. <realm> - realm Kerberos, используемый для сервера. Значение должно совпадать с realm в файле krb5.conf, а также с realm, обозначенным в настройках стенда Cloudera. Данный principal должен содержаться в соответствующем ему keytab-файле.
REGION_HBASE_PRINCIPAL - "hbase/_HOST@<realm>". Principal region-сервера hbase. <realm> - realm Kerberos, используемый для сервера. Значение должно совпадать с realm в файле krb5.conf, а также с realm, обозначенным в настройках стенда Cloudera.
KERBEROS_ENABLED - Если Hbase в Cloudera защищен при помощи Kerberos, укажите значение true. Если не защищен, укажите значение false.
DIVIDER_USE_ISTIO - Использование Istio в сервисе divider. Укажите true или false.
DIVIDER_LIMIT_CPU - Лимит на процессорный ресурс для сервиса divider. Установите значение 300m.
DIVIDER_LIMIT_MEM - Лимит на память для сервиса divider. Установите значение 500Mi.
DIVIDER_REQUEST_CPU - Необходимое количество процессорного ресурса для сервиса divider. Установите значение 200m.
DIVIDER_REQUEST_MEM - Необходимое количество памяти для сервиса divider. Установите значение 300Mi.
DIVIDE_STRATEGY - Настройка ротации коллекций Solr. Возможные параметры - timebased или force. Параметр timebased заменяет коллекцию в write-alias только в том случае, если самая свежая коллекция в этом alias была создана более DIVIDER_SCHEDULER_PERIOD_DIVIDE_DATA_MINUTES минут назад. Параметр force принудительно очищает write-alias от находящихся там коллекций и добавляет туда новую. Рекомендуемый - timebased.
DIVIDER_RUNTIME_COLLECTION_STORING_MINUTES - Максимальное время хранения текущих коллекций оперативного хранилища в Solr (в минутах). Рекомендуемое значение - 129600.
DIVIDER_ARCHIVE_COLLECTION_STORING_MINUTES - Максимальное время хранения восстановленных архивных коллекций (в минутах). Рекомендуемое значение - 7200.
DIVIDER_SCHEDULER_PERIOD_DIVIDE_DATA_MINUTES - Интервал в минутах, с которым происходит создание новой коллекции на запись и замена на неё старой. Рекомендуемое значение - 1440.
DIVIDER_SCHEDULER_PERIOD_COLLECT_METADATA_MINUTES - Интервал в минутах, с которым происходит сбор информации о периоде хранения событий в коллекции. Рекомендуемое значение - 30.
DIVIDER_SCHEDULER_PERIOD_DELETE_EXPIRED_COLLECTION_MINUTES - Интервал в минутах, с которым происходит поиск и удаление устаревших коллекций. Рекомендуемое значение - 60.
DIVIDER_RETRY_COUNT - Количество попыток (всего) при разделении, удалении, сборе метаданных (если предыдущая попытка закончилась выбросом ошибки). Рекомендуемое - 3.
DIVIDER_RETRY_BACKOFF_MS - Период в миллисекундах между попытками, указанными в DIVIDER_RETRY_COUNT при разделении, удалении, сборе метаданных (если предыдущая попытка закончилась выбросом ошибки). Рекомендуемое - 60000.
DIVIDER_SCHEDULER_POOL_SIZE - Количество потоков для задач Scheduler. Например, 3.
DIVIDER_ADDITIONAL_JVM_OPTS - Параметр для добавления Java Options в ConfigMap Audit2-Divider. Перечисление через пробел. Можно оставить пустым.
SOLR_ZOOKEEPER_CONNECTION_STRING=IP1:PORT,IP2:PORT,IP3:PORT - Адреса серверов ZooKeeper.
SOLR_ZOOKEEPER_CHROOT=/solr - Рабочая директория Solr в ZooKeeper.
SOLR_COLLECTION_CONFIG_NAME=splitted-ae-hdfs - Название конфигурации для коллекции Solr. Определяет, где будут храниться данные, на HDFS или на Linux. Принимает значения splitted-ae-hdfs или splitted-ae-disk. Для splitted-ae-hdfs, директория задается вручную в Cloudera Manager > Solr > Configuration, параметр HDFS Data Directory. Для splitted-ae-disk, директория задается вручную в Cloudera Manager > Solr > Configuration, параметр Solr Data Directory.
SOLR_COLLECTION_SHARDS_COUNT - Количество shards для коллекций Solr. Целое число, например, 3. Значение зависит от значений (1) DIVIDER_RUNTIME_COLLECTION_STORING_MINUTES, (2) входящего потока событий и (3) количества серверов, выделенных под Solr. Необходимо выставлять параметры DIVIDER_RUNTIME_COLLECTION_STORING_MINUTES и SOLR_COLLECTION_SHARDS_COUNT таким образом, чтобы средний размер shard не превышал 40 ГБ, чтобы не было деградации записи данных и поиска. В случае отсутствия эмпирических данных можно выставить по следующей формуле: SOLR_COLLECTION_SHARDS_COUNT=(DIVIDER_RUNTIME_COLLECTION_STORING_MINUTES * входящий поток ГБ/сут) / 1000.
SOLR_COLLECTION_MAX_SHARDS_PER_NODE_COUNT - Максимальное количество shards для каждого узла Solr. Целое число, например, 10. Значение должно быть больше величины SOLR_COLLECTION_SHARDS_COUNT * SOLR_COLLECTION_REPLICAS_COUNT / количество серверов Solr. Рекомендуется выставлять вдвое больше.
SOLR_COLLECTION_REPLICAS_COUNT - Количество реплик для коллекций Solr. Целое число, например, 2. Для промышленных сред - 2 и более, в зависимости от требований (если требуется переживать отказ N серверов, то выставить N+1). В случае размещения Solr на HDFS, не рекомендуется выставлять более 2, так как объем данных, хранимых на дисках, зависит от произведения величин replicationFactor для Solr и replicationFactor HDFS. Для тестовых сред допускается 1 и более.
DIVIDER_SOLR_SSL_ENABLED - Значение показывает, активен ли SSL или нет. Возможные значения - true или false.
DIVIDER_SOLR_HOSTNAME_VERIFICATION_ENABLED - Настройка включает проверку hostname в SAN сертификата Solr сервера. Возможные значения - true или false. Можно установить false на тестовых стендах.
Внимание!
При включении поддержки Kerberos на кластере Hadoop становятся недоступными Hue Web UI и Solr Server Web UI. Для доступа к встроенным в Hadoop утилитам HDFS и HBase потребуется получение keytab в FreeIPA (Kerberos) для HDFS и HBase, и именно для узла, с которым будет происходить взаимодействие пользователя.
Если планируете использовать Platform V Audit SE (AUD) вместе с сервисом Secret Management System, также внесите следующие настройки в os_props.conf:
VAULT_ROLE - Имя роли в Secret Management System, под которой происходит аутентификация и авторизация Vault-Agent. Например: role-ga-secman-aud. Роль выдается при получении доступа к Secret Management System.
VAULT_AGENT_REQUESTS_CPU - Необходимое количество процессорного ресурса для Vault-Agent. Установите значение 250m.
VAULT_AGENT_LIMITS_CPU - Лимит на процессорный ресурс для Vault-Agent. Установите значение 500m.
VAULT_AGENT_REQUESTS_MEMORY - Необходимое количество памяти для Vault-Agent. Установите значение 64Mi.
VAULT_AGENT_LIMITS_MEMORY - Лимит на память для Vault-Agent. Установите значение 128Mi.
VAULT_TENANT_NAME - Идентификатор вашего namespace (тенанта) в Secret Management System.
VAULT_KV_PATH - Путь до хранилища секретов в формате Key-Value в Secret Management System. Например: A/DEV/AUD/OM/KV.
VAULT_HOST - FQDN сервиса Secret Management System. Например: secman.example.com.
VAULT_PORT - Порт сервиса Secret Management System. Укажите 8443.
Пример заполнения файла:
APPLICATION_ROUTE=demo.audit2-http-proxy.example.com
APPLICATION_NAMESPACE=ci00641491-idevgen-audit-demo
ISTIO_CONTROL_PLANE=ci01994970-idevgen-control-panel-test
LOGGER_SERVICE_HOSTNAME=ci00641491-idevgen-logger-ift.ingress.example.com
APPLICATION_ROUTE_WITH_OTT=demo.audit2-http-proxy-ott.example.com
OTT_SERVICE_HOSTS=10.53.13.110:8080,10.53.13.111:8080
KAFKA_HOSTS='["str-vat-app0488.example.com", "str-vat-app0487.example.com", "str-vat-app0486.example.com"]'
KAFKA_PORT=19092
EGRESS_REPLICAS=1
INGRESS_REPLICAS_COUNT=1
APPLICATION_REPLICAS_COUNT=2
HBASE_PRINCIPAL="none"
KERBEROS_ENABLED=false
Обновление UI Platform V Audit SE (AUD) (WildFly)#
Для обновления модуля AuditWebUI выполните следующие шаги:
Скопируйте дистрибутив на папку выше для совместимости новой структуры с Install_EIP.
Пример
<Action name="copy_distrib_to_upper_dir" visible="true">
<context/>
<mode>all</mode>
<default>true</default>
<Description>Копирование дистрибутива на папку выше</Description>
<Dependency onFail="Skip">server_deploy_seap_mod</Dependency>
<type>shell</type>
<Script>cp -R ${env.distrPath}distrib-4.12-OS/* ${env.distrPath}; ls -la ${env.distrPath}</Script>
</Action>
Обновите конфигурацию в PACMAN.
Пример
<Action name="configure_hyperic" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Загрузка параметров в PACMAN</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">Audit_cloudera_update</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/config_by_configurator_cli_with_password.yml host_path=./config/${env.Stand}/hosts.ini key_id=vault_cred</Script>
</Action>
Загрузите ролевую модель в SPAS.
Пример
<Action name="upload_role_model" visible="true">
<context/>
<mode>all</mode>
<default>true</default>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">Audit_cloudera_update</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Description>Загрузка ролевой модели в Spas</Description>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/config_spas_by_cli_with_password.yml key_id=vault_cred</Script>
</Action>
Перезагрузите WildFly с выключенными модулями.
Пример
<Action name="core_restart_console_wf" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Рестарт консоли WildFly (без приклада)</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">Audit_cloudera_update</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">upload_role_model</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/tc_restart_wf_false_app.yml host_path=./config/${env.Stand}/hosts.ini hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Обновите модуль WebUI.
Пример
<Action name="audit_WebUI_deploy_to_WF" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Установка WebUI приложения аудита на WildFly</Description>
<Dependency onFail="Skip">server_deploy_seap_mod</Dependency>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">Audit_cloudera_update</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">upload_role_model</Dependency>
<Dependency onFail="Skip">core_restart_console_wf</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/install_module_with_password.yml system_conf_WF=../../../distrib/install/install_web.properties hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Перезагрузите WildFly и включите все установленные модули.
Пример
<Action name="core_restart_console_wf_enable_app" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Рестарт консоли WildFly</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">Audit_cloudera_update</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">upload_role_model</Dependency>
<Dependency onFail="Skip">core_restart_console_wf</Dependency>
<Dependency onFail="Skip">Audit_web_UI_deploy</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/tc_restart_wf_enable_app.yml host_path=./config/${env.Stand}/hosts.ini hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Обновление перекладчика событий PCI DSS Transmitter#
Для обновления модуля выполните следующие шаги:
Обновите конфигурацию в PACMAN.
Пример
<Action name="configure_hyperic" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Загрузка параметров в PACMAN</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/config_by_configurator_cli_with_password.yml host_path=./config/${env.Stand}/hosts.ini key_id=vault_cred</Script>
</Action>
Перезагрузите WildFly с выключенными модулями.
Пример
<Action name="core_restart_console_wf" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Рестарт консоли WildFly (без приклада)</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/tc_restart_wf_false_app.yml host_path=./config/${env.Stand}/hosts.ini hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Скопируйте файлы-фильтры сообщений для перекладчика.
Пример
<Action name="update_filters" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Обновление фильтров сообщений для PCIDSS перекладчика</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">restart_console_wf</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/copy_directory_data.yml hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Для работы данного шага необходимо задать откуда копировать фильтры из дистрибутива (src_path) и куда их класть на целевом хосте (resources_dir_path).
Это можно сделать, поместив две переменные в //system.conf:
resources_dir_path=/opt/pprb/transmitter-filters/ src_path=config/transmitter-filters/
Обновите модуль перекладчика PCI DSS.
Пример
<Action name="deploy_transmitter_module" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Обновление модуля PCIDSS перекладчика</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">restart_console_wf</Dependency>
<Dependency onFail="Skip">update_filters</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/install_module_with_password.yml system_conf_WF=../../../distrib/install/install_transmitter.properties hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Перезагрузите WildFly с включением всех установленных модулей.
Пример
<Action name="restart_console_wf_enable_app" visible="true">
<context />
<mode>all</mode>
<default>true</default>
<Description>Рестарт консоли WildFly</Description>
<Dependency onFail="Skip">copy_distrib_to_upper_dir</Dependency>
<Dependency onFail="Skip">configure_hyperic</Dependency>
<Dependency onFail="Skip">upload_role_model</Dependency>
<Dependency onFail="Skip">restart_console_wf</Dependency>
<Dependency onFail="Skip">deploy_transmitter_module</Dependency>
<type>groovy</type>
<Script>bin/run_with_password_tool26.groovy action_script=bin/tc_restart_wf_enable_app.yml host_path=./config/${env.Stand}/hosts.ini hosts_group_WF=11_BA2 key_id=vault_cred</Script>
</Action>
Обновление Конфигурации для артефакта audit2#
Обновление выполняется штатно до последней версии.
Дополнительная информация#
Обновление Ролевой модели для модуля Platform V Audit SE (AUD): выполните обновление Ролевой модели модуля Platform V Audit SE (AUD) до текущей версии. Файл roleModel_audit.xml размещен в дистрибутиве по пути distrib-<version>-OS/other/roleModel.
Удаление старых архивных коллекций: удалите cтарые архивные коллекции c названиями в формате YYYY-MM-DD-YYYY-MM-DD. Они будут недоступны для поиска и автоматически не будут удаляться через сервис audit2-divider. Можно удалить через UI или через Solr Server Web UI. Если старые коллекции нужны, выполните заново поднятие из архива.