Руководство по установке#
В руководстве приведены инструкции по установке компонента Аудит (AUDT) продукта Platform V Audit SE (AUD).
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Назначение категории ПО |
|---|---|---|---|---|---|
Операционная система |
Да |
ОС Альт 8 СП |
8 |
Рекомендовано |
ОС контейнеров для запуска модулей компонента |
Операционная система |
Да |
ОС RedHat Enterprise Linux 7.7 |
8 |
Опционально |
ОС контейнеров для запуска модулей компонента |
Среда контейнеризации |
Да |
1.21.8 |
Рекомендовано |
Платформа контейнеризации для запуска компонентов сервиса |
|
Среда контейнеризации |
Да |
4.7 |
Опционально |
Платформа контейнеризации для запуска компонентов сервиса |
|
Средство контейнеризации |
Да |
19.0.3.8 |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Инструмент сборки, тестирования, развертывания контейнеризованных приложений |
Да |
2.319.3 |
Рекомендовано |
Сервер автоматизации, используемый для внедрения непрерывной интеграции и непрерывной доставки (CI/CD) для проектов программного обеспечения |
|
Java-машина |
Да |
8 |
Рекомендовано |
Окружение для работы модулей компонента |
|
Программное обеспечение для сбора и перемещения больших объемов потоковых данных |
Да |
Apache Flume |
1.9.0 |
Рекомендовано |
ETL-сервис, который должен использоваться при формировании некоторых контейнеров в Kubernetes. |
Сервер приложений |
Да |
Nginx |
1.20.1 |
Рекомендовано |
Сервер для балансировки внешних и внутренних запросов между сервисами |
Сервер приложений |
Да |
WildFly |
15 |
Опционально |
Сервер для запуска пользовательского интерфейса Platform V Audit SE (AUD) |
Браузер |
Да |
Яндекс.Браузер |
19.10.1+ |
Рекомендовано |
Браузер для входа в UI |
Браузер |
Да |
Internet Explorer (IE) |
11+ |
Опционально |
Браузер для входа в UI |
Брокер сообщений |
Да |
Apache Kafka |
3.0.3-5.1.6 |
Опционально. |
Событийный обмен сообщениями между модулями компонента. |
Система хранения данных |
Да |
Sber Data Platform (SDP) |
3.5 |
Рекомендовано |
Кластер для хранения данных о событиях, подлежащих аудиту |
Система хранения данных |
Да |
Cloudera Manager (CDH) |
6.3.1 (CDH 6.3.2) |
Опционально |
Кластер для хранения данных о событиях, подлежащих аудиту |
Инструмент управления проектом |
Да |
3.8.2 |
Рекомендовано |
Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
2.14.20-02 |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
Nexus Repository Manager OSS |
2.14.20-02 |
Рекомендовано |
|||
Сервис централизованного хранения репозиториев исходного кода |
Да |
20.30.1 |
Рекомендовано |
Хранение конфигураций при автоматизированной установке |
|
Bitbucket |
7.6.7 |
Опционально |
|||
Сервис интеграции и оркестрации микросервисов в облаке |
Да |
1.11 |
Рекомендовано. |
Сервис интеграции микросервисов в облаке |
Примечание:
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).
**
Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Платформенные зависимости#
Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V IAM SE |
IAM |
1.3 |
AUTH IAM Proxy |
Да |
Сервис выполняет функции аутентификации/авторизации запросов. Взаимодействует с AUTZ или другими провайдерами аутентификации/авторизации |
С аналогами других производителей не тестировался. |
Platform V IAM SE |
IAM |
1.3 |
AUTZ Объединённый сервис авторизации (ОСА) |
Да |
Сервис для авторизации доступа пользователей на основе проверки прав ролей и прав доступа, а также на основе атрибутов субъектов и объектов доступа. |
Сервис успешно прошел испытания и подтвердил свою работоспособность с компонентом AUTH. С аналогами других производителей не тестировался. |
Platform V Corax |
KFK |
5.1.7 |
KFKA Kafka Sber Edition |
Нет |
Программный брокер сообщений. |
Apache Kafka |
Platform V DevopsTools |
DOT |
1.2 |
PILP Install_EIP |
Нет |
Сервис для автоматизации сборки и развертывания дистрибутивов отдельных функциональных приложений |
С аналогами других производителей не тестировался. |
Platform V Monitor |
OPM |
4.1 |
LOGA Журналирование |
Нет |
Сервис для хранения лог-файлов |
Любой сервис сбора записей о событиях, совместимый с fluent-bit, например: Elasticsearch, InfluxDB. |
Platform V Monitor |
OPM |
4.1 |
MONA Объединенный мониторинг Unimon |
Нет |
Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения. |
Prometheus 2.21.0 |
Platform V Synapse Service Mesh |
SSM |
2.10 |
POLM Управление политиками |
Нет |
Сервис для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для сервисов IGEG (Граничный прокси) и SVPX (Сервисный прокси) |
Istio |
Platform V Synapse Service Mesh |
SSM |
2.10 |
SVPX Сервисный прокси |
Нет |
Сервис для маршрутизации и обеспечения безопасности трафика между приложениями |
Istio |
Platform V Synapse Service Mesh |
SSM |
2.10 |
IGEG Граничный прокси |
Нет |
Централизованный сервис для входа и выхода в сеть проекта Kubernetes в рамках интеграционных взаимодействий с другими АС |
Istio |
Platform V Backend |
#BD |
4.3 |
OTTS / One-Time-Password (OTP)/OTT |
Нет |
Сервис для аутентификации и авторизации межсервисных взаимодействий |
Примечание:
***
Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).
Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).
**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».
Аппаратные требования#
Для установки Аудит (AUDT) компонента требуется следующая конфигурация аппаратного обеспечения:
Характеристики аппаратных элементов вычислительной инфраструктуры (серверов) Platform V Audit SE (AUD)
# |
Элемент вычислительной инфраструктуры |
Кол-во |
CPU (core) |
RAM, GB |
Локальные диски, GB |
Сетевые интерфейсы |
|---|---|---|---|---|---|---|
1 |
Кластер Kubernetes |
1 |
20 |
30 |
- |
1 x 10 GbE |
2 |
Сервер транспортного кластера |
3 |
4 |
16 |
250 |
1 x 10 GbE |
3 |
Сервер кластера Hadoop (SDP) |
6 |
4 |
64 |
500 |
1 x 10 GbE |
Состав дистрибутива#
Элемент дистрибутива |
Описание |
|---|---|
distrib-4.9-MS/doc |
В папке лежит конфигурационный файл, необходимый для развертывания и информация по его использованию. |
distrib-4.9-MS/doc/os_props.conf |
Конфигурационный файл для установки Platform V Audit SE (AUD). |
distrib-4.9-MS/lib/licenses.zip |
Лицензионные соглашения для сторонних компонентов. |
distrib-4.9-MS/modules/audit2-admin |
Бэкенд UI. Реализует доступ к событиям безопасности, хранящимся в оперативном хранилище, метамоделям, доступ к импорту данных из архива в оперативное хранилище. |
distrib-4.9-MS/modules/audit2-client-proxy |
Обеспечивает сервисам REST API для регистрации событий с последующей передачей в подсистему транспорта (в заданные топики Kafka). |
distrib-4.9-MS/modules/audit2-controlplane |
Реализует создание тракта для движения данных (событий безопасности и вспомогательных сообщений) каждого из тенантов: передает информацию о тенантах в модуль audit2-synchronizer (откуда она поступает в топик тенантов Kafka), а также в структуры хранения SDP, для поддержки корректного транспорта данных (событий и метамоделей) в рамках тенантов. |
distrib-4.9-MS/modules/audit2-flume |
Модуль реализует классический ETL-сервис на инфраструктуре фреймворка Apache Flume, который выполняет следующие действия для функционирования Platform V Audit SE (AUD): вычитывает из Kafka опубликованные события аудита в формате json; трансформирует их, преобразуя к универсальному виду; записывает события аудита в оперативное хранилище (Solr) в формате json; записывает события аудита в архивное хранилище (HDFS) в формате avro. |
distrib-4.9-MS/modules/audit2-synchronizer |
Обеспечивает синхронизацию информации о тенантах между подсистемами Platform V Audit SE (AUD): подсистемой сбора, подсистемой хранения. Предназначен для поддержки модуля audit2-controlplane. |
distrib-4.9-MS/modules/audit2-ui |
Фронтенд UI. Реализует веб-интерфейс пользователя, представление и формирование экранных форм. Обеспечивает взаимодействие Platform V Audit SE (AUD) с Platform V IAM SE (IAM) (ППО, которое обеспечивает единую точку входа пользователей при доступе к Технологической платформе Platform V с использованием идентификации и двухфакторной аутентификации, а также обеспечивает разграничение доступа к Технологической платформе Platform V). |
distrib-4.9-MS/other/ansible |
Cкрипты для установки |
distrib-4.9-MS/other/ansible/roles/spark/files/lib/archives-spark-application.jar |
Приложение для поднятия данных из долговременного хранилища в оперативное хранилище |
distrib-4.9-MS/other/client-lib-dependencies |
Подключаемые клиентские модули для регистрации событий |
distrib-4.9-MS/other/inventory-sample |
Пример конфигурационного файла для установки компонента |
distrib-4.9-MS/other/Jenkins |
Скрипт для склейки дистрибутива из частей owned и party |
distrib-4.9-MS/other/roleModel |
Ролевые модели аудита, которые загружаются в сервис авторизации |
distrib-4.9-MS/other/utils |
Cкрипты для генерации конфигурации namespace в Kubernetes |
Рекомендуемые настройки безопасности окружения#
Общие указания#
Для реализации функций безопасности среды функционирования Platform V Audit SE (AUD) должны выполняться следующие действия:
Необходимо регулярное обновление всех сред функционирования Platform V Audit SE (AUD) до актуальных версий с применением всех необходимых патчей безопасности с официальных сайтов разработчиков сред функционирования.
Компоненты операционной системы и сред функционирования Platform V Audit SE (AUD) должны быть максимально ограничены. Компоненты, которые не участвуют в функционировании Platform V Audit SE (AUD), должны быть отключены.
Должно обеспечиваться предотвращение несанкционированного доступа к идентификаторам и паролям администраторов среды виртуализации, которые необходимы для управления и технической поддержки среды функционирования Platform V Audit SE (AUD).
Должна быть обеспечена физическая сохранность серверной платформы с установленным Platform V Audit SE (AUD) и исключение возможности физического доступа к ней посторонних лиц.
Каналы передачи данных Platform V Audit SE (AUD) должны быть либо расположены в пределах контролируемой зоны и защищены с использованием организационно-технических мер, либо, в случае их выхода за пределы контролируемой зоны, должны быть защищены путем применения средств криптографической защиты информации, сертифицированных в системе сертификации ФСБ России.
Должна быть исключена возможности использования Platform V Audit SE (AUD) для обработки информации, содержащей сведения, составляющие государственную тайну.
Должно быть обеспечено наличие администратора, отвечающего за управление (администрирование) механизмов защиты Platform V Audit SE (AUD).
Установка, конфигурирование и управление Platform V Audit SE (AUD) должны выполняться в соответствии с эксплуатационной документацией.
Должно обеспечиваться предотвращение несанкционированного доступа к идентификаторам и паролям пользователей Platform V Audit SE (AUD).
Должно обеспечиваться хранение информации о событиях безопасности в течение не менее трёх лет.
Platform V Audit SE (AUD) должно функционировать на JRE, которая прошла анализ безопасности в рамках сертификационных испытаний Platform V Audit SE (AUD), или на JRE, прошедшей испытания по соответствующему уровню контроля или более высокому в рамках сертификации по соответствующему уровню доверия, в том числе заимствованной из состава другого программного обеспечения, сертифицированного по соответствующему уровню доверия или выше.
В виртуальной машине JRE из состава среды функционирования Platform V Audit SE (AUD) должно функционировать только программное обеспечение, необходимое для штатного функционирования компонентов Platform V IAM SE (IAM) или другое ПО, сертифицированное по соответствующему уровню доверия или выше.
Для всех компонентов среды функционирования Platform V Audit SE (AUD) должны быть установлены все актуальные обновления программного обеспечения, либо приняты организационно-технические меры, направленные на исключение возможности эксплуатации уязвимостей.
На SDP (для Solr, Hbase) и Kafka должен быть настроен SSL. Подключение клиентов также должно выполняться через SSL.
Настройка брандмауэра#
Перед развертыванием Platform V Audit SE (AUD) убедитесь, что настройки брандмауэра разрешают входящие и исходящие соединения по протоколу TCP на следующих портах:
Сервис |
Порт |
|---|---|
Ambari |
8080, |
Kafka |
9092, |
Logger |
8080 |
Spark |
7077, |
Zookeeper |
2181, |
Solr |
8983, |
Hbase |
2181, |
HDFS |
111, |
Hive |
9083, |
Hue |
8888, |
Oozie |
11000, |
YARN |
8030, |
Flume |
41414 |
Rest API |
80, |
Audit UI |
80, |
SSH |
22 |
Возможные настройки ОС Альт 8 СП#
Выполните настройки операционной системы Альт 8 СП для организации безопасности. Ниже приведен рекомендуемый (необязательный) список возможных настроек. Исполнение остается на усмотрение администраторов среды функционирования:
Удалите беспарольную политику группе wheel (sudo).
Удалите разрешения setuid и setgid для всех исполняемых файлов, где они не требуются.
Настройте максимальный срок действия пароля 40 дней.
Настройте минимальный срок пароля 1 день.
Настройте предупреждение об окончании срока пароля 14 дней.
Настройте минимальную длину пароля не менее 8 символов.
Отключите поддержку USB накопителя.
Выделите администратора Linux для проведения работ по тестированию и настройке служб.
Включите службу аудита и добавьте файл с правилами. Ссылка: https://raw.githubusercontent.com/Neo23x0/auditd/master/audit.rules.
Измените следующие параметры SSH:
X11Forwarding no
MaxAuthTries 3
MaxSessions 2
PubkeyAuthentication yes
PasswordAuthentication no
ListenAddress - установите локальный IP. Сервис SSH не должен слушать сетевой интерфейс.
AllowUsers - включите этот параметр и добавьте пользователей.
Allowgroups - включите этот параметр и добавьте группу.
Отключите поддержку IPv6.
Обновите программное обеспечение.
Удалите VMware Tools.
Изложенные выше рекомендации к длине, сложности, уникальности и периодичности смены паролей должны применяться в части, не противоречащей обязательным для применения корпоративным, отраслевым, национальным или международным требованиям.
Настройки Kubernetes#
Ниже приведен рекомендуемый (необязательный) список требований безопасности к среде исполнения приложений Kubernetes. Исполнение остается на усмотрение администраторов среды функционирования:
Обеспечьте установку новых обновлений безопасности для элементов среды исполнения.
Обеспечьте регулярную синхронизацию времени от доверенных источников.
Отключите или удалите все неиспользуемые и ненужные пакеты, модули, сервисы и протоколы.
Измените, переименуйте или заблокируйте все встроенные учетные записи, включая учетную запись локального администратора (суперпользователя).
Обеспечьте разграничение доступа учетных записей пользователей (далее, УЗ) и технологических учетных записей (далее, ТУЗ) в соответствии с ролевой моделью доступа.
Используйте межсетевое экранирование для защиты хранимых данных.
Включите и настройте механизм шифрования административного доступа.
Регулярно обновляйте антивирусное программное обеспечение и обеспечьте анализ загружаемых в среду исполнения файлов на наличие вредоносного кода.
Обеспечьте статический (анализ защищенности образов) и динамический (анализ защищенности компонентов и приложений) контроль защищенности, подпись (контроль неизменности) образов по результатам проведения анализа — Vulnerability Management.
Обеспечьте сбор журналов доступа и событий безопасности для выявления инцидентов кибербезопасности — SOC Monitoring.
Контролируйте и ограничивайте вызов компонентов в целях предотвращения атак типа «отказ в обслуживании» — DoS/DDoS prevention.
Контролируйте использование компонентами технических ресурсов, чтобы обеспечить непрерывное функционирование среды исполнения - Resources monitoring.
Защищайте используемые в средах исполнения секреты от компрометации, модификации, удаления — Secret Management.
Обеспечьте поведенческий анализ с целью выявления несанкционированного доступа, превышения полномочий, наличия недекларированных возможностей путем анализа запущенных процессов: взаимодействие, использование портов, ресурсов файловой системы, обращений к ядру — Behavioral analysis.
Для обеспечения аутентифицированного доступа к REST API Audit-client-proxy и шифрования передаваемых данных, рекомендуется настроить TLS на ingress средствами Kubernetes.
Поддерживаемой системой приложений-контейнеров является Kubernetes (использование OpenShift опционально), в инструкциях по настройке, в именах переменных и параметрах системы могут встречаться названия систем контейнеризации, которые одинаковы и применимы для обеих сред контейнеризации.
Настройки Kafka и SDP#
Для настройки безопасного использования воспользуйтесь документацией компонентов Kafka и SDP.
Установка#
Установка продукта Platform V Audit SE (AUD) может осуществляться одним из способов:
Ручным способом посредством запуска скриптов Ansible;
Автоматизированным способом средствами DevOps Tools Install_EIP (PILP) продукта Platform V DevOps Tools (DOT) (опционально).
Общая информация#
При установке и настройке Platform V Audit SE (AUD) для обеспечения безопасности необходимо выполнение следующих условий:
инсталляция Platform V Audit SE (AUD) должна осуществляться на виртуальных серверах в защищенной среде виртуализации сотрудником соответствующей квалификации, имеющим права администратора с присвоенными ему идентификационными данными для работы в среде виртуализации;
действия, проводимые при инсталляции и при инициализации Platform V Audit SE (AUD), подлежат логированию с надежными метками времени;
установка и конфигурирование Platform V Audit SE (AUD) должны осуществляться в соответствии с эксплуатационной документацией;
должно обеспечиваться предотвращение несанкционированного доступа к идентификаторам и паролям пользователей Platform V Audit SE (AUD);
должно обеспечиваться предотвращение несанкционированного доступа к идентификаторам и паролям администраторов среды виртуализации, которые необходимы для установки и настройки Platform V Audit SE (AUD). В параметрах развертывания присутствуют следующие порты межсервисного взаимодействия:
KAFKA_PORT=9093
LOGGER_SERVICE_PORT=8080
SPARK_PORT=11000
ZOOKEEPER_PORT=2181
solr_port=8983
hbase_master_port=16000
hbase_worker_port=16020
hdfs_datanodes_port=50010
hdfs_namenode_port=8020 Пользователь получает доступ к REST и к UI Platform V Audit SE (AUD) по портам 80 (HTTP) или 443 (при включенном HTTPS). На рисунке приведена схема развертывания Platform V Audit SE (AUD).

