Managing
Also available as:
PDF

Understanding ZooKeeper Configurations

ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

ZooKeeper configurations should be stored on disk in the following structure starting at $METRON_HOME/bin/zk_load_configs.sh:

global.json

The global config

sensors

The subdirectory containing the sensor enrichment configuration JSON (for example, snort.json or bro.json

By default, the sensors directory as deployed by the Ansible infrastructure is located at $METRON_HOME/config/zookeeper.

Although the configurations are stored on disk, they must be loaded into ZooKeeper to be used. You can use the utility program $METRON_HOME/bin/zk_load_config.sh to load configurations into ZooKeeper.

-f,--force

Force operation

-h,--help

Generate Help screen

-i,--input_dir <DIR>

The input directory containing the configuration files named, for example $source.json

-m,--mode <MODE>

The mode of operation: DUMP, PULL, PUSH

-o,--output_dir <DIR>

The output directory that stores the JSON configuration from ZooKeeper

-z,--zk_quorum <host:port,[host:port]*>

The ZooKeeper Quorum URL (zk1:port,zk2:port,...)

See the following list for examples of usage: Usage examples:

  • To dump the existing configs from ZooKeeper on the single-ode vagrant machine:

    $METRON_HOME/bin/zk_load_configs.sh -z node1:2181 -m DUMP

  • To push the configs into ZooKeeper on the single-ode vagrant machine:

    $METRON_HOME/bin/zk_load_configs.sh -z node1:2181 -m PUSH -i $METRON_HOME/config/zookeeper

  • To pull the configs from ZooKeeper to the single node vagrant machine disk:

    $METRON_HOME/bin/zk_load_configs.sh -z node1:2181 -m PULL -o $METRON_HOME/config/zookeeper -f