Apache Kafka
SSH-проба: вона входить на хост брокера й читає версію з власного
kafka_<scala>-<version>.jar брокера. Якщо порт не вказано,
використовується 22, без схеми — той самий механізм SSH, облікові дані
та перевірка ключа хоста, що й у сімейства
ідентифікації ОС через SSH.
product: apache-kafka приймається як псевдонім.
targets: - id: kafka-01 product: kafka address: kafka-01.example.com credentials: linux-host-sshЧому SSH
Section titled “Чому SSH”Єдиний анонімний обмін протоколу Kafka, ApiVersions, перелічує діапазони
версій API, але не версію програмного забезпечення. JMX її містить
(kafka.server:type=app-info), але JMX — це Java RMI поверх серіалізації
Java, стек протоколів JVM, а не те, що enodia реалізовуватиме заради
одного рядка, — до того ж порт вимкнено, доки оператор його не ввімкне.
Через SSH версію називає jar-файл брокера.
Як визначається версія
Section titled “Як визначається версія”Кожен дистрибутив постачає kafka_<scala>-<version>.jar у своєму каталозі
libs — образ Apache /opt/kafka/libs/kafka_2.13-4.3.1.jar, cp-kafka від
Confluent /usr/share/java/kafka/kafka_2.13-8.3.2-ccs.jar. Проба шукає
його в $KAFKA_HOME, /opt/kafka, /opt/bitnami/kafka, /usr/local/kafka
і /usr/share/java/kafka, і записує саме назву jar-файлу.
kafka-topics.sh --version (або kafka-topics --version) з PATH —
запуск JVM, кілька секунд, — запасний варіант для встановлення в іншому
місці.
Kafka у контейнері
Section titled “Kafka у контейнері”Якщо Kafka працює в Docker або Podman, а на самому хості її не
встановлено, вкажіть контейнер в options — тоді команда виконується
через docker exec (або podman exec):
targets: - id: kafka-01 product: kafka address: kafka-01.example.com credentials: linux-host-ssh options: container: kafka # назва контейнера container_runtime: podman # необовʼязково: docker (за замовчуванням) або podmanКористувачеві SSH має бути дозволено використовувати це середовище виконання. Назва контейнера перевіряється за власним шаблоном назв Docker, перш ніж потрапити у віддалену команду.
Confluent Platform
Section titled “Confluent Platform”Збірки Confluent Platform (8.3.2-ccs, -ce) нумеруються за власною
лінійкою Confluent: починаючи з 7.0, CP x.y постачає Apache Kafka (x-4).y
(7.6 → 3.6, 8.3 → 4.3; до 7.0 це не виконувалося — 6.0 відповідала 2.6),
але номери патчів у Confluent власні. Така збірка повідомляється як є, з
редакцією confluent, а для 7.0 і новіших лінійка Apache Kafka, яку вона
містить, потрапляє в extra.apacheKafka. Патч не зіставляється — це
означало б вигадати версію.
Автентифікація — обовʼязкова
Section titled “Автентифікація — обовʼязкова”Облікові дані SSH, ssh-key або password — див.
Конфігурація → Облікові дані.
Записувані поля
Section titled “Записувані поля”version— напр.4.3.1, з/opt/kafka/libs/kafka_2.13-4.3.1.jar;8.3.2-ccsдля збірки Confluentedition—confluentдля збірки-ccs/-ce, інакше відсутнєextra.apacheKafka— major.minor Apache Kafka, яку містить збірка Confluent 7.0+, напр.4.3extra.container— назва контейнера, якщо заданоoptions.containerextra.hostKeyVerified
Зіставлення з CVE
Section titled “Зіставлення з CVE”Зіставляється з NVD і БДУ ФСТЕК, якщо налаштовано блок cve:.
Для збірки Confluent Platform пошук не виконується: її власна нумерація
порівнювалася б як новіша за будь-яку межу Apache Kafka, а реліз Apache,
який вона містить, відомий лише до major.minor — цього замало для
виправлення на рівні патча.
Резолвер життєвого циклу
Section titled “Резолвер життєвого циклу”endoflife:apache-kafka. endoflife.date не має календаря Confluent
Platform.