kafka manager 설치

category DevOps/UI 관리 툴 2020. 3. 9. 13:13
728x90
반응형

설치

1. 임시 디렉토리 생성

  • 설치 파일을 다운 받을 임시 디렉토리 (airnd_src) 를 생성하고 이동한다.
[root@server ~]# mkdir /home/temp_src
[root@server ~]# cd /home/temp_src

2. 설치 파일 다운로드

[root@server temp_src]# wget https://github.com/yahoo/CMAK/archive/1.3.3.18.tar.gz
--2020-03-04 12:35:00--  https://github.com/yahoo/CMAK/archive/1.3.3.18.tar.gz
Resolving github.com (github.com)... 52.78.231.108
Connecting to github.com (github.com)|52.78.231.108|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/yahoo/CMAK/tar.gz/1.3.3.18 [following]
--2020-03-04 12:35:00--  https://codeload.github.com/yahoo/CMAK/tar.gz/1.3.3.18
Resolving codeload.github.com (codeload.github.com)... 13.124.75.135
Connecting to codeload.github.com (codeload.github.com)|13.124.75.135|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘1.3.3.18.tar.gz’
 
    [<=>                                                                                                                                                                                                                                                                                                                                                                                                      [      <=>                                                                                                                                                   ] 962,469      793KB/s   in 1.2s
 
2020-03-04 12:35:02 (793 KB/s) - ‘1.3.3.18.tar.gz’ saved [962469]

3. 압축 해제

[root@server temp_src]# tar xvf 1.3.3.18.tar.gz
CMAK-1.3.3.18/
CMAK-1.3.3.18/.gitignore
CMAK-1.3.3.18/.travis.yml
CMAK-1.3.3.18/LICENCE
CMAK-1.3.3.18/README.md
CMAK-1.3.3.18/app/
CMAK-1.3.3.18/app/assets/
CMAK-1.3.3.18/app/assets/stylesheets/
CMAK-1.3.3.18/app/assets/stylesheets/index.less
CMAK-1.3.3.18/app/controllers/
....

4. 디렉토리 경로 이동 및 빌드 진행

[root@server temp_src]# cd /home/temp_src/CMAK-1.3.3.18/
[root@server CMAK-1.3.3.18]# ./sbt clean dist
Downloading sbt launcher for 1.3.8:
  From  https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.3.8/sbt-launch-1.3.8.jar
    To  /root/.sbt/launchers/1.3.8/sbt-launch.jar
...

5. 빌드 완료 후 CMAK 안의 kafka-manager 압축 해제

[root@server temp_src]# unzip /home/temp_src/CMAK-1.3.3.18/target/universal/kafka-manager-1.3.3.18.zip -d /home/temp_src
Archive:  /home/temp_src/CMAK-1.3.3.18/target/universal/kafka-manager-1.3.3.18.zip
  inflating: /home/temp_src/kafka-manager-1.3.3.18/lib/kafka-manager.kafka-manager-1.3.3.18-sans-externalized.jar
  inflating: /home/temp_src/kafka-manager-1.3.3.18/lib/com.typesafe.play.twirl-api_2.11-1.1.1.jar
  inflating: /home/temp_src/kafka-manager-1.3.3.18/lib/org.apache.commons.commons-lang3-3.4.jar
....

 

6. 경로 이동 및 심볼릭 링크 생성

[root@server temp_src]# mv kafka-manager-1.3.3.18 /home/apps/.
[root@server temp_src]# ln -s /home/apps/kafka-manager-1.3.3.18 /home/apps/kafka-manager

7. 카프카 매니저 기동 및 로그 디렉토리 생성 및 권한 부여

[root@server ~]# mkdir /home/apps/kafka-manager/logs/
[root@server ~]# chown -R kafka.kafka /home/apps/kafka-manager/logs/
 
[root@server ~]# mkdir /home/apps/kafka-manager/run/
[root@server ~]# chown -R kafka.kafka /home/apps/kafka-manager/run/

8. 카프카 매니저 설정 파일 변경

# 원본 파일 백업
[root@server ~]# cp /home/apps/kafka-manager/conf/application.conf /home/apps/kafka-manager/conf/application.conf.backup
[root@server ~]# vi /home/apps/kafka-manager/conf/application.conf
########################################################################################################################################
# Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0
# See accompanying LICENSE file.
 
# This is the main configuration file for the application.
# ~~~~~
 
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
play.crypto.secret="^<csmm5Fx4d=r2HEX8pelM3iBkFVv?k[mc;IZE<_Qoq8EkX_/7@Zt6dP05Pzea3U"
play.crypto.secret=${?APPLICATION_SECRET}
 
# The application languages
# ~~~~~
play.i18n.langs=["en"]
 
play.http.requestHandler = "play.http.DefaultHttpRequestHandler"
play.http.context = "/"
play.application.loader=loader.KafkaManagerLoader
 
kafka-manager.zkhosts="kafka-manager-zookeeper:2181"
# 주키퍼 IP 주소 설정
kafka-manager.zkhosts="127.0.0.1:2181"
pinned-dispatcher.type="PinnedDispatcher"
pinned-dispatcher.executor="thread-pool-executor"
application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]
 
akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
}
 
akka.logger-startup-timeout = 60s
 
basicAuthentication.enabled=false
basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED}
basicAuthentication.username="admin"
basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}
basicAuthentication.password="password"
basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}
basicAuthentication.realm="Kafka-Manager"
basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification
 
kafka-manager.consumer.properties.file=${?CONSUMER_PROPERTIES_FILE}
########################################################################################################################################

 

9. 카프카 매니저 기동 쉘 작성

[root@server ~]# vi /etc/init.d/kafka-manager
########################################################################################################################################
#!/bin/sh
#
# chkconfig: 345 99 01
# description: Kafka-Manager
#
# File : kafka
#
# Description: Starts and stops the Kafka server
#
 
# source /etc/rc.d/init.d/functions
 
KAFKA_MANAGER_HOME=/home/apps/kafka-manager
KAFKA_MANAGER_USER=kafka
# See how we were called.
 
c_pid=`ps -ef | grep kafka-manager | grep -v grep | grep -v $1 | awk '{print $2}'`
 
case "$1" in
 
  start)
    echo -n "Starting Kafka Manager: "
    if [ "$c_pid" = "" ] ; then
      su -s /bin/bash $KAFKA_MANAGER_USER -c "$KAFKA_MANAGER_HOME/bin/kafka-manager -java-home /usr/lib/jvm/java-1.8.0 -Dpidfile.path=$KAFKA_MANAGER_HOME/run/kafka-manager.pid -Dconfig.file=$KAFKA_MANAGER_HOME/conf/application.conf -Dhttp.port=9000 >$KAFKA_MANAGER_HOME/logs/server.out 2> $KAFKA_MANAGER_HOME/logs/server.err &"
      echo "done."
      exit 0
    else
      echo "Already started"
      exit 3
    fi
    ;;
 
  stop)
    echo -n "Stopping Kafka Manager: "
    if [ "$c_pid" = "" ] ; then
      echo "Already stopped"
      exit 3
    else
      su -s /bin/bash $KAFKA_MANAGER_USER  -c "rm -rf /home/apps/kafka-manager/run/kafka-manager.pid && kill -9 $c_pid"
      sleep 2
      echo "done."
      exit 0
    fi
    ;;
 
  status)
    if [ "$c_pid" = "" ] ; then
      echo "Stopped"
      exit 3
    else
      echo "Running $c_pid"
      exit 0
    fi
    ;;
 
  restart)
    $0 stop
    sleep 2
    $0 start
    ;;
 
  *)
    echo "Usage: $0 {start|stop|hardstop|status|restart}"
    exit 1
    ;;
 
esac
########################################################################################################################################

 

10. 카프카 매니저 기동 쉘에 권한 부여

[root@server temp_src]# chmod 755 /etc/init.d/kafka-manager

 

실행


시작

[root@server ~]# /etc/init.d/kafka-manager start
Stopping Kafka Manager:  done.

중지

[root@server ~]# /etc/init.d/kafka-manager start
Starting Kafka Manager:  done.

상태

[root@server kafka-manager]# /etc/init.d/kafka-manager status
Running 16938
 
[root@server kafka-manager]# /etc/init.d/kafka-manager status
Stopped
728x90
반응형