> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy Monitoring for Apache ZooKeeper

> Deploy GermainUX monitoring for Apache ZooKeeper to collect ensemble health, performance, JVM, connection, log, and infrastructure telemetry.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)

Availability
2017.4 or later

> **[Components](#components)**
>
> Single ZooKeeper component

> **[Validate Four-Letter-Word Access](#validate-four-letter-word-access)**
>
> Check ZooKeeper command access

> **[Validate Each Ensemble Member](#validate-each-ensemble-member)**
>
> Check every server

> **[Validate the Deployment](#validate-the-deployment)**
>
> Next step configuration

## Deploying GermainUX Monitoring for Apache ZooKeeper: Methods and Validation Steps

Deploy GermainUX monitoring for Apache ZooKeeper to collect ensemble health, performance, JVM, connection, log, and infrastructure telemetry.

GermainUX can collect ZooKeeper information through supported administrative commands, Prometheus-compatible metrics, logs, and related infrastructure monitoring.

### Components

GermainUX uses the following component to monitor Apache ZooKeeper:

| Component | Purpose |
| - | - |
| **Engine** | Collects ZooKeeper metrics, runtime statistics, logs, JVM data, and related infrastructure telemetry. |

### Monitoring Methods

| Monitoring Requirement | Method |
| - | - |
| ZooKeeper runtime and server statistics | Four-letter-word commands |
| ZooKeeper metrics | Prometheus-compatible metrics |
| ZooKeeper errors and warnings | Log monitoring |
| JVM health | Java/JVM monitoring |
| Server resource health | Operating-system monitoring |

## Prerequisites

Before deployment, identify:

* ZooKeeper ensemble
* ZooKeeper servers
* ZooKeeper version
* Server hostnames
* Client port
* Leader and follower topology

> **Show all 14**
>
> * GermainUX Engine
> * Network connectivity
> * Required four-letter-word commands
> * ZooKeeper configuration directory
> * Log locations
> * Prometheus metrics configuration, when used
> * JVM monitoring requirements
> * Operating-system monitoring requirements

### 1 Deploy or Select a GermainUX Engine

Use a GermainUX Engine that can access the ZooKeeper servers.

Confirm:

* Engine is online.
* ZooKeeper servers resolve from the Engine.
* Required network ports are reachable.
* Firewall rules permit the required monitoring traffic.
* Engine can reach all ensemble members that need monitoring.

### 2 Enable Required Four-Letter-Word Commands

ZooKeeper restricts administrative four-letter-word commands in newer configurations.

Configure the required commands in:

`zoo.cfg`

For example:

`4lw.commands.whitelist=stat,ruok,srvr,mntr,cons`

Enable only the commands required for monitoring.

Avoid enabling all commands unnecessarily.

After modifying ZooKeeper configuration, follow your standard ZooKeeper change and restart procedure.

### Avoid Unrestricted Four-Letter-Word Access

The configuration:

`4lw.commands.whitelist=*`

allows all four-letter-word commands.

Although the existing documentation shows this as an option, a restricted allowlist is preferable for production environments.

Enable only the required commands, such as:

* `ruok`
* `srvr`
* `stat`
* `mntr`
* `cons`

based on your monitoring requirements and ZooKeeper version.

### Validate Four-Letter-Word Access

From an authorized system with network access to ZooKeeper, verify that the required commands respond.

Confirm:

* ZooKeeper port is reachable.
* Required commands are allowed.
* Server returns monitoring information.
* Security controls restrict access to authorized systems.

### Enable Prometheus Metrics — Optional

ZooKeeper can expose metrics through its built-in metrics provider.

Configure the applicable settings in:

`zoo.cfg`

The current GermainUX documentation provides this example:

`metricsProvider.httpPort=7001`

`metricsProvider.exportJvmInfo=true`

After changing the configuration, restart ZooKeeper according to your normal operational procedures.

Use a port and security configuration appropriate for your environment.

### Secure the Metrics Endpoint

When Prometheus-compatible metrics are enabled:

* Restrict network access.
* Allow only authorized GermainUX or monitoring systems.
* Do not expose the endpoint unnecessarily to untrusted networks.
* Confirm firewall rules.
* Validate the selected port.

### Configure ZooKeeper Logs

ZooKeeper logs are normally configured through the applicable logging configuration for the deployed ZooKeeper version.

The current GermainUX documentation references:

`log4j.properties`

in the ZooKeeper configuration directory.

Identify:

* ZooKeeper log directory
* Log filenames
* Log rotation
* File permissions
* Engine or Agent access

Ensure GermainUX has read access without granting unnecessary write permissions.

### 3 Deploy JVM Monitoring — Optional

When deeper Java visibility is required, configure GermainUX JVM monitoring for the ZooKeeper process.

Use JVM monitoring to analyze:

* Heap
* Garbage collection
* Threads
* JVM uptime
* Java process behavior

Use only monitoring methods compatible with the deployed ZooKeeper and Java versions.

### 4 Deploy Operating-System Monitoring — Optional

Configure server monitoring when infrastructure telemetry is required.

Monitor:

* CPU
* Memory
* Disk
* Filesystem
* Disk I/O
* Network
* Java process

Deploy the appropriate GermainUX monitoring method for the operating system hosting ZooKeeper.

### Validate Each Ensemble Member

For every monitored ZooKeeper server, confirm:

**1. Server is reachable**

**2. ZooKeeper process is running**

**3. Required four-letter-word commands respond**

**4. Prometheus metrics respond when enabled**

**5. ZooKeeper logs are readable when configured**

**6. JVM data is available when configured**

**7. Operating-system data is available when configured**

### Validate Ensemble Visibility

Confirm GermainUX can distinguish:

* ZooKeeper servers
* Leader
* Followers
* Ensemble members
* Individual server metrics

This is important for diagnosing ensemble-specific rather than cluster-wide issues.

### Validate the Deployment

Confirm:

* Engine is online.
* ZooKeeper servers are reachable.
* Required ports are open.
* Required commands are enabled.
* Unnecessary administrative commands remain disabled.
* Metrics endpoint works when enabled.

> **Show all 10**
>
> * Logs are accessible.
> * JVM monitoring works when configured.
> * Infrastructure monitoring works when configured.
> * All required ensemble members report data.

Once deployment is validated, continue with **Configure Monitoring for Apache ZooKeeper**.

### Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Zookeeper environment. [Contact GermainUX Support](https://docs.germainux.com/main/support.md).

## Get Help

> **[Contact GermainUX Support](https://docs.germainux.com/main/support.md)**
>
> The Germain Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.