Перейти к содержанию

Обновление Kafka

Для настройки Kafka перед обновлением сервера на версию 2.6:

  1. Ограничьте подключения к серверу снаружи.

    Добавьте правила в IPTABLES для цепочки DOCKER-USER, выполнив следующие команды:

    sudo iptables -I DOCKER-USER 1 -p tcp --dport 80 -j DROP
    sudo iptables -I DOCKER-USER 1 -p tcp --dport 443 -j DROP
    sudo iptables -I DOCKER-USER 1 -p tcp --dport 5001 -j DROP
    

    Если цепочки DOCKER-USER нет, то уберите параметр "'bridge': none" из файла /etc/docker/daemon.json и перезапустите службу docker.

  2. Выполните проверку Kafka Lag и дождитесь ответа всех offset:

    docker exec -t cts_kafka_1 /opt/kafka/bin/kafka-consumer-groups.sh --describe --all-groups --bootstrap-server localhost:9092
    

    В выводе будут присутствовать consumer-groups:

    trusts
    audit
    file_service
    ad_integration
    conference_bot
    admin
    ad_phonebook
    events
    botx
    messaging
    

    Пример вывода по consumer-group admin:

    GROUP  TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG  CONSUMER-ID                                                      HOST          CLIENT-ID
    admin  retry-30m       0          -               0               -    'admin@172.21.0.27'/<0.3836.0>-a0399c9b-a8a7-46c3-a7ab-85fb1dcd  /172.21.0.27  'admin@172.21.0.27'/<0.3836.0>
    admin  retry-5m        0          -               0               -    'admin@172.21.0.27'/<0.3815.0>-eb08d50c-4207-4c7b-870f-0080d344  /172.21.0.27  'admin@172.21.0.27'/<0.3815.0>
    admin  system-events   0          18              18              0    'admin@172.21.0.27'/<0.3880.0>-58d2f6fe-840b-412e-ae41-39f999ba  /172.21.0.27  'admin@172.21.0.27'/<0.3880.0>
    admin  retry-15m       0          -               0               -    'admin@172.21.0.27'/<0.3807.0>-0326ec57-bb39-4636-8639-eb942ee5  /172.21.0.27  'admin@172.21.0.27'/<0.3807.0>
    
    Параметр LAG должен = 0.

    Если LAG ≠ 0, подождите 10 минут. Если значение параметра не меняется на 0, перезапустите сервис с LAG.

  3. Удалите Kafka volume.

    Внимание!

    Предварительно создайте резервную копию /var/lib/docker/volumes/cts_kafka_logs.

    Выполните:

    • остановку и удаление контейнера Kafka:

      ```
      docker stop cts_kafka_1 && docker rm $_
      ```
      
    • удаление volume:

      ```
      docker volume rm cts_kafka_logs
      ```
      
  4. Обновите версии и запустите сервисы.

    Из директории СК "eXpress" запустите сервисы:

    dpl -d
    
  5. Выполните проверку контейнера Kafka:

    docker ps -a | grep kafka
    

    Вывод:

    CONTAINER ID   IMAGE                            COMMAND         CREATED      STATUS         NAMES
    70c2fd5b3922   registry_name/kafka:2.13-3.3.1   "start-kafka"   4 days ago   Up 3 minutes   cts_kafka_1
    

    Просмотр логов Kafka:

    docker logs cts_kafka_1
    
  6. Сделайте резервную копию /var/lib/docker/volumes/(cts_zookeeper_data, cts_zookeeper_datalog, cts_zookeeper_logs) (адрес меняется, если компоненты лежат в другой директории).

    Выполните:

    docker volume rm cts_zookeeper_data cts_zookeeper_datalog cts_zookeeper_logs
    
    7. Удалите правила IPTABLES:

    sudo iptables -D DOCKER-USER -p tcp -m tcp --dport 80 -j DROP
    sudo iptables -D DOCKER-USER -p tcp -m tcp --dport 443 -j DROP
    sudo iptables -D DOCKER-USER -p tcp -m tcp --dport 5001 -j DROP