Skip to main content
Skip table of contents

Apache Zookeeper Monitoring

Features for Apache Zookeeper

Germain provides monitoring capabilities for Apache Zookeeper, allowing you to track the uptime and performance. As a distributed coordination service, ZooKeeper plays a critical role in many distributed systems, and keeping a close eye on its health can prevent potential issues and outages. Here are some key aspects that Germain monitors:

ZooKeeper Ensemble Health

Germain monitors and helps ensure that all nodes in the ZooKeeper ensemble are up and running. Germain monitors the status of each node to detect any failures or connectivity issues.

Latency and Response Times

Germain keeps track of the average and peak latencies in ZooKeeper responses. High latencies can indicate performance bottlenecks or network problems.

Throughput

Germain monitors the rate of requests processed by ZooKeeper per second. Sudden drops in throughput might indicate issues with the system or increased load.

Open File Descriptors and Connections

The number of open file descriptors and client connections to ZooKeeper is monitored by Germain. Running out of file descriptors can lead to instability.

JVM Metrics

Java Virtual Machine (JVM) metrics like heap memory usage, garbage collection times, and thread counts are monitored by Germain. These metrics can help detect memory leaks or JVM-related problems.

Disk Usage

Regularly check the disk usage of ZooKeeper nodes to ensure they have enough space to operate correctly.

ZooKeeper Log Files

Error messages or warnings in ZooKeeper log files are automatically detected by Germain.

Watch Counts

ZooKeeper uses "watches" to notify clients of changes. Germain monitors watch counts which helps identify if clients are using too many watches and potentially overloading the system.

Ensemble Membership Changes

Germain tracks changes in the ZooKeeper ensemble, such as adding or removing nodes. Changes in ensemble membership could affect overall performance.

Connection Timeouts

Connection timeouts or failed connections to ZooKeeper is automatically detected by Germain, which might indicate network or firewall issues.

Leader Election

ZooKeeper has a leader-follower architecture. Germain monitors leader election and ensures a stable leader is essential for the system's health.

Outstanding Requests

Keep an eye on the number of outstanding requests to identify any potential bottlenecks.

Germain collects and visualizes the above metrics, making it easier to identify potential issues and ensure the overall health and performance of the ZooKeeper cluster.

For more detailed information, please reach out to us. We will provide you with specific guidance and assistance tailored to your needs.

Configuration

  1. Execute 4 Letter Word Commands
    Zookeeper provides a built-in feature to execute simple, four-letter words commands, which allows administrators to retrieve essential runtime statistics and information. Germain harnesses the potential of these commands to extract crucial data from Zookeeper. These commands include:

    • "srvr": Provides general information about the Zookeeper server, including its version, uptime, and mode (leader or follower).

    • "stat": Offers detailed statistics about the Zookeeper server, such as the number of connections, watches, and outstanding requests.

    • "cons": Shows a list of connected clients along with their IP addresses and operations' details.

    • "mntr": Returns a wide range of metrics about the Zookeeper server, including the number of nodes, watches, and latency statistics.

    By leveraging these commands, Germain fetches real-time data, enabling you to make informed decisions and promptly address any potential issues.

  2. Enable 4-Letter Commands
    To enable 4-Letter commands, add the following line to the zoo.cfg file and restart the zookeeper.

    CODE
    4lw.commands.whitelist=*

    The above configuration will allow all 4-letter commands. Alternatively, you can specify a comma-separated list of allowed commands instead of using * if you want to restrict certain commands.

    For example, to only allow the stat and ruok commands, you would use:

    CODE
    4lw.commands.whitelist=stat, ruok
  3. Enable Prometheus Metrics
    Integrating Prometheus metrics into Germain takes Zookeeper monitoring to the next level. Prometheus, a popular open-source monitoring system, offers a robust data model and query language, making it highly suitable for collecting and analyzing time-series data. Our solution employs Zookeeper exporters compatible with Prometheus, allowing you to scrape and store relevant metrics efficiently. With Prometheus metrics, you gain access to a wide array of quantitative data, such as request rates, response times, and node-specific statistics. These valuable insights empower you to visualize trends, set up alerts, and perform in-depth analyses to optimize the performance and stability of your Zookeeper cluster.
    To enable Prometheus Metrics in zookeeper, add below two lines to zoo.cfg file in conf directory, and restart zookeeper.

    CODE
    metricsProvider.httpPort=7001
    metricsProvider.exportJvmInfo=true
  4. Log Parsing
    Logs are an invaluable source of information when it comes to troubleshooting and understanding system behavior. Germain employs intelligent log parsing techniques to extract critical information from Zookeeper's log files. By analyzing log entries, we can identify potential errors, anomalies, and warning signs that might indicate underlying issues. Log parsing enables you to proactively address concerns before they escalate into significant problems, resulting in reduced downtime and improved overall system reliability.
    Zookeeper Logs are enabled by default. Log configuration can be done via log4j.properties file inside the conf directory.

  5. Go to Germain Workspace > Left Menu > Wizards > Apache Zookeeper

    Wizard to enable monitoring of Zookeeper - Germain UX

2. Select a server or create a new one

Apply Apache Zookeeper Node - Germain UX

3. Provide path to your Tomcat log files location

Set URL for Zookeeper Node - Germain UX

Example

Example of a Dashboard for ZooKeeper - Germain UX

Component: Engine

Feature Availability: 8.6.0 or later

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.