====== Kafka ======
===== Проблемы =====
==== Сервис не запускается ====
=== После обновления JAVA ===
1) Необходимо проверить переменную ''JAVA_HOME''
root@kafka-server ~ # echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64
2) Убедится, что путь до домашнего каталога JAVA корректный
root@kafka-server ~ # ls -la $JAVA_HOME
ls: cannot access /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64: No such file or directory
3) Проверить, какие версии JAVA установлены в каталоге ''/usr/lib/jvm''
root@kafka-server ~ # ls -la /usr/lib/jvm
total 4
drwxr-xr-x 4 root root 223 May 20 00:12 .
dr-xr-xr-x. 39 root root 4096 Sep 15 2021 ..
drwxr-xr-x 6 root root 68 May 20 00:11 java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64
lrwxrwxrwx 1 root root 21 May 20 00:12 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root 24 May 20 00:12 jre-11 -> /etc/alternatives/jre_11
lrwxrwxrwx 1 root root 32 May 20 00:12 jre-11-openjdk -> /etc/alternatives/jre_11_openjdk
lrwxrwxrwx 1 root root 43 May 20 00:11 jre-11-openjdk-11.0.18.0.10-1.el7_9.x86_64 -> java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64
lrwxrwxrwx 1 root root 29 May 20 00:12 jre-openjdk -> /etc/alternatives/jre_openjdk
4) Проверить переменную ''JAVA_HOME'' для демона Kafka ''/etc/systemd/system/kafka.service.conf''
root@kafka-server ~ # cat /etc/systemd/system/kafka.service.conf
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64
KAFKA_OPTS=\
-Djdk.tls.rejectClientInitiatedRenegotiation=true \
-Djsse.enableMFLNExtension=false \
-XX:+UseAES \
-Djdk.tls.server.protocols=TLSv1.3,TLSv1.2 \
-Djdk.tls.server.cipherSuites=TLS_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 \
# -Djsse.SSLEngine.acceptLargeFragments=true \
#JMX_PORT=1979
#KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -Dcom.sun.management.jmxremote.registry.ssl=true -Dcom.sun.management.jmxremote.authenticate=false"
Как видно из результата, конфигурация содержит не корректный путь до ''JAVA_HOME''.
Так как директория ''/usr/lib/jvm/jre'' является символической ссылкой до корректной версии, и она обезличена, то лучше использовать путь ''/usr/lib/jvm/jre'', чтобы избежать проблем в работе сервиса при обновлении JAVA.
5) Устанавливаем корректную переменную для ''JAVA_HOME'' в файле конфигурации демона Kafka ''/etc/systemd/system/kafka.service.conf''
root@kafka-server ~ # cat /etc/systemd/system/kafka.service.conf
JAVA_HOME=/usr/lib/jvm/jre
KAFKA_OPTS=\
-Djdk.tls.rejectClientInitiatedRenegotiation=true \
-Djsse.enableMFLNExtension=false \
-XX:+UseAES \
-Djdk.tls.server.protocols=TLSv1.3,TLSv1.2 \
-Djdk.tls.server.cipherSuites=TLS_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 \
# -Djsse.SSLEngine.acceptLargeFragments=true \
#JMX_PORT=1979
#KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -Dcom.sun.management.jmxremote.registry.ssl=true -Dcom.sun.management.jmxremote.authenticate=false"
6) Запускаем и проверяем сервис
root@kafka-server ~ # systemctl start kafka
root@kafka-server ~ # systemctl status kafka
● kafka.service - Apache Kafka
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-05-24 10:41:47 MSK; 2h 44min ago
Main PID: 22021 (java)
CGroup: /system.slice/kafka.service
└─22021 /usr/lib/jvm/jre/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:Initiatin...