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

Чтобы настроить сервер для работы с кластером Kafka:

  1. Установите клиент Apache Kafka.

  2. Установите Java.

  3. Если при заказе кластера выбран метод аутентификации SASL/PLAIN, импортируйте на сервер сертификат кластера.
  4. Если при заказе кластера выбран метод аутентификации TLS:
    1. Импортируйте на сервер сертификат кластера.
    2. Если при заказе кластера выбран Импортированный сертификат, импортируйте на сервер пользовательский сертификат и приватный ключ.
      Если при заказе кластера выбран Сгенерированный сертификат, импортируйте на сервер неквалифицированный сертификат и приватный ключ

  5. Создайте конфигурационный файл клиента.

Установка клиента Apache Kafka

Чтобы установить клиент Apache Kafka на сервер:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Скачайте в папку /tmp/ архив с клиентом Apache Kafka той версии, которая выбрана при заказе кластера. Для этого выполните команду:

    wget <ССЫЛКА_НА_АРХИВ> -P /tmp/
  4. Создайте папку для клиента Apache Kafka и конфигурационных файлов, выполнив команду:

    mkdir -p /app/kafka/config/
  5. Распакуйте загруженный архив с клиентом Apache Kafka в папку /app/kafka/, выполнив команду, соответствующую версии Apache Kafka:

    tar -xvf /tmp/kafka_2.13-2.4.1.tgz -C /app/kafka/
    tar -xvf /tmp/kafka_2.13-2.8.2.tgz -C /app/kafka/

Установка Java

Чтобы использовать клиент Apache Kafka, установите Java (не ниже версии 8) на сервер:

  1. Подключитесь к серверу по SSH-ключу.
  2. Смените пользователя на root, выполнив команду:

    sudo -i
  3. Скачайте в папку /tmp/ архив с Java, выполнив команду:

    wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz -P /tmp/
  4. Создайте папку для Java и конфигурационных файлов, выполнив команду:

    mkdir -p /app/java/
  5. Распакуйте загруженный архив с Java в папку /app/java/, выполнив команду:

    tar -xvf /tmp/openjdk-11.0.2_linux-x64_bin.tar.gz -C /app/java/
  6. Добавьте путь для вызова java в файл /root/.profile, выполнив команду:

    cat >> /root/.profile <<EOF 
    PATH=$PATH:/app/java/jdk-11.0.2/bin/
    JAVA_HOME=/app/java/jdk-11.0.2/
    EOF
  7. Подключите переменные из файла /root/.profile, выполнив команду:

    source /root/.profile

Импорт сертификата кластера

Если при заказе кластера выбран метод аутентификации SASL/PLAIN или TLS, то для подключения к кластеру Kafka импортируйте сертификат на сервер:

  1. Выберите проект, в котором создан кластер Kafka.
  2. Перейдите в раздел Ресурсы  Приложения Managed Service for Kafka  Кластеры.
  3. Нажмите на строку с нужным кластером и перейдите на вкладку Сертификаты.
  4. Нажмите на кнопку  Действия и выберите пункт Получение цепочки сертификатов Kafka:

  5. В открывшемся окне нажмите на кнопку Подтвердить.
  6. Перейдите на вкладку История действий.
  7. Нажмите на кнопку Показать результаты выполнения действия в строке с действием Получение цепочки сертификатов Kafka:

  8. Откроется окно с содержимым сертификатов. Скопируйте всё содержимое:

  9. Подключитесь к серверу по SSH-ключу.
  10. Смените пользователя на root, выполнив команду:

    sudo -i
  11. Создайте файл intermediate_private.pem в папке /tmp/ и вставьте в него содержимое сертификата.
  12. Создайте папку для сертификата, выполнив команду:

    mkdir -p /app/tls/certs/
  13. Импортируйте сертификат на сервер, выполнив команду:

    keytool -importcert -file /tmp/intermediate_private.pem -alias InterCA -storetype PKCS12 -keystore /app/tls/certs/kafka_truststore.pfx
    1. Введите любой пароль для импортированного сертификата кластера.
    2. Повторно введите пароль.
    3. Введите yes и нажмите Enter.

      Примечание

      Запишите данный пароль, т.к. он понадобится при подключении к кластеру.


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