Настройка Kafka#
В целевом виде в кластере Kafka должно быть не менее 3 серверов. Далее приведена конфигурация для целевого вида. По умолчанию предполагается размещение ZooKeeper и брокеров Kafka на одних и тех же машинах. В конфигурационном файле брокера Kafka server.properties, который устанавливается стандартно вместе с ПО Kafka, внесите следующие изменения:
Для параметра broker.id укажите порядковый номер сервера Kafka.
Для параметра log.dir укажите директорию для хранения данных. Пример: log.dir=/kafkadata
Для параметра zookeeper.connect перечислите все IP-адреса серверов и порты, на которых размещен ZooKeeper. Пример: zookeeper.connect=192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181
zookeeper.connection.timeout.ms = 30000
zookeeper.session.timeout.ms = 6000
Для listeners укажите протокол, IP-адрес и порт сервера брокера Kafka. Пример: listeners=SSL://192.168.0.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 укажите размещение хранилища сертификатов. Пример: ssl.keystore.location=ssl/kafkaserver.jks
Для параметра ssl.truststore.location укажите размещение доверенного хранилища сертификатов. Пример: ssl.keystore.location=ssl/kafkaserver.jks
Для параметра ssl.keystore.password укажите пароль хранилища сертификатов.
Для параметра ssl.truststore.password укажите пароль доверенного хранилища сертификатов.
Для параметра ssl.key.password укажите пароль ключа.
ssl.client.auth = required
ssl.enabled.protocols = TLSv1.2
zookeeper.ssl.client.enable=true
zookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
Для параметра zookeeper.ssl.keystore.location укажите размещение хранилища сертификатов. Пример: zookeeper.ssl.keystore.location=/opt/Apache/stores/keystore-audit-kafka.jks
Для параметра zookeeper.ssl.keystore.password укажите пароль хранилища сертификатов.
Для параметра zookeeper.ssl.truststore.location укажите размещение доверенного хранилища сертификатов. Пример: /opt/Apache/stores/truststore-audit-kafka.jks
Для параметра zookeeper.ssl.truststore.password укажите пароль доверенного хранилища сертификатов
Укажите пустое значение для параметра zookeeper.ssl.endpoint.identification.algorithm, т.е. zookeeper.ssl.endpoint.identification.algorithm =
zookeeper.ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
Для параметра super.users укажите DN сертификата для администрирования кластера Kafka. Пример: super.users = User:CN=MyCN,OU=0001,O=Issue Owner,C=RU
allow.everyone.if.no.acl.found=false
zookeeper.set.acl=true
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
replica.fetch.max.bytes = 5242880
group.max.session.timeout.ms = 300000
group.initial.rebalance.delay.ms = 3000
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
Для параметра log.retention.hours укажите значение хранения данных на Kafka в часах. Значение следует указывать на основе значений входящего потока данных и размера дисков серверов Kafka. Рекомендуемое значение log.retention.hours = 168.
log.segment.bytes = 1073741824
log.retention.check.interval.ms = 300000
log.cleaner.enable = true
offsets.retention.minutes = 43200
max.incremental.fetch.session.cache.slots = 100000
log.roll.hours = 1
queued.max.requests = 1000
message.max.bytes = 2097152
default.replication.factor = 3
min.insync.replicas = 2
log.cleaner.threads = 2
unclean.leader.election.enable = false
compression.type = snappy
Укажите пустое значение для параметра ssl.endpoint.identification.algorithm, т.е. ssl.endpoint.identification.algorithm =
Укажите пустое значение для параметра listener.name.internal.ssl.endpoint.identification.algorithm, т.е. listener.name.internal.ssl.endpoint.identification.algorithm =
Подробное описание параметров кластера Kafka можно найти в документации Apache Kafka.
Создайте топики в основном кластере Kafka согласно таблице.
Имя топика |
Дополнительные параметры топика |
|---|---|
audit-global-events; audit-global-operations; audit-global-metamodels |
Настройте максимальный размер сообщения: max.message.bytes=2097152 |
audit-client-ping-topic |
Настройте сжатие и удаление данных: retention.ms=3600000; segment.bytes=1048576; cleanup.policy=delete |
audit-metamodels-proxy |
Настройте сжатие и удаление данных: 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 |
Настройте максимальный размер сообщения: max.message.bytes=2621440 |
audit-events-errors; audit-operations-errors; audit-metamodels-errors; audit-events-proxy-errors; audit-metamodels-proxy-errors |
Настройте максимальный размер сообщения: max.message.bytes=3145728 |
ssp-audit-topic; ssp-response-topic; audit-tenants-sync |
Дополнительные параметры отсутствуют |
Если кластер Platform V Corax используется для экспорта данных, создайте в нем топики согласно таблице.
Имя топика |
Дополнительные параметры топика |
|---|---|
audit-export-events-topic; audit-export-operations-topic |
Настройте максимальный размер сообщения: max.message.bytes=2621440 |
В качестве кластера Kafka для экспорта данных может использоваться основной кластер Platform V Corax или отдельностоящий кластер Platform V Corax.
Настройка элементов кластера Hadoop (SDP)#
Настройка HDFS#
Установите параметры:
Replication Factor = 3
Java Heap Size of Balancer in Bytes = 1 GiB
Java Heap Size of DataNode in Bytes = 1 GiB
Maximum Memory Used for Caching = 2 GiB
Client Java Heap Size in Bytes = 128 MiB
Java Heap Size of HttpFS in Bytes = 256 MiB
Java Heap Size of NameNode in Bytes = 4 GiB
Java Heap Size of Secondary NameNode in Bytes = 4 GiB
Default Umask = 002
Настройка HBase#
Установите параметры:
Client Java Heap Size in Bytes = 256 MiB
Java Heap Size of HBase REST Server in Bytes = 512 MiB
Java Heap Size of HBase Thrift Server in Bytes = 512 MiB
Java Heap Size of HBase Master in Bytes = 1 GiB
Java Heap Size of HBase RegionServer in Bytes = 4 GiB
Настройка Hive#
Установите параметры:
Client Java Heap Size in Bytes = 128 MiB
Java Heap Size of Hive Metastore Server in Bytes = 1 GiB
Java Heap Size of HiveServer2 in Bytes = 1 GiB
В HiveServer2 Advanced Configuration Snippet (Safety Valve) for hive-site.xml добавьте три настройки (для поддержки транзакционности) нажатием на +: a. Настройка 1: Name: hive.txn.manager Value: org.apache.hadoop.hive.ql.lockmgr.DbTxnManager Description: Used for Hive Streaming b. Настройка 2: Name: hive.compactor.initiator.on Value: true Description: Used for Hive Streaming c. Настройка 3: Name hive.compactor.worker.threads Value: 5 Description Used for Hive Streaming
Настройка Solr#
Установите параметры:
Java Heap Size of Solr Server in Bytes = 4 GiB
Java Direct Memory Size of Solr Server in Bytes = 2 GiB
При нестабильной работе Solr на больших объемах данных эти параметры следует увеличивать в два раза пока не будет достигнута стабильность в работе Solr. При этом нужно следить за тем, чтобы сумма параметров Java Heap Size всех сервисов SDP, установленных на сервере, не превышала объем оперативной памяти.
Настройка ZooKeeper#
Установите параметры: Java Heap Size of ZooKeeper Server in Bytes = 4 GiB
Настройка YARN#
Установите параметры:
ApplicationMaster Memory = 1 GiB
ApplicationMaster Java Maximum Heap Size = 768 MiB
Map Task Memory = 1 GiB
Reduce Task Memory = 1 GiB
Map Task Maximum Heap Size = 768 MiB
Reduce Task Maximum Heap Size = 768 MiB
Client Java Heap Size in Bytes = 768 MiB
Java Heap Size of JobHistory Server in Bytes = 1 GiB
Java Heap Size of NodeManager in Bytes = 256 MiB
Container Memory = 8 GiB
Container Virtual CPU Cores = 4
Java Heap Size of ResourceManager in Bytes = 1 GiB
Container Memory Minimum = 0 GiB
Container Memory Increment = 128 MiB
Container Memory Maximum = 2 GiB
Настройка Oozie#
Установите параметр: Java Heap Size of Oozie Server in Bytes = 256 MiB
Порядок установки#
Подготовка дистрибутива Platform V Audit SE (AUD)#
Перед установкой Platform V Audit SE (AUD) необходимо настроить Jenkins freestyle job и выполнить её. Для этого создайте Jenkins freestyle job и укажите в pipeline использование файла consolidate-united-distributive.groovy из состава дистрибутива Platform V Audit SE (AUD). Данный файл может находиться в внутри архива consolidate-united-distrib.zip, внутри которого также содержится файл README.md с описанием параметров groovy-скрипта.
Установка компонентов в кластере Hadoop (SDP)#
Обновление компонентов Platform V Audit SE (AUD), размещенных в кластере Hadoop (SDP) происходит с помощью ansible-скриптов из состава дистрибутива Platform V Audit SE (AUD). Скрипты размещены в дистрибутиве по пути distrib-4.9-MS/other/ansible.
Пререквизиты обновления в кластере Hadoop (SDP)#
Перед самой первой установкой Platform V Audit SE (AUD) на кластере Hadoop (SDP) запустите скрипты из дистрибутива:
Для подготовки структуры директорий на HDFS запустите скрипт audit-prerequisites-hdfs.sh.
Пример команды:sh distrib-4.9-MS/other/ansible/audit-prerequisites-hdfs.sh ANSIBLE_USER
где ANSIBLE_USER - ssh-пользователь, под которым будет происходить работа ansible и который входит в состав группы администраторов HDFS - supergroup.
Важно! При работе скриптов иногда требуется чистка директории audit_resources, поэтому требуется, чтобы на HDFS существовала домашняя директория у пользователя ANSIBLE_USER.Для выполнения настроек в Linux на всех серверах кластера Hadoop (SDP) выполнить скрипт audit-prerequisites-node.sh. Пример команды:
sh distrib-4.9-MS/other/ansible/audit-prerequisites-node.sh ANSIBLE_USERпричем команда должна выполняться в режиме sudo.
При последующих обновлениях Platform V Audit SE (AUD) на кластере Hadoop (SDP) шаги из данного раздела выполнять не требуется.
Подготовка к обновлению в кластере Hadoop (SDP)#
Перед запуском ansible-скриптов для обновления компонентов Platform V Audit SE (AUD) в кластере Hadoop (DSP) необходимо скопировать из дистрибутива всю структуру директории distrib-4.9-MS/other/inventory-sample и заполнить в файлах ambari-environment.yml и ambari-vault.yml стендозависимые параметры.
Ansible-скрипты рассчитаны только на работу с inventory-файлами, созданными по образцу поставляемых в дистрибутиве по пути distrib-4.9-MS/other/inventory-sample.
Список inventory-файлов и параметров в них
Файл |
Параметр |
|---|---|
ambari-environment.yml |
data_center_id |
ambari_server |
|
ambari_server_port |
|
ambari_cluster |
|
kerberos_enabled |
|
service_status_pause_timer |
|
hive_host |
|
hive_port |
|
solr_endpoint |
|
solr_shards |
|
solr_replicas |
|
solr_max_shards |
|
days_for_data_save |
|
ambari-vault.yml |
vault_ansible_user |
vault_ansible_password |
|
vault_ambari_user |
|
vault_ambari_password |
|
vault_kerberos_hdfs_user |
|
vault_kerberos_hdfs_password |
|
vault_kerberos_hive_user |
|
vault_kerberos_hive_password |
|
vault_hive_principal |
|
vault_kerberos_hbase_user |
|
vault_kerberos_hbase_password |
|
vault_kerberos_solr_user |
|
vault_kerberos_solr_password |
|
vault_solr_principal |
|
tasks-enabler.yml |
hide_logs |
cleanup_hive |
|
cleanup_hbase |
|
cleanup_solr |
Ручное обновление в кластере Hadoop (SDP)#
Выполните обновление схем данных в хранилищах Hive, Solr, Hbase посредством запуска ansible-скриптов из директории дистрибутива distrib-4.9-MS/other/ansible с помощью команды:
ansible-playbook /path/to/audit-ambari-update.yml -i /path/to/inventory, где /path/to/inventory - путь до директории inventory-файлов, созданных по инструкции, описанной в разделе Подготовка.
Автоматическое обновление в кластере Hadoop (SDP) (опционально)#
В компоненте PILP Install_EIP необходимо:
Разместить структуру файлов, созданных по инструкции в разделе Подготовка, в репозитории конфигурации компонента PILP Install_EIP.
Добавить шаг запуска ansible-playbook в файле STAND_NAME/AUDIT_DIR/actions.xml с указанием пути до структуры с inventory-файлами.
Выполнить шаг для запуска соответствующего ansible-playbook.
Установка компонентов в Kubernetes#
Ручное обновление компонентов в Kubernetes#
Для ручного обновления требуется:
Иметь возможность запускать bash-скрипты (.sh).
Локально установленную и настроенную утилиту kubectl (настройка описана ниже в разделе Настройка утилиты kubectl).
Скрипт
deploy-k8s.sh, автоматизирующий работу со стендозависимыми параметрами (текст скрипта приведен далее, в разделе Запуск скрипта deploy-k8s.sh).Заполнить в файле, поставляемом в дистрибутиве по пути
distrib-4.9-MS/doc/os_props.conf, параметры приложений, развертываемых в Kubernetes. Путь до этого файла указывается при запуске скриптаdeploy-k8s.shчерез параметр--param-file.Скопировать из дистрибутива все файлы из директории
distrib-4.9-MS/modules/<module_name>/certsи разместить в одной директории. Заполнить сертификатами и паролями сертификатов все директории. Путь до этой директории указывается при запуске скриптаdeploy-k8s.shчерез параметр--secrets-dir.
Настройка утилиты kubectl
Для работы с Kubernetes через командную строку, необходимо установить утилиту kubectl и настроить ее для работы с кластером Kubernetes:
Прописать реквизиты кластера
kubectl config set-cluster <cluster_config_name> --server=https://K8S_ip_address_or_FQDN:6443 --insecure-skip-tls-verifyПрописать учетную запись для подключения к кластеру
kubectl config set-credentials <user_config_name> --token=<TOKEN>где <TOKEN> это автоматически сгенерированный логин-токен для вашего сервис-аккаунта. Найти его можно в описание самого сервис-аккаунта. Он прописан как секрет, с именем "<service_account_name>-token-<случайная последовательность символов>". Из этого секрета нужно скопировать содержимое поля token и указать вместо <TOKEN>.Создать контекст "Context" - информации об адресе подключения и учетных данных:
kubectl config set-context <context_config_name> --namespace=<k8s_namespace_name> --cluster=<cluster_config_name> --user=<user_config_name>Включить использование контекста для всех выполняемых команд:
kubectl config use-context <context_config_name>Проверить конфигурацию с помощью команды:
kubectl config viewПроверить какой контекст сейчас используется можно с помощью команды:
kubectl config current-context
Запуск скрипта deploy-k8s.sh
Для запуска скрипта deploy-k8s.sh выполните команду, указав значения параметров --param-file, --secrets-dir, --create-secrets:
sh deploy-k8s.sh --distrib-dir /path/to/distrib --param-file /path/to/param_file --secrets-dir /path/to/secrets_dir --create-secrets true
В таблице приведено описание параметров скрипта deploy-k8s.sh:
Параметр (флаг) |
Описание |
Значение по умолчанию |
|---|---|---|
–distrib-dir |
путь к дистрибутиву Platform V Audit SE (AUD) |
отсутствует |
–param-file |
путь к файлу параметров (os_props.conf) |
…/inventories/kubernetes/os_props_dzo.conf |
–templates-dir |
путь к директории с template Ingress/Egress |
…/inventories/kubernetes/templates/ |
–secrets-dir |
путь к директории с файлами, из которых необходимо создать secret |
…/inventories/kubernetes/certs/ |
–configs-dir |
путь к директории с файлами, из которых необходимо создать configMap |
…/inventories/kubernetes/configs/ |
–create-secrets |
При значении true включает создание secret в Kubernetes |
false |
–create-configs |
При значении true включает создание configMap в Kubernetes |
false |
–create-templates |
При true включает создание template в Kubernetes |
false |
–modules |
список модулей Platform V Audit SE (AUD), которые будут установлены в Kubernetes |
audit2-admin,audit2-ui,audit2-flume,audit2-client-proxy,audit2-synchronizer,audit2-controlplane |
–ignore |
список файлов, которые будут проигнорированы (скрипт удаляет их перед шагом установки) |
Текст скрипта deploy-k8s.sh:
#!/bin/bash
BUILD_DIR=build
# Default values
PARAM_FILE=../inventories/kubernetes/k8s-props.conf
TEMPLATES_DIR=../inventories/kubernetes/templates/
SECRETS_DIR=../inventories/kubernetes/certs/
CONFIGS_DIR=../inventories/kubernetes/configs/
CREATE_SECRETS=false
CREATE_CONFIGS=false
CREATE_TEMPLATES=false
DEPLOYED_MODULES="audit2-admin,audit2-ui,audit2-flume,audit2-client-proxy,audit2-synchronizer,audit2-controlplane"
IGNORED_FILES="virtualservice-ingress.yml,\
virtualservice-ingress-mtls.yml,\
audit2-ui-route.yml,\
audit2-synchronizer-route.yml,\
audit2-controlplane-route.yml,\
audit2-client-proxy-route.yml,\
audit2-admin-route.yml,\
deployment-metamodel-avro-kafka-v5-to-kafka-v6-converter-template.yaml,\
configmap-metamodel-avro-kafka-v5-to-kafka-v6-converter-template.yaml,\
deployment-events-avro-kafka-v5-to-kafka-v6-converter-template.yaml,\
configmap-events-avro-kafka-v5-to-kafka-v6-converter-template.yaml,\
deployment-pkb-events-avro-kafka-to-external-kafka-template.yaml,\
configmap-pkb-events-avro-kafka-to-external-kafka-template.yaml,\
deployment-pkb-events-kafka-to-external-kafka-template.yaml,\
configmap-pkb-events-kafka-to-external-kafka-template.yaml,\
deployment-simple-events-kafka-to-hbase-template.yaml,\
configmap-simple-events-kafka-to-hbase-template.yaml"
usage() {
echo "Usage: $0 --distrib-dir /path/to/distrib [ OPTIONS ]"
echo ""
echo "Options:"
echo " -h : Print this usage guide"
echo " --distrib-dir : Path to audit distribution"
echo " --param-file : Path to parameters file | Default value: $PARAM_FILE"
echo " --templates-dir : Path to custom templates directory | Default value: $TEMPLATES_DIR"
echo " --secrets-dir : Path to secrets directory | Default value: $SECRETS_DIR"
echo " --configs-dir : Path to configMaps directory | Default value: $CONFIGS_DIR"
echo " --create-secrets : Enables secret creation (true/false) | Default value: $CREATE_SECRETS"
echo " --create-configs : Enables configMaps creation (true/false) | Default value: $CREATE_CONFIGS"
echo " --create-templates: Enables custom templates creation (true/false) | Default value: $CREATE_TEMPLATES"
echo " --modules : List of audit modules ('module1,module2,module3') | Default value: $DEPLOYED_MODULES"
echo " --ignore : List of ignored files ('file1,file2,file3') | Default value: $IGNORED_FILES"
exit 1
}
if [[ $# -eq 0 ]] ; then
usage
exit 0
fi
while [[ $# -gt 0 ]]; do
case "$1" in
-h) usage;;
--distrib-dir) shift; DISTRIB_PATH=$1;;
--param-file) shift; PARAM_FILE=$1;;
--templates-dir) shift; TEMPLATES_DIR=$1; echo "Used templates dir: $TEMPLATES_DIR";;
--secrets-dir) shift; SECRETS_DIR=$1; echo "Used secrets dir: $SECRETS_DIR";;
--configs-dir) shift; CONFIGS_DIR=$1; echo "Used configMaps dir: $CONFIGS_DIR";;
--modules) shift; DEPLOYED_MODULES=$1;;
--ignore) shift; IGNORED_FILES=$1;;
--create-secrets) shift; CREATE_SECRETS=$1;;
--create-configs) shift; CREATE_CONFIGS=$1;;
--create-templates) shift; CREATE_TEMPLATES=$1;;
*) usage;;
esac
shift
done
DISTRIB_MODULES=$(find $DISTRIB_PATH/modules/ -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
FLUME_MODULES=$(find $DISTRIB_PATH/modules/audit2-flume/configs/ -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
function copyManifests {
echo ""
echo "============ COPYING MANIFESTS ==========="
for module_name in $DISTRIB_MODULES; do
if [ "$module_name" == "audit2-flume" ]; then
for flume_module in $FLUME_MODULES; do
mkdir -p $BUILD_DIR/$module_name/
echo "---- Copying $module_name/$flume_module manifests ----"
cp $DISTRIB_PATH/modules/$module_name/configs/$flume_module/*.yaml $BUILD_DIR/$module_name
done
else
mkdir -p $BUILD_DIR/$module_name
echo "---- Copying $module_name manifests ----"
cp $DISTRIB_PATH/modules/$module_name/configs/*.yml $BUILD_DIR/$module_name
fi
done
if $CREATE_TEMPLATES; then
mkdir -p $BUILD_DIR/templates
cp $TEMPLATES_DIR/* $BUILD_DIR/templates
fi
}
function removeIgnoredFiles {
echo ""
echo "============ REMOVING IGNORED MANIFESTS ==========="
while IFS=',' read -ra FILES_TO_REMOVE; do
for removed_file in "${FILES_TO_REMOVE[@]}"; do
echo "---- Removing $removed_file ----"
find $BUILD_DIR -type f -name $removed_file -delete
done
done <<< "$IGNORED_FILES"
}
function createSecrets {
echo ""
echo "============ CREATING SECRETS ==========="
mkdir -p $BUILD_DIR/secrets
for secret_name in `ls $SECRETS_DIR`; do
echo "---- Creating Secret file $secret_name ----"
kubectl create secret generic $secret_name \
--from-file=$SECRETS_DIR/$secret_name/ \
--dry-run=client \
-o yaml >> $BUILD_DIR/secrets/$secret_name.yml
done
}
function createConfigMaps {
mkdir -p $BUILD_DIR/configmaps
echo ""
echo "============ CREATING CONFIGMAPS ==========="
for configmap_name in `ls $CONFIGS_DIR`; do
echo "--- Creating ConfigMap file $configmap_name ----"
kubectl create configmap $configmap_name \
--from-file=$CONFIGS_DIR/$configmap_name/ \
--dry-run=client \
-o yaml >> $BUILD_DIR/configmaps/$configmap_name.yml
done
}
function processPlaceholders {
echo ""
echo "============ PROCESS PLACEHOLDERS ==========="
# Read with:
# IFS (Field Separator) =
# -d (Record separator) newline
# first field before separator as key
# second field after separator and reminder of record as value
while IFS='=' read -d $'\n' -r key value; do
# Skip lines starting with sharp or lines containing only space or empty lines
[[ "$key" =~ ^([[:space:]]*|[[:space:]]*#.*)$ ]] && continue
echo "Replacing parameter $key with value = $value"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
# RHEL
find $BUILD_DIR -type f -exec sed -i "s|\${$key}|$value|g" {} \;
else
# MacOS
find $BUILD_DIR -type f -exec sed -i '' "s|\${$key}|$value|g" {} \;
fi
done < $PARAM_FILE
}
function replaceIstioName {
local old_istio_name="istiod-basic"
local new_istio_name="istiod-common-install"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
# RHEL
find $BUILD_DIR -type f -exec sed -i "s|$old_istio_name|$new_istio_name|g" {} \;
else
# MacOS
find $BUILD_DIR -type f -exec sed -i '' "s|$old_istio_name|$new_istio_name|g" {} \;
fi
}
function deployToK8S {
local path_to_manifests=$1
find $path_to_manifests -type f -exec kubectl apply -f {} \;
# find $path_to_manifests -type f -exec echo {} \;
}
rm -r $BUILD_DIR
copyManifests
removeIgnoredFiles
createSecrets
createConfigMaps
processPlaceholders
replaceIstioName
echo ""
echo "============ APPLY MODULES MANIFESTS ==========="
for module_name in $DISTRIB_MODULES; do
if [[ $DEPLOYED_MODULES == *"$module_name"* ]];
then
echo "--- Apply module $module_name manifests ----"
deployToK8S $BUILD_DIR/$module_name
else
echo "--- Skip apply module $module_name manifests ----"
fi
done
if $CREATE_SECRETS; then
echo ""
echo "============ APPLY SECRETS ==========="
deployToK8S $BUILD_DIR/secrets
fi
if $CREATE_CONFIGS; then
echo ""
echo "============ APPLY CONFIGMAPS ==========="
deployToK8S $BUILD_DIR/configmaps
fi
if $CREATE_TEMPLATES; then
echo ""
echo "============ APPLY CUSTOM TEMPLATES ==========="
deployToK8S $BUILD_DIR/templates
fi
Автоматическое обновление компонентов в Kubernetes (опционально)#
Шаг 1.#
В файл конфигурации PILP Install_EIP STAND_NAME/AUDIT_DIR/os_yaml_dirs.conf внести список директорий с модулями Platform V Audit SE (AUD), которые предназначены для установки в Kubernetes:
distrib-4.9-MS/modules/audit2-client-proxy/configs
distrib-4.9-MS/modules/audit2-admin/configs
distrib-4.9-MS/modules/audit2-controlplane/configs
distrib-4.9-MS/modules/audit2-synchronizer/configs
distrib-4.9-MS/modules/audit2-ui/configs
distrib-4.9-MS/modules/audit2-flume/configs/common
distrib-4.9-MS/modules/audit2-flume/configs/events-avro-kafka-to-external-kafka
distrib-4.9-MS/modules/audit2-flume/configs/events-kafka-to-external-kafka
distrib-4.9-MS/modules/audit2-flume/configs/events-kafka-to-hive
distrib-4.9-MS/modules/audit2-flume/configs/events-kafka-to-hive-proxy
distrib-4.9-MS/modules/audit2-flume/configs/events-kafka-to-solr
distrib-4.9-MS/modules/audit2-flume/configs/events-kafka-to-solr-proxy
distrib-4.9-MS/modules/audit2-flume/configs/invalid-events-kafka-to-hbase
distrib-4.9-MS/modules/audit2-flume/configs/invalid-events-kafka-to-hbase-proxy
distrib-4.9-MS/modules/audit2-flume/configs/invalid-metamodel-kafka-to-hbase
distrib-4.9-MS/modules/audit2-flume/configs/invalid-metamodel-kafka-to-hbase-proxy
distrib-4.9-MS/modules/audit2-flume/configs/invalid-operation-kafka-to-hbase
distrib-4.9-MS/modules/audit2-flume/configs/metamodel-kafka-to-hbase
distrib-4.9-MS/modules/audit2-flume/configs/metamodel-kafka-to-hbase-proxy
distrib-4.9-MS/modules/audit2-flume/configs/operation-kafka-to-external-kafka
distrib-4.9-MS/modules/audit2-flume/configs/operation-kafka-to-hbase
Шаг 2.#
В файл конфигурации PILP Install_EIP STAND_NAME/AUDIT_DIR/os_ignore.conf внести список файлов, игнорируемых при развертывании:
parameters.conf
audit2-client-proxy-route.yml
audit2-admin-route.yml
audit2-controlplane-route.yml
audit2-synchronizer-route.yml
audit2-ui-route.yml
virtualservice-ingress.yml
virtualservice-ingress-mtls.yml
Эти файлы необходимы только при развертывании компонентов в отдельном namespace.
Шаг 3.#
Необходимо скопировать из дистрибутива все директории из distrib-4.9-MS/modules/MODULE_NAME/configs/certs (для сервисов обработки соответственно distrib-4.9-MS/modules/audit-cloud-flume/configs/common/certs) в директорию конфигурации EIP STAND_NAME/AUDIT_DIR/openshift.
Сервисы обработки
events-kafka-to-solr
events-kafka-to-hive
operation-kafka-to-hbase
metamodel-kafka-to-hbase
invalid-events-kafka-to-hbase
invalid-operation-kafka-to-hbase
invalid-metamodel
events-kafka-to-solr-proxy
events-kafka-to-hive-proxy
metamodel-kafka-to-hbase-proxy
invalid-events-kafka-to-hbase-proxy
invalid-metamodel-kafka-to-hbase-proxy
events-avro-kafka-to-external-kafka
events-kafka-to-external-kafka
operation-kafka-to-external-kafka
Шаг 4.#
Заполните в PILP Install_EIP в директории STAND_NAME/AUDIT_DIR/openshift все вложенные файлы с сертификатами и паролями от них, после чего зашифруйте их с помощью утилиты ansible-vault. Внимание! Менять названия папок и файлов запрещено, потому что это приведет к некорректной установке компонентов.
Шаг 5.#
Замените в PILP Install_EIP файл конфигурации STAND_NAME/AUDIT_DIR/os_props.conf файлом из дистрибутива distrib-4.9-MS/doc/os_props.conf и заполните его стендозависимыми значениями. Файл os_props.conf содержит все параметры всех модулей Platform V Audit SE (AUD), которые предназначены для установки в Kubernetes. Примечание: Дублирующиеся параметры закомментированы, а не удалены для того, чтобы было понятно, в конфигурацию какого модуля они попадают.
Шаг 5.1 - Настройка параметров журналирования в компоненте Журналирование (LOGA) продукта Platform V Monitor (OPM)
По умолчанию, сведения о работе Platform V Audit SE (AUD) сохраняются локально в журналах подов в Kubernetes. Чтобы обеспечить централизованное хранение и доступ к журналам при помощи компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), внесите следующие настройки в конфигурационный файл os_props.conf.
В разделе AUDIT-CLIENT-PROXY:
LOGGER_SERVICE_HOSTNAME="стендо-зависимое имя домена, назначенное поду с установленным компонентом Журналирование (LOGA) продукта Platform V Monitor (OPM)"
LOGGER_SIDECAR_IMAGE="стендо-зависимый URL к репозиторию в Nexus, где находится вспомогательное приложение sidecar, ответственное за сбор локальных журналов и отправку их в компонент Журналирование (LOGA) продукта Platform V Monitor (OPM)"
LOGGER_SERVICE_PORT="8080"
За более детальной информацией обратитесь к документации для компонента Журналирование (LOGA) продукта Platform V Monitor (OPM).
Шаг 5.2 - Настройка параметров для инструментов аутентификации и авторизации Platform V IAM SE (IAM)
Для подключения к компонентам AUTH и AUTZ аутентификации и авторизации Platform V IAM SE (IAM), внесите следующие настройки в конфигурационный файл os_props.conf, в раздел AUDIT-CLOUD-ADMIN:
OSA_BASE_URL="URL, по которому расположена развернутая служба аутентификации и авторизации Platform V IAM SE (IAM)"
IAM_AUTH_PUBLICKEY_LOCATIONS="URL, по которым расположены публичные ключи к сертификатам безопасности"
За более детальной информацией обратитесь к документации сервиса Platform V IAM SE (IAM).
Шаг 6.#
Запустите задачу в PILP Install_EIP для обновления компонентов Platform V Audit SE (AUD) в Kubernetes.
Обновление Platform V Audit SE (AUD)#
Обновление Platform V Audit SE (AUD) включает в себя два основных этапа:
Обновление компонентов Platform V Audit SE (AUD) в кластере Hadoop (SDP). На этом этапе выполняются перереквизиты и обновляются схемы данных.
Обновление приложений Platform V Audit SE (AUD) в Kubernetes. Используется стратегия обновления Rolling Update, обязывающая Kubernetes поднимать контейнеры с новой версией, и при успешном подъеме удалять старую версию приложения
Сценарий обновления полностью совпадает со сценарием установки с нуля, который приведен в разделе Порядок установки этого документа.
Удаление#
Для удаления компонентов Platform V Audit SE (AUD), выполните следующие действия:
Удалите из Kubernetes ресурсы, содержащие слово audit в имени. Список используемых ресурсов:
ConfigMap
Sidecar
ServiceEntry
DestinationRule
Gateway
VirtualService
Service
EnvoyFilter
Deployment
Route
DeploymentConfig
Удалите на всех серверах кластера Hadoop (SDP) директорию /var/sbt/audit.
Очистите хранилища данных в кластере Hadoop (SDP):
Удалите папки на HDFS с помощью команды
hdfs dfs -rm -r /events_avro /events_proxy_avro /audit_resources.Удалите таблицы в Hbase: audit_data, audit_operations, audit_metamodels, audit_invalid_events, audit_invalid_operations, audit_invalid_metamodels, audit_proxy_invalid_events, audit_proxy_invalid_metamodels, pkb_filters, ip_data_mart.
Удалите коллекцию audit_events в Solr. Для выполнения этого шага можно запустить ansible-скрипт из состава дистрибутива Platform V Audit SE (AUD)
do-not-use-in-prom-audit-cleanup.yml, указав в inventory-файле значение для переменной days_for_data_save=0.
Для удаления данных с транспортного компонента Kafka удалите директорию $KAFKA_DATA с серверов, на которых размещен транспортный компонент Kafka.
Проверка работоспособности#
Открыть UI Platform V Audit SE (AUD) и выполнить поиск. Убедиться, что поиск выполнился без ошибок.
Подождать несколько минут и повторить поиск в режиме Lucene за текущие сутки по критерию
module:audit. Убедиться, что в событиях присутствует запись о поиске в Аудите (п.2.).Зайти в Ambari Web и проверить состояние сервисов.
Убедиться, что после обновления в логах сервисов обработки отсутствуют записи с уровнем ERROR и WARN.
Проверить работоспособность прокси-приложения. Для этого выполнить (требуется наличие на машине предустановленного сертификата, подписанного удостоверяющим центром):
curl --header "Content-type: application/json" --header "X-Node-ID: MY_FQDN" --cacert ./ca.crt --key ./mycertificate_key.key --cert ./mycertificate.cer --request POST --url https://SERVER_PROXY_AUDIT/v1/event -v -k -d "json"Ожидаемый ответ, подтверждающий работоспособность прокси-приложения:
{"code":"400.1","message":"Validation error, uuid_error = 4e245634-d23a-4a4f-99e5-664d8eb494d9","description":"name: must not be null, metamodelVersion: must not be null, userLogin: must not be null, module: must not be null, userNode: must not be null, createdAt: must not be null"}
Откат#
Внимание! Если Platform V Audit SE (AUD) функционирует штатно, то откат к предыдущей версии не требуется. Влияния на работу клиентских модулей более старых версий, пишущих в Platform V Audit SE, не будет. Данные, поступающие от модулей в Platform V Audit SE, будут регистрироваться корректно, так как Platform V Audit SE поддерживает обратную совместимость на несколько версий.
Platform V Audit SE состоит из пяти частей, которые могут разворачиваться отдельно друг от друга:
Клиентский модуль (audit-client-core2, audit2-client-core, audit2-api, audit2-proxy-client-OTT, audit2-proxy-client).
UI (audit2-ui, audit2-admin, audit2-synchronizer, audit2-controlplane).
Структуры хранения (archives-spark-application).
Прокси-приложение (audit2-client-proxy).
Сервисы обработки (events-avro-kafka-to-external-kafka, events-kafka-to-external-kafka,events-kafka-to-hive,events-kafka-to-hive-proxy,events-kafka-to-solr,events-kafka-to-solr-proxy,invalid-events-kafka-to-hbase,invalid-events-kafka-to-hbase-proxy,invalid-metamodel-kafka-to-hbase,invalid-metamodel-kafka-to-hbase-proxy,invalid-operation-kafka-to-hbase,metamodel-kafka-to-hbase,metamodel-kafka-to-hbase-proxy, operation-kafka-to-external-kafka, operation-kafka-to-hbase)
Откат схем данных не предусмотрен. UI и прокси-приложение откатываются путем удаления из Kubernetes ресурсов, содержащих слово audit в имени, и переустановкой модулей из предыдущих версий Platform V Audit SE (AUD). Клиентский модуль откатывается средствами отката той системы, в которой клиентский модуль используется для регистрации событий в Platform V Audit SE (AUD).
Часто встречающиеся проблемы и пути их устранения#
Не зафиксировано часто встречающихся проблем при установке.
При возникновении проблем рекомендуется просмотреть логи. Логирование всех процессов работы Platform V Audit SE (AUD) ведется средствами Hadoop (SDP) и Kubernetes. Просмотр логов Hadoop (SDP) доступен через интерфейс Apache Ambari. Примеры типовых ошибок из логов вы можете посмотреть в Руководстве администратора, разделе Рекомендации при ошибках и сбоях Platform V Audit SE (AUD).
Чек-лист валидации установки#
После установки (обновления версии) необходимо выполнить следующие действия, чтобы убедиться в успешности обновления:
Зайти в Kubernetes и убедиться, что подняты модули UI (audit2-ui, audit2-admin, audit2-synchronizer, audit2-controlplane), прокси-приложение (audit2-client-proxy), сервисы обработки (events-avro-kafka-to-external-kafka, events-kafka-to-external-kafka, events-kafka-to-hive, events-kafka-to-hive-proxy, events-kafka-to-solr, events-kafka-to-solr-proxy, invalid-events-kafka-to-hbase, invalid-events-kafka-to-hbase-proxy, invalid-metamodel-kafka-to-hbase, invalid-metamodel-kafka-to-hbase-proxy, invalid-operation-kafka-to-hbase, metamodel-kafka-to-hbase, metamodel-kafka-to-hbase-proxy, operation-kafka-to-external-kafka, operation-kafka-to-hbase). Для этого необходимо перейти в кластер Kubernetes и перейти во вкладку Deployments. Убедитесь, что в списке
Deploymentsприсутствуют перечисленные модули. Убедитесь, что в столбцеLabelsпараметрapp.versionравен версии установленного дистрибутива. Зайдите в каждый Deployment на вкладкуReplicaSetsи убедитесь, что активные Pods (столбецStatus) есть только у последней реплики (столбецCreated).Убедиться, что в Solr появилась коллекция audit-events. Для этого воспользуйтесь утилитой Solr Server Web UI из состава SDP.
Убедиться, что в Hbase создана схема данных audit:audit_metamodels. Для этого воспользуйтесь интерфейсом Apache Ambari, перейдя в нем на сервис Hbase.
Убедиться, что на HDFS созданы директории /events_avro и /events_proxy_avro. Для этого зайдите на сервер с установленным HDFS и выполните команду для просмотра директорий на HDFS.
Убедиться, что на HDFS размещен файл /audit_resources/spark/lib/archives-spark-application.jar.