GrantForge

    Плагины

    Apache ZooKeeper

    Установка и настройка плагина ZooKeeper, просмотр znode и управление политиками доступа к путям znode.

    Плагин Apache ZooKeeper обеспечивает в GrantForge подключение к ансамблям, поиск путей znode и управление политиками. Идентификатор плагина и тип сервиса — zookeeper.

    Установка

    Дистрибутив содержит плагин в plugins/zookeeper. Убедитесь в разделе Управление платформой → Плагины, что zookeeper включён; после обновления повторно просканируйте каталог плагинов. Плагин использует клиент ZooKeeper 3.9 в собственном загрузчике классов, отдельно от библиотек сервера.

    Добавление сервиса данных

    1. Откройте Права на данные → Сервисы данных, добавьте сервис и выберите ZooKeeper (zookeeper).
    2. Укажите строку подключения: серверы ансамбля с необязательным chroot, например zk1:2181,zk2:2181,zk3:2181/kafka. Клиент сам переключается между серверами.
    3. Выберите аутентификацию, задайте znode для поиска и проверьте подключение (проверяется, что znode существует и его дочерние узлы можно перечислить), затем сохраните сервис.
    Параметр Назначение
    zookeeper.connect Обязательная строка подключения: host[:port] через запятую, при необходимости с /chroot; chroot не может оканчиваться на /
    authentication none (по умолчанию), digest или kerberos
    username Digest: пользователь digest из ACL (без двоеточия); Kerberos: principal, например grantforge@EXAMPLE.COM
    password Пароль пользователя digest; хранится в зашифрованном виде
    keytab Kerberos: путь к keytab principal на сервере GrantForge
    zookeeper.sasl.client.username Kerberos: первая часть principal серверов, по умолчанию zookeeper, как в zookeeper/<host>@<REALM>
    zookeeper.server.principal Kerberos: полный principal серверов, если он другого вида, например zookeeper/zk.example.com@EXAMPLE.COM
    zookeeper.client.secure Подключаться ли к TLS-порту клиентов серверов, по умолчанию false
    zookeeper.ssl.trustStore.location / .password / .type Хранилище доверенных сертификатов для проверки серверов; пустое — доверять тому, чему доверяет Java сервера; тип jks, pkcs12 или pem
    zookeeper.ssl.keyStore.location / .password / .type Хранилище ключей с клиентским сертификатом для серверов, которые его требуют
    session.timeout.ms Тайм-аут сеанса, по умолчанию 15000, диапазон 2000..120000
    connection.timeout.ms Ожидание только первоначального подключения и аутентификации, по умолчанию 10000 мс, диапазон 1000..60000; не ограничивает последующие синхронные запросы
    request.timeout.ms Максимальное ожидание одного синхронного запроса, по умолчанию 8000 мс, диапазон 1000..60000
    lookup.path Начальный znode для поиска и просмотра внутри chroot, по умолчанию /; например /brokers, просмотр ограничен им
    lookup.max.entries Максимум дочерних узлов, читаемых из одного znode за раз, по умолчанию 10000, диапазон 1..100000

    Аутентификация

    • none: без входа; читаются только znode, ACL которых открыт для world:anyone.
    • digest: вход как username:password, что соответствует идентичностям digest в ACL ZooKeeper. Неверный пароль не отклоняется при входе: это другая идентичность, и защищённые znode показываются как доступ запрещён.
    • kerberos: вход по SASL с keytab; krb5.conf сервера должен указывать на KDC. Каждый principal со своим keytab получает собственную секцию JAAS рядом с конфигурацией процесса, поэтому один GrantForge подключается к нескольким ансамблям под разными principal. Вход в Kerberos только по паролю пока не поддерживается.

    При сохранении проверяются: формат строки подключения, пользователь и пароль для digest, principal и keytab для Kerberos, keytab и principal сервера только для Kerberos, а также диапазоны тайм-аутов и лимита.

    При отключённом TLS пути и пароли хранилищ доверенных сертификатов и ключей должны быть пустыми. Для пароля хранилища требуется путь к соответствующему хранилищу. Для обоих хранилищ допустимы только типы jks, pkcs12 и pem.

    Пробелы в начале и конце паролей хранилищ TLS сохраняются. Конфигурация сервиса определяет режим TLS и хранилища для этого подключения, заменяя уже заданные в JVM параметры TLS и хранилищ ZooKeeper; сертификаты и имена хостов серверов по-прежнему проверяются.

    Просмотр znode

    Выберите сервис в разделе Права на данные → Политики и нажмите Обзор рядом с path:

    • Дочерние узлы выводятся постранично, по имени; znode со своими дочерними узлами можно открыть дальше.
    • Для каждого znode показываются его ACL (scheme:id:cdrwa, как в инструментах ZooKeeper), размер данных и время изменения.
    • Znode, ACL которого пользователь поиска не может прочитать, всё равно выводится по имени; при открытии показывается причина отказа.

    Если znode удаляются во время постраничного просмотра, курсор всё равно продвигается по последнему просмотренному имени дочернего узла, даже если сам узел уже не существует. Список дочерних узлов не является снимком: одновременные добавления и удаления следуют семантике ZooKeeper и могут изменить последующие страницы.

    При вводе пути предлагаются варианты; у несуществующего родителя их нет, а пути вне lookup.path отклоняются. Znode с числом дочерних узлов больше lookup.max.entries приводит к ошибке, а не к частичному выводу.

    Применение политик

    Уровень ресурса один — path, типы доступа соответствуют правам ACL ZooKeeper: read, write, create, delete и admin; политики путей поддерживают рекурсию и исключения.

    Плагин сервиса отвечает за управление, поиск и просмотр; для применения политик дополнительно нужен агент внутри сервера, который применяет их к ACL-маркерам через провайдер аутентификации SASL и должен быть развёрнут на каждом узле ансамбля. Шаги развёртывания, ACL-маркер и его ограничения описаны в руководстве по агенту.

    Связанные руководства

    Редактировать эту страницу на GitHub