redhat 9.6 apache kafka 3.9 오프라인 설치

Red Hat Enterprise Linux (RHEL) 9.6 환경에서 인터넷 연결이 없는 상태(오프라인)로 Apache Kafka 3.9(최신 안정 버전 기준)를 설치하는 방법입니다. Kafka는 자바 기반으로 동작하므로 Java(JRE/JDK) 설치가 선행되어야 합니다.
1. 사전 준비 (인터넷 가능 PC)
오프라인 서버로 파일을 옮기기 위해 필요한 파일들을 미리 다운로드합니다.
2. 파일 전송
다운로드한 파일들을 USB 또는 SCP/SFTP를 이용해 RHEL 9.6 오프라인 서버의 /tmp 디렉토리로 복사합니다.
3. RHEL 9.6 오프라인 설치 단계
3.1. Java 설치 (JDK 17/21)
RHEL 9는 기본적으로 Java가 포함되지 않을 수 있습니다. 다운로드한 RPM 파일로 설치합니다.
bash
cd /tmp
# RPM 설치 (예시)
sudo rpm -ivh openjdk-17-jdk-*.rpm
# 설치 확인
java -version
코드를 사용할 때는 주의가 필요합니다.

3.2. Kafka 설치 및 압축 해제
일반적으로 Kafka는 /opt 디렉토리에 설치합니다. [1]
bash
# 압축 해제
sudo tar -zxvf kafka_2.13-3.9.0.tgz -C /opt
# 심볼릭 링크 생성 (버전 관리 용이)
sudo ln -s /opt/kafka_2.13-3.9.0 /opt/kafka
코드를 사용할 때는 주의가 필요합니다.

3.3. Kafka 사용자 생성 (권장)
보안을 위해 전용 사용자를 생성합니다.
bash
sudo useradd -r -s /sbin/nologin kafka
sudo chown -R kafka:kafka /opt/kafka_2.13-3.9.0
sudo chown -R kafka:kafka /opt/kafka
코드를 사용할 때는 주의가 필요합니다.

3.4. KRaft 모드 설정 (Zookeeper 없이 실행)
Kafka 3.x 버전부터는 KRaft 모드를 권장합니다.
  1. 클러스터 ID 생성:
    bash
    sudo -u kafka /opt/kafka/bin/kafka-storage.sh random-uuid
    # 출력된 UUID를 복사해둡니다. (예: FvB53V... )
    
    코드를 사용할 때는 주의가 필요합니다.

  2. 설정 파일 수정 (/opt/kafka/config/kraft/server.properties):
    properties
    # 노드 ID 설정 (각 노드마다 달라야 함)
    node.id=1
    # 컨트롤러 쿼럼 설정
    controller.quorum.voters=1@localhost:9093
    # 리스너 설정
    listeners=PLAINTEXT://:9092,CONTROLLER://:9093
    advertised.listeners=PLAINTEXT://your-server-ip:9092
    controller.listener.names=CONTROLLER
    # 로그 디렉토리
    log.dirs=/tmp/kraft-combined-logs
    
    코드를 사용할 때는 주의가 필요합니다.

  3. 스토리지 초기화:
    bash
    sudo -u kafka /opt/kafka/bin/kafka-storage.sh format -t <위에서_복사한_UUID> -c /opt/kafka/config/kraft/server.properties
    
    코드를 사용할 때는 주의가 필요합니다.

4. Kafka 실행 및 확인
redhat 9.6 apache kafka 3.9 오프라인 설치
4.1. 서비스 등록 (systemd)
/etc/systemd/system/kafka.service 파일을 생성합니다.
ini
[Unit]
Description=Apache Kafka Server
After=network.target

[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
코드를 사용할 때는 주의가 필요합니다.

4.2. 시작 및 동작 확인
bash
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
# 동작 확인
sudo systemctl status kafka
코드를 사용할 때는 주의가 필요합니다.

4.3. 토픽 생성 테스트
bash
/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
코드를 사용할 때는 주의가 필요합니다.

5. 방화벽 설정 (RHEL 9)
9092 포트를 오픈해야 외부에서 접근 가능합니다.
bash
sudo firewall-cmd --permanent --add-port=9092/tcp
sudo firewall-cmd --reload
코드를 사용할 때는 주의가 필요합니다.

이제 RHEL 9.6 환경에서 오프라인으로 Kafka 3.9 설치가 완료되었습니다. 5.2, 5.4