watchdog.properties file

Individual Apache ZooKeeper nodes have a watchdog.properties file in the ZooKeeper installation directory. The properties file defines the properties for the ZooKeeper watchdog process.

Usage

The properties defined in watchdog.properties can be used to update the configuration of the watchdog process. The Installation Manager modifies the watchdog.properties file to set the fully qualified path to the ZooKeeper start up and shutdown scripts. The other watchdog properties must be kept as defaults. In case you must edit the properties file, you must open the properties file in a text editor and make the necessary changes.

File location

<install_Dir>/zookeeper/watchdog/conf

Environment

Linux

Authorization

Only users with administrative permissions can edit the watchdog.properties file.

Option descriptions

enabled
Specifies whether the watchdog is enabled. Default value is true.
zkConfigPath
The path to the ZooKeeper configuration file. This path is set by the Installation Manager and must not be modified. Default path is, <install_Dir>/zookeeper/conf/zoo.cfg.
zkStartupCmd
The path to the ZooKeeper startup script. This path is set by the Installation Manager and must not be modified. Default path is, <install_Dir>/MailboxUtilities/bin/startGMCoordinate.sh.
zkStartupArg.<n>
Arguments to the ZooKeeper startup script. Specify each argument separately, with ".<n>" prefix, where n is 1, 2, 3, etc. The argument is set by the Installation Manager and must not be modified.
zkShutdownCmd
The path to the ZooKeeper shutdown script. The path is set by the Installation Manager and must not be modified. Default path is, <install_Dir>/MailboxUtilities/bin/stopGMCoordinate.sh.
zkShutdownArg.<n>
Arguments to the ZooKeeper shutdown script. Specify each argument separately, with ".<n>" prefix, where n is 1, 2, 3, etc. The argument is set by the Installation Manager and must not be modified.
pingInterval
Time interval to ping ZooKeeper servers (in seconds). Default is 5 seconds.
quorumLossMonitorInterval
Time interval to check loss of quorum (in seconds). Default is 30 seconds.
ensembleRecoveryMonitorInterval
Time interval to check for offline servers to come back online after quorum loss (in seconds). Default is 10 seconds.
ensembleRecoveryDelay
The number of seconds to wait before restarting ensemble after quorum loss, after detecting that offline servers have come back online. Can specify 0 for no delay. Default is 60 seconds.
connectionTimeout
Maximum time to wait (in seconds) when establishing connection to the ensemble when checking for quorum loss. Default is 15 seconds.
lockTimeout
Maximum time to wait (in seconds) to acquire a lock when checking for quorum loss. Default is 15 seconds.
maxQuorumLossTolerance
Maximum time (in seconds) that a loss of quorum is tolerated. After this time, the server is restarted with a reduced ensemble consisting of servers that are still online. Default is 180 seconds.
serverStartTimeout
Maximum time (in seconds) to wait for ZooKeeper server to start up. Default is 30 seconds.
serverStopTimeout
Maximum time (in seconds) to wait for ZooKeeper server to stop. Default is 30 seconds.
com.ibm.mailbox.zookeeper.ssl.protocol
The SSL version used for secure communication between ZooKeeper client-to-node communication. Default value is TLS. Valid values are TLS, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.
com.ibm.mailbox.zookeeper.ssl.ciphers
The list of TLS cipher suites to use when SSL is configured for ZooKeeper client-to-node communication.
Note: If the server is configured on TLS 1.3 and the client is on TLS 1.2, then the following exception is logged in zookeeper.log file:
The client supported protocol versions [TLSv1.2] are not accepted by server preferences w[TLS13].
To resolve this, configure the properties com.ibm.mailbox.zookeeper.ssl.protocol and com.ibm.mailbox.zookeeper.ssl.ciphers as follows:
com.ibm.mailbox.zookeeper.ssl.protocol=TLSv1.3
com.ibm.mailbox.zookeeper.ssl.ciphers=<list of supported ciphers for TLS 1.3>

Where, ssl.ciphers is the list of cipher suites as comma separated values. It can consist of one or a combination of all the supported ciphers.

For example,
com.ibm.mailbox.zookeeper.ssl.protocol=TLSv1.3
com.ibm.mailbox.zookeeper.ssl.ciphers=TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256

Examples

The following code is an example of a watchdog.properties file:

enabled = true
zkConfigPath = ../../zookeeper/conf/zoo.cfg
zkStartupCmd =  ../../MailboxUtilities/bin/startGMCoordinate.sh
zkStartupArg.<n> = 
zkShutdownCmd = ../../MailboxUtilities/bin/stopGMCoordinate.sh
zkShutdownupArg.<n> =
pingInterval = 5
quorumLossMonitorInterval = 30
ensembleRecoveryMonitorInterval = 10
ensembleRecoveryDelay = 10
connectionTimeout = 15
lockTimeout = 15
maxQuorumLossTolerance = 180
serverStartTimeout = 30
serverStopTimeout = 30
com.ibm.mailbox.zookeeper.ssl.protocol=TLSv1.3
com.ibm.mailbox.zookeeper.ssl.ciphers=TLS_AES_128_GCM_SHA256