Skip to content

Cluster and brokers configuration in Apache kafka with Metric Visualization using JMX Exporter Agent, Connection and monitoring of Prometheus, Grafana, Conduktor, kafka Connect, kafka-schema-registry, ksqlDB,kafka REST Proxy, PostgreSql, and PgAdmin 4 in Docker Containers.

ali-ramirez/kafka-full-stack

Repository files navigation

kafka Logo kafka logo kafka logo kafka logo

Conduktor logo Postgresql logo Prometheus logo Grafana logo

Monitoring and Metrics for Apache Kafka, complete environment and tools

Full Configuration Environment for Apache kafka Metrics and Monitoring.

Description

Cluster and brokers configuration in Apache kafka with Metric Visualization using JMX Exporter Agent, Connection and monitoring of Prometheus, Grafana, Conduktor, kafka Connect, kafka-schema-registry, ksqlDB,kafka REST Proxy, PostgreSql, and PgAdmin 4 in Docker Containers.

Requirements

Make sure you have the latest versions of Docker and Docker Compose installed on your machine.

Clone this repository or copy the files from this repository into a new folder. In the docker-compose.yml file, you can change the ports (in case you're running multiple containers on your system).

With this project, you can quickly run the following:

Contents:

Configuration

Edit the .env file to change the default environment variables.

Installation

Open a terminal and run cd to the folder where you can see the files docker-compose-single-full-stack.yml, which contains the necessary configuration to deploy a Kafka broker, and the file docker-compose-multiple-full-stack.yml, which contains the configuration for multiple Apache Kafka brokers.

Execute as needed:

docker-compose -f docker-compose-single-full-stack.yml up -d  

This will start the containers and create volumes according to the configuration in your docker-compose.yml files. Make sure to grant write permissions to the directory so it can create the necessary volumes for the containers. Similarly, remember to clean the volumes folder when running different files to avoid data inconsistency.

  • .env – File containing the environment variable data.
  • volumenes – Folder containing container data.
  • config – Folder containing the configuration files necessary for the operation of the containers.

The containers are already built and running. You should be able to access the installation of each container.

Use

Services

You can visit http:/localhost:8083 to check the status of kafka-connect, or go to http:/localhost:8088 to view the status of ksqldb-server, as well as the other services such as kafka-rest-proxy and kafka-schema-registry.

kafka connect

ksqldb

Prometheus

You can visit http:/localhost:9090 to access Prometheus after starting the containers, and you will see a screen like the following, where you will have the option to add panels based on your custom query.

prometheus

In the Status menu, you can see the status of your Apache kafka broker under targets.

prometheus

Grafana

You can visit http:/localhost:3000 to access Grafana. The default username is admin, which is provided in the .env file, and the password is admin. Once you log in, it will prompt you to create a new password.

grafana

Once logged in, you will see a screen like the following:

grafana

Where you will need to add your Prometheus data source as shown in the image.

grafana

You will select Prometheus as your data source.

grafana

You will need to fill in the connection details for your Prometheus container.

To add a new dashboard to Grafana, select New, followed by Import, where you will choose the dashboard-kafka.json file located in the config folder, which is configured for the visualization of Kafka metrics.

grafana

Once the file is imported, you will obtain the following screens with multiple panels and graphs representing the metrics of the Apache Kafka cluster and brokers.

grafana

grafana

grafana

Conduktor

You can visit http:/localhost:8080 to access Conduktor. The default username is admin@admin.io, and the password is admin. You can modify these credentials in the environment variables located in the .env file.

conduktor

The Conduktor tool will allow you to view the status of the cluster as well as visualize the Apache Kafka brokers you have deployed.

conduktor

conduktor

In the Conduktor interface, you will be able to see the status of the connection with your configured and connected services, such as kafka-connect and kafka-schema-registry to Apache Kafka.

conduktor

conduktor

Conduktor will be useful for conducting the necessary tests and visual management of Apache Kafka. You can create new topics and send/receive messages as well.

conduktor

From the Conduktor interface, you can create connectors and schemas, manage them, and test them visually.

conduktor

License

CC0

About

Cluster and brokers configuration in Apache kafka with Metric Visualization using JMX Exporter Agent, Connection and monitoring of Prometheus, Grafana, Conduktor, kafka Connect, kafka-schema-registry, ksqlDB,kafka REST Proxy, PostgreSql, and PgAdmin 4 in Docker Containers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published