Giter Site home page Giter Site logo

kafka-cluster-vms's Introduction

Kafka Cluster on Virtual Machines

This is an automated solution for Kafka cluster + Prometheus monitoring created through Vagrant and Ansible. Follow the steps below:

  • clone the repository;
  • open the directory in terminal;
  • execute the command vagrant up;
  • wait until the environment is ready.

Requirements:

Cluster Details

The architecture of the cluster looks like: general setup

You can find detailed information about the boxes that I have used here - https://app.vagrantup.com/merev.

Kafka Nodes Information

The operating system installed on the nodes is Debian 11. Each node has 2 GB RAM, 2 CPUs, and 60 GB disk space. The hardware parameters can be adjusted before provisioning in the config.vm.provider block of the Vagrantfile. Each node has one zookeeper and one broker. The firewall is disabled. Every node has 2 network interfaces:

  • 1 NIC in NAT Mode - connected to the host machine;
  • 1 NIC in Host-Only Mode - connected to a separate virtual network for isolated communication between the VMs. (Cluster Network)

Monitoring and Configuration Management Information

The Docker and Ansible hosts are part of the same network and have the same parameters as the other VMs. Ansible is installed on the Ansible host and Prometheus Server and Grafana are started in containers. They are configured to manage and monitor the entire environment.

Initial Configuration

The initial configuration of the cluster contains the following actions:

  • Kafka Cluster Preparation;
  • Ansible Host Configuration;
  • Prometheus and Grafana Installation.

Running the Kafka Cluster

The Kafka Cluster is not started initially. In order to run it you should connect to the Ansible host and execute the following script - https://github.com/merev/kafka-cluster/blob/main/shared/post-provision-scripts/kafka-cluster-init.sh

kafka-cluster-vms's People

Contributors

merev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.