Если при заказе кластера выбран метод аутентификации TLS и Импортированный сертификат, то для подключения к кластеру Kafka импортируйте пользовательский сертификат и приватный ключ на сервер:

  1. Создайте папку, выполнив команду:

    mkdir -p /app/tls/private/
  2. Загрузите файлы certificate.crt и private_key.key в папку /tmp/.

  3. Импортируйте пользовательский сертификат и приватный ключ на сервер, выполнив команду:

    openssl pkcs12 -export -inkey /tmp/private_key.key -in /tmp/certificate.crt -out /app/tls/private/kafka_keystore.pfx
    1. Введите любой пароль для импортированного пользовательского сертификата и приватного ключа.
    2. Повторно введите пароль.
    3. Введите yes и нажмите Enter.

      Примечание

      Запишите данный пароль, т.к. он понадобится при подключении к кластеру.

Импорт неквалифицированного сертификата и приватного ключа

Если при заказе кластера выбран метод аутентификации TLS и Сгенерированный сертификат, то для подключения к кластеру Kafka импортируйте неквалифицированный сертификат и приватный ключ на сервер:

  1. Выберите проект, в котором создан кластер Kafka.
  2. Скачайте неквалифицированный сертификат и приватный ключ (файлы certificate.crt и private_key.key).
  3. Создайте папку, выполнив команду:

    mkdir -p /app/tls/private/
  4. Загрузите файлы certificate.crt и private_key.key в папку /tmp/.

  5. Импортируйте неквалифицированный сертификат и приватный ключ на сервер, выполнив команду:

    openssl pkcs12 -export -inkey /tmp/private_key.key -in /tmp/certificate.crt -out /app/tls/private/kafka_keystore.pfx
    1. Введите любой пароль для импортированного неквалифицированного сертификата и приватного ключа.
    2. Повторно введите пароль.
    3. Введите yes и нажмите Enter.

      Примечание

      Запишите данный пароль, т.к. он понадобится при подключении к кластеру.

Обновление сертификатов кластера

Если действие сертификата кластера закончилось, обновите его.

  1. Выберите проект, в котором создан кластер Kafka.
  2. В главном меню портала перейдите в раздел Ресурсы → Приложения → Managed Service for Kafka  Кластеры.
  3. Нажмите на строку с нужным кластером.
  4. Перейдите на вкладку Сертификаты. Даты начала и окончания действия сертификата кластера отображаются в столбцах:

Чтобы обновить сертификат кластера:

  1. Выберите проект, в котором создан кластер Kafka.
  2. В главном меню портала перейдите в раздел Ресурсы → Приложения → Managed Service for Kafka  Кластеры.
  3. Нажмите на строку с нужным кластером.
  4. Перейдите на вкладку Сертификаты и нажмите на кнопку Действия.
  5. Выберите пункт Обновление сертификатов Kafka.
  6. Нажмите на кнопку Подтвердить.

В результате срок действия сертификата продлится на 1 год.

Создание конфигурационного файла клиента

Чтобы подключиться к кластеру Kafka, создайте конфигурационный файл клиента:

  1. Перейдите в папку /app/kafka/config/.
  2. Создайте файл client.properties и скопируйте в него:

    request.timeout.ms=180000
    
    #### ANONYMOUS properties ####
    security.protocol=PLAINTEX
  3. Сохраните файл client.properties.
  1. Перейдите в папку /app/kafka/config/.
  2. Создайте файл client.properties и скопируйте в него:

    request.timeout.ms=180000
     
    #### SSL properties ####
    sasl.mechanism=PLAIN
    security.protocol=SASL_SSL
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
      username="admin" \
      password="Admin12345";
    ssl.truststore.location=/app/tls/certs/kafka_truststore.pfx
    ssl.truststore.password=12345678
    ssl.truststore.type=PKCS12

    где:

    • username — имя пользователя для подключения к кластеру Kafka, указанное при создании кластера;
    • password — пароль пользователя для подключения к кластеру Kafka, указанный при создании кластера;
    • ssl.truststore.locationпуть до сертификата кластера;
    • ssl.truststore.password  пароль для сертификата кластера.
  3. Сохраните файл client.properties.
  1. Перейдите в папку /app/kafka/config/.
  2. Создайте файл client.properties и скопируйте в него:

    request.timeout.ms=180000
     
    #### TLS properties ####
    security.protocol=SSL
    ssl.keystore.location=/app/tls/private/kafka_keystore.pfx
    ssl.keystore.password=12345678
    ssl.keystore.type=PKCS12
    ssl.truststore.location=/app/tls/certs/kafka_truststore.pfx
    ssl.truststore.password=12345678
    ssl.truststore.type=PKCS12

    где:

  3. Сохраните файл client.properties.