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

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

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

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

  3. Импортируйте на сервер:

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

Установка клиента 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. Выберите проект, в котором создан кластер Kafka.
  2. Скачайте неквалифицированный сертификат и приватный ключ.
  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

      где:

      • ssl.keystore.location расположение неквалифицированного сертификата и приватного ключа;
      • ssl.keystore.password — пароль от неквалифицированного сертификата;
      • ssl.truststore.location — расположение сертификата кластера;
      • ssl.truststore.password — пароль от сертификата кластера.
    3. Сохраните файл client.properties.