XiaoMi / shepher

Apache License 2.0
495 stars 128 forks source link

LOGO

Shepher is a management tool of ZooKeeper. In Xiaomi, we use it as the configuration management center. Readme 中文版

Features

Function comparison of similar products

Product Introduction Visualized operation of nodes Snapshot management Node modified Diff and Review function Node operated mail notification CAS and LDAP log Authority management Cascade delete System status monitor
Shepher ZooKeeper management
TaoKeeper ZooKeeper cluster monitor and statement
Zkdash ZooKeeper management
Disconf ZooKeeper management
XDiamond Configuration center

Screenshots

Installation

Environment requirements

Basic configuration

Development environment deployment

Development environment deployment includes local compilation deployment and Docker deployment, you can choose a deployment based on usage.

Compile

  1. Modify parameter configuration of conf/application*.properties according to Parameter instruction
  2. Local compile

    $ mvn clean package 
    $ cd shepher-packaging/target/shepher-packaging-{version}-bin
    $ ls
    bin/(all the shell scripts)
    conf/(configuration files)
    db/init.sql
    lib(required jar files)
    Dockerfile
    docker-compose.yml
    CHANGES.txt
    NOTICE.txt
    README.md
    README-zh.md
    VERSION

    Here, {version} refers to the current Shepher version.

Local deployment

  1. Import db/init.sql in to MySQL
  2. Enter install directories

    $ cd shepher-packaging/target/shepher-packaging-{version}-bin
  3. Run the script, start Shepher service

    $ sh bin/run.sh start 
  4. Visit http://localhost:8089 or self defined server.url (Reference to Parameter instruction)

Docker deployment

MySQL and ZooKeeper will be automatic integrated when Docker deployment is used, and automatically import db/init.sql into MySQL, no self installation is needed.

  1. Install Docker, take Ubuntu system for example, install docker engine and docker-compose
  2. Enter install directories

    $ cd shepher-packaging/target/shepher-packaging-{version}-bin
  3. Run the script, start Shepher service and waiting start of each container in Docker accomplish

    $ sh bin/docker-run.sh start 
  4. Visit http://localhost:8089 or self defined server.url (Reference to Parameter instruction)

Production environment deployment

The steps for production environment deployment is similar to local compiling deployment, but pay attention to the setting of data sources, CAS/LDAP and domain names. In addition, because each company's internal mail service is relatively closed, you need to implement your own CustomMailSender class, and set mail.sender=customMailSender inconf/application.properties, so that Shepher can use the mail service normally.

  1. Import db/init.sql into MySQL
  2. Create the file conf/application-online.properties, and modify the configuration according to Parameter instruction
  3. Run the command in the Shepher root directory

    $ mvn clean package
  4. Copy shepher-packaging/target/shepher-packaging-{version}-bin to the production environment, and enter the directory

    $ cd shepher-packaging/target/shepher-packaging-{version}-bin
  5. Run the command below, start Shepher

    $ sh bin/run.sh -c conf/application.properties,conf/application-online.properties start 
  6. Visit self defined server.url (Reference to Parameter instruction)

Contributors

Long Xie (@xielong), Jinliang Ou (@oujinliang), Chuanyu Ban (@banchuanyu), Chuyang Wei (@brianway), Peng Zhang (@monsters-peng), Yaoli Liu (@iloayuil)