Updating ZooKeeper
ZooKeeper configurations should be stored on disk in the following structure starting at
$METRON_HOME/config/zookeeper
:
- global.json
The global config
- sensors
The subdirectory containing sensor enrichment configuration JSON (for example, snort.json, bro.json)
By default, this directory as deployed by the ansible infrastructure is at
$METRON_HOME/config/zookeeper
.
While the configs are stored on disk, they must be loaded into ZooKeeper to be used. To
this end, there is a utility program to assist in this called
$METRON_HOME/bin/zk_load_config.sh
.
This has the following options:
-f,--force
Force operation
-h,--help
Generate Help screen
-i,--input_dir <DIR>
The input directory containing the configuration files named like "$source.json"
-m,--mode <MODE>
The mode of operation: DUMP, PULL, PUSH
-o,--output_dir <DIR>
The output directory which will store the JSON configuration from ZooKeeper
-z,--zk_quorum <host:port,[host:port]*>
ZooKeeper Quorum URL (zk1:port,zk2:port,...)
Usage examples:
To dump the existing configs from ZooKeeper on the single node vagrant machine:
$METRON_HOME/bin/zk_load_configs.sh -z node1:2181 -m DUMP
To push the configs into ZooKeeper on the single node 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