zoukankan      html  css  js  c++  java
  • zookeeper可视化WEB工具(zkui)搭建与配置

    前提:zookeeper 可视化WEB工具zkui依赖java环境,因此需要安装jdk,同时zkui源码要Maven编译,需要安装apache-maven.

    JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    Apache-maven下载地址:https://maven.apache.org/download.cgi

    1.设置环境变量

    [root@localhost App]# vim /etc/profile 在文件末尾添加如下:
    
    #set for java
    export JAVA_HOME=/App/java/jdk1.8.0_102
    export PATH=$JAVA_HOME/bin:$PATH
    export PATH=$M2_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
    
    #set for APR
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
    
    #set for apache-maven
    export MAVEN_HOME=/App/apache-maven
    export PATH=${PATH}:${MAVEN_HOME}/bin

    查看环境变量:

    [root@localhost App]# java -version 
    java version "1.8.0_102"
    Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
    [root@localhost App]# mvn -v
    Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
    Maven home: /App/apache-maven
    Java version: 1.8.0_102, vendor: Oracle Corporation, runtime: /App/java/jdk1.8.0_102/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
    

    2.下载zkui 程序包

    [root@localhost /]# cd /App/
    [root@localhost App]# yum  -y install git
    [root@localhost App]# git clone https://github.com/DeemOpen/zkui.git
    Cloning into 'zkui'...
    remote: Enumerating objects: 1, done.
    remote: Counting objects: 100% (1/1), done.
    remote: Total 527 (delta 0), reused 0 (delta 0), pack-reused 526
    Receiving objects: 100% (527/527), 480.75 KiB | 24.00 KiB/s, done.
    Resolving deltas: 100% (217/217), done.
    [root@localhost App]# ll zkui/
    total 44
    -rw-r--r--. 1 root root  2357 Apr 15 09:54 config.cfg
    drwxr-xr-x. 2 root root    61 Apr 15 09:54 docker
    drwxr-xr-x. 2 root root   114 Apr 15 09:54 images
    -rw-r--r--. 1 root root 11358 Apr 15 09:54 LICENSE-2.0.txt
    -rw-r--r--. 1 root root   416 Apr 15 09:54 Makefile
    -rw-r--r--. 1 root root  1746 Apr 15 09:54 nbactions.xml
    -rw-r--r--. 1 root root  5294 Apr 15 09:54 pom.xml
    -rw-r--r--. 1 root root  6216 Apr 15 09:54 README.md
    -rw-r--r--. 1 root root    43 Apr 15 09:54 run.sh
    drwxr-xr-x. 4 root root    30 Apr 15 09:54 src
    

    3.编译zkui,生成jar包,zkui源码需要Maven编译

    [root@localhost App]# cd zkui/
    [root@localhost zkui]# mvn clean install 
    .................................编译过程省略..........................................
    [INFO] --- maven-install-plugin:2.4:install (default-install) @ zkui ---
    [INFO] Installing /App/zkui/target/zkui-2.0-SNAPSHOT.jar to /root/.m2/repository/com/deem/zkui/2.0-SNAPSHOT/zkui-2.0-SNAPSHOT.jar
    [INFO] Installing /App/zkui/pom.xml to /root/.m2/repository/com/deem/zkui/2.0-SNAPSHOT/zkui-2.0-SNAPSHOT.pom
    [INFO] Installing /App/zkui/target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar to /root/.m2/repository/com/deem/zkui/2.0-SNAPSHOT/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  17.670 s
    [INFO] Finished at: 2019-04-15T09:57:44+08:00
    [INFO] ------------------------------------------------------------------------
    

    编译成功,此时生成两个jar包,zkui-2.0-SNAPSHOT.jar和zkui-2.0-SNAPSHOT-jar-with-dependencies.jar,使用的是第二个jar包

    [root@localhost zkui]# ll target/
    total 8416
    drwxr-xr-x. 2 root root       6 Apr 15 09:57 archive-tmp
    drwxr-xr-x. 5 root root     101 Apr 15 09:57 classes
    drwxr-xr-x. 4 root root      49 Apr 15 09:57 generated-sources
    drwxr-xr-x. 2 root root      28 Apr 15 09:57 maven-archiver
    drwxr-xr-x. 2 root root      89 Apr 15 09:57 surefire-reports
    drwxr-xr-x. 3 root root      17 Apr 15 09:57 test-classes
    -rw-r--r--. 1 root root  277170 Apr 15 09:57 zkui-2.0-SNAPSHOT.jar
    -rw-r--r--. 1 root root 8336864 Apr 15 09:57 zkui-2.0-SNAPSHOT-jar-with-dependencies.jar
    

    4.修改配置文件

    zkui运行生成的jar包,可以直接运行,在运行该文件之前,我们还需要修改zkui的配置文件config.cfg,config.cfg 文件中配置了zkui需要连接的zookeeper集群的IP地址和端口,访问UI的用户名和密码,以及zkui监听的端口号

    [root@localhost zkui]# vim config.cfg 
    
    #Server Port
    serverPort=9090
    #Comma seperated list of all the zookeeper servers
    zkServer=localhost:2181,localhost:2181
    #Http path of the repository. Ignore if you dont intent to upload files from repository.
    scmRepo=192.168.31.43:2181
    #Path appended to the repo url. Ignore if you dont intent to upload files from repository.
    scmRepoPath=//appconfig.txt
    #if set to true then userSet is used for authentication, else ldap authentication is used.
    ldapAuth=false
    ldapDomain=mycompany,mydomain
    #ldap authentication url. Ignore if using file based authentication.
    ldapUrl=ldap://<ldap_host>:<ldap_port>/dc=mycom,dc=com
    #Specific roles for ldap authenticated users. Ignore if using file based authentication.
    ldapRoleSet={"users": [{ "username":"domain\user1" , "role": "ADMIN" }]}
    userSet = {"users": [{ "username":"admin" , "password":"manager","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}
    #Set to prod in production and dev in local. Setting to dev will clear history each time.
    env=prod
    jdbcClass=org.h2.Driver
    jdbcUrl=jdbc:h2:zkui
    jdbcUser=root
    jdbcPwd=manager
    #If you want to use mysql db to store history then comment the h2 db section.
    #jdbcClass=com.mysql.jdbc.Driver
    #jdbcUrl=jdbc:mysql://localhost:3306/zkui
    #jdbcUser=root
    #jdbcPwd=manager
    loginMessage=Please login using admin/manager or appconfig/appconfig.
    #session timeout 5 mins/300 secs.
    sessionTimeout=300
    #Default 5 seconds to keep short lived zk sessions. If you have large data then the read will take more than 30 seconds so increase this accordingly. 
    #A bigger zkSessionTimeout means the connection will be held longer and resource consumption will be high.
    zkSessionTimeout=5
    #Block PWD exposure over rest call.
    blockPwdOverRest=false
    #ignore rest of the props below if https=false.
    https=false
    keystoreFile=/home/user/keystore.jks
    keystorePwd=password
    keystoreManagerPwd=password
    

    关于配置文件的说明:

    (1)scmRepo=192.168.31.43:2181,192.168.31.44:2181,192.168.31.45:2181  注意如果是zk集群,此处需填写集群各个成员服务器(即Zookeeper节点)的IP地址加端口号2181,我这里的zookeeper 模式是standalone,因此只填写本机IP地址即可。
    若报KeeperErrorCode = ConnectionLoss for / 错误,增大zkSessionTimeout超时时间,设置zkSessionTimeout=20

    (2)默认用户信息

       用户名:Admin(Admin权限,支持CRUD操作)
       密码:manager
       用户名:appconfig(Readonly权限,支持读取操作)
       密码:appconfig

    (3)LDAP的配置  

       如果你想使用 LDAP 身份验证,则提供 LDAP url。
       这将优先于 roleSet property 文件认证。
       ldapUrl=ldap://<ldap_host>:<ldap_port>/dc=mycom,dc=com
       如果不提供此功能,则将使用默认 roleSet 文件认证。

    5.启动zkui

    [root@localhost zkui]# nohup java -jar target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &
    [1] 2560
    [root@localhost zkui]# nohup: ignoring input and appending output to ‘nohup.out’
    
    [root@localhost zkui]# netstat  -tunpl |grep  :9090
    tcp6       0      0 :::9090                 :::*                    LISTEN      2560/java           
    [root@localhost zkui]# 
    

    6.浏览器访问 http://192.168.31.43:9090/login 账号admin 密码manager

     

    以下是个人的一些补充:

    7.登录zkui ,选择导航“Host” 出现错误提示:KeeperErrorCode = NoNode for /appconfig/hosts  如下所示:

    日志错误信息如下:

    查询了该项目的Github https://github.com/DeemOpen/zkui/issues/61 并未找到解决方法;根据提示:根目录下无节点/appconfig/hosts,既然根目录下无/appconfig/hosts节点,那就手动创建;

    [root@localhost App]# sh /App/zookeeper/bin/zkCli.sh -server 192.168.31.43:2181
    Connecting to 192.168.31.43:2181
    2019-04-15 11:04:27,148 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
    2019-04-15 11:04:27,151 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost
    2019-04-15 11:04:27,151 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_102
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/App/java/jdk1.8.0_102/jre
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/App/zookeeper/bin/../zookeeper-server/target/classes:/App/zookeeper/bin/../build/classes:/App/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/App/zookeeper/bin/../build/lib/*.jar:/App/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/App/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/App/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/App/zookeeper/bin/../lib/log4j-1.2.17.jar:/App/zookeeper/bin/../lib/jline-0.9.94.jar:/App/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/App/zookeeper/bin/../zookeeper-3.4.14.jar:/App/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/App/zookeeper/bin/../conf:.:/App/java/jdk1.8.0_102/lib/dt.jar:/App/java/jdk1.8.0_102/lib/tools.jar
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=:/usr/local/apr/lib:/usr/local/apr/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-693.el7.x86_64
    2019-04-15 11:04:27,153 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
    2019-04-15 11:04:27,154 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
    2019-04-15 11:04:27,154 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/App
    2019-04-15 11:04:27,159 [myid:] - INFO  [main:ZooKeeper@442] - Initiating client connection, connectString=192.168.31.43:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@67424e82
    Welcome to ZooKeeper!
    JLine support is enabled
    2019-04-15 11:04:27,220 [myid:] - INFO  [main-SendThread(192.168.31.43:2181):ClientCnxn$SendThread@1025] - Opening socket connection to server 192.168.31.43/192.168.31.43:2181. Will not attempt to authenticate using SASL (unknown error)
    2019-04-15 11:04:27,300 [myid:] - INFO  [main-SendThread(192.168.31.43:2181):ClientCnxn$SendThread@879] - Socket connection established to 192.168.31.43/192.168.31.43:2181, initiating session
    2019-04-15 11:04:27,314 [myid:] - INFO  [main-SendThread(192.168.31.43:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 192.168.31.43/192.168.31.43:2181, sessionid = 0x1000001f2a00008, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: 192.168.31.43:2181(CONNECTED) 0] ls /
    [zookeeper]
    [zk: 192.168.31.43:2181(CONNECTED) 1] create /appconfig "my appconfig"
    Created /appconfig
    [zk: 192.168.31.43:2181(CONNECTED) 2] create /appconfig/hosts 192.168.31.43
    Created /appconfig/hosts
    [zk: 192.168.31.43:2181(CONNECTED) 3] ls /
    [appconfig, zookeeper]
    

    再次刷新、登录发现正常:

      

    接下来,就体验一下通过zkui 来管理zookeeper集群吧!

  • 相关阅读:
    harass
    matlab的legend()用法
    migrate
    大千敦煌面壁
    三维插值(MATLAB)——TriScatteredInterp/scatteredInterpolant函数
    有哪些不出名的诗人写的千古名句?
    听吴翰清讲课笔记
    移动着,心就变了
    人活着为了什么?
    人生就是一场修炼
  • 原文地址:https://www.cnblogs.com/caoshousong/p/10709371.html
Copyright © 2011-2022 走看看