Встановлюємо Apache Kafka на Ubuntu 24.04 за 5 кроків

Apache Kafka — це розподілена система для обробки потоків даних з відкритим кодом. 

Вона допомагає швидко й стабільно перекидати дані з точки А в точку Б — ідеально для соцмереж, онлайн-банкінгу, аналітики та будь-яких масштабних систем.

І якщо ти юзаєш Ubuntu 24.04, тоді нумо читати гайд зі встановлення: лише 5 кроків і ти в темі.

Крок 1: онови свою ОС

Для початку онови всі пакунки до актуальних версій:

apt update && apt upgrade

Це мінімум, щоб уникнути конфліктів під час встановлення Java та Kafka.

Крок 2: встанови Java (OpenJDK)

Kafka потребує Java для роботи, тому спочатку потрібно встановити OpenJDK. 

Ubuntu 24.04 вже має потрібні пакунки у своїх репозиторіях, тому встановлення виглядатиме ось так:

apt install default-jdk

Після інсталяції перевір версію:

java -version

Повинно з’явитися щось на кшталт:

openjdk version "21.0.6" 2025-01-21

OpenJDK Runtime Environment (build 21.0.6+7-Ubuntu-124.04.1)

OpenJDK 64-Bit Server VM (build 21.0.6+7-Ubuntu-124.04.1, mixed mode, sharing)

Крок 3: завантаж Kafka

Перейди на офіційний сайт Apache Kafka, щоб перевірити актуальну версію. Станом на квітень 2025 року це 4.0.0. Завантаж її так:

wget https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz

Розпаковуємо архів:

tar xvf kafka_2.13-4.0.0.tgz

І переносимо в системну директорію:

mv kafka_2.13-4.0.0 /usr/local/kafka

Крок 4: налаштуй systemd для Kafka

Заходимо в директорію Kafka:

cd /usr/local/kafka

Створюємо унікальний ідентифікатор кластера:

KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

Форматуємо лог-директорії:

bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties

Тепер створюємо systemd-сервіс, щоб зручно керувати Kafka:

nano /etc/systemd/system/kafka.service

Встав у файл ось це:

[Unit]

Description=Apache Kafka Server

Documentation=http://kafka.apache.org/documentation.html

Requires=zookeeper.service

[Service]

Type=simple

Environment="JAVA_HOME=/usr/lib/jvm/java-1.21.0-openjdk-amd64"

ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties

ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]

WantedBy=multi-user.target

Зберігай і закривай. 

Потім перезавантаж демони systemd та запусти Kafka:

systemctl daemon-reload

systemctl start kafka

systemctl enable kafka

systemctl status kafka

Очікуваний результат:

● kafka.service - Apache Kafka Server

Loaded: loaded (/etc/systemd/system/kafka.service; enabled; preset: enabled)

Active: active (running)

Docs: http://kafka.apache.org/documentation.html

Main PID: 11915 (java)

Tasks: 99 (limit: 2217)

Memory: 365.1M (peak: 365.4M)

CPU: 16.435s

CGroup: /system.slice/kafka.service

Крок 5: створи теми Kafka

Перш ніж почати писати свої перші події, потрібно створити тему. Наприклад, створимо тему з назвою my-events за допомогою такої команди:

bin/kafka-topics.sh --create --topic my-events --bootstrap-server localhost:9092

Щоб перевірити, які теми вже існують у твоїй Kafka, виконай команду:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

У твоєму випадку має вивести my-events.

Kafka також має вбудований командний клієнт, який дозволяє передавати дані в тему — інформацію через файл або прямо через консоль. Наприклад, додавати нові події до теми можна так:

bin/kafka-console-producer.sh --topic my-events --bootstrap-server localhost:9092

Тепер при вводі будь-якого тексту кожен рядок буде записаний як окрема подія.

Щоб припинити введення подій, просто натисни Ctrl-C. І якщо потрібно очистити всі дані та журнали в Kafka, можна видалити всі файли так:

rm -rf /tmp/kafka-logs /tmp/kraft-combined-logs

Вуаля, все готово. Ти чудово впорався з чим завданням і нагорода — Apache Kafka на Ubuntu 24.04.

Додаткові корисні матеріали

Те, що не завжди трапляється в базових гайдах, але точно зекономить десятки запитів у гугл.

  • Зміна стандартного порту (9092)

У конфігурації server.properties можна змінити порт, на якому Kafka буде слухати з’єднання:

listeners=PLAINTEXT://0.0.0.0:9093

Це стане в пригоді, якщо порт 9092 вже зайнятий або ти хочеш мати кілька брокерів на одній машині.

  • Перегляд директорій

Дані всіх подій (теми, партиції) Kafka зберігає у директорії, яку вказано в параметрі log.dirs:

log.dirs=/home/kafka/logs

Можеш задати будь-яке місце — головне, щоб там вистачало місця й були права доступу.

  • Перегляд логів

Якщо ти запускаєш Kafka через systemd, лог можна глянути через:

journalctl -u kafka

Або просто переглядати файл, куди ти скеровуєш stdout, у юніт-файлі.

  • Дозвіл на видалення тем

Kafka не дозволяє видаляти теми (тільки створювати). Щоб це змінити:

delete.topic.enable=true

delete.topic.enable=true

Додаєш цей рядок у server.properties — і можна буде видаляти теми командою kafka-topics.sh --delete.

Післяслово

Почни з малого, експериментуй у локальному середовищі, не бійся ламати й перезапускати. Проте набагато ефективнішим є навчання через практику. 

Саме це ти отримаєш на авторських курсах від ITEDU. Реєструйся на потрібний курс, щоб апгрейднути свої навички з дистрибутивами Linux, моніторингом та логуванням.

Залишити відповідь

Дякуємо, що поділились