Home > Software > How to Integrate Elasticsearch & Kibana with Docker Compose

How to Integrate Elasticsearch & Kibana with Docker Compose

Anastasios Antoniadis

Master setting up Elasticsearch with Docker Compose using our in-depth guide. Effortlessly configure this powerful search and analytics engine for scalable data searching, logging, and management solutions.

Docker (1)

Elasticsearch and Kibana form a powerful duo in the Elastic Stack, offering an advanced search and analytics engine alongside a flexible data visualization tool, respectively. Elasticsearch provides the ability to quickly store, search, and analyze large volumes of data, while Kibana enables users to create visualizations from this data and manage the Elastic Stack. Deploying both services using Docker Compose simplifies the setup and management process, making it accessible for development, testing, and production environments. This guide will walk you through setting up Elasticsearch and Kibana using Docker Compose.

Prerequisites

Before you begin, ensure you have the following:

  • Docker installed on your system.
  • Docker Compose installed on your system.
  • Basic understanding of Docker concepts and the YAML syntax used in Docker Compose files.

Step 1: Create a Docker Compose File

Create a directory dedicated to your Elasticsearch and Kibana setup. This directory will contain your Docker Compose file (docker-compose.yml) and any additional configuration files or directories you might need.

mkdir elasticsearch-kibana-docker && cd elasticsearch-kibana-docker

Create the docker-compose.yml file:

touch docker-compose.yml

Open this file in a text editor and insert the following configuration:

version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    networks:
      - elastic-net

  kibana:
    image: docker.elastic.co/kibana/kibana:8.12.2
    container_name: kibana
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    networks:
      - elastic-net

volumes:
  elasticsearch-data:

networks:
  elastic-net:

Configuration Explained:

  • Elasticsearch Service:
    • image: Specifies the Elasticsearch Docker image to use.
    • container_name: Sets a custom name for easier reference.
    • environment: Configures Elasticsearch to run as a single-node cluster.
    • ports: Exposes Elasticsearch’s default port (9200) to the host.
    • volumes: Maps a volume for persistent data storage.
  • Kibana Service:
    • image: Specifies the Kibana Docker image to use.
    • container_name: Sets a custom name for easier reference.
    • depends_on: Ensures Kibana starts after Elasticsearch is available.
    • ports: Exposes Kibana’s default port (5601) to the host.
    • environment: Specifies the URL for the Elasticsearch instance Kibana should connect to.
  • Volumes: Declares named volumes for data persistence.
  • Networks: Defines a custom network (elastic-net) for inter-service communication.

Step 2: Launch Elasticsearch and Kibana

Navigate to the directory containing your docker-compose.yml file and start the services by running:

docker-compose up -d

This command will download the necessary Docker images (if not already present) and start the Elasticsearch and Kibana containers in detached mode.

Step 3: Verify the Services are Running

  • Elasticsearch: Confirm that Elasticsearch is operational by navigating to http://localhost:9200 in your web browser or using a tool like curl. You should see a JSON response with cluster information.
  • Kibana: Access the Kibana UI by navigating to http://localhost:5601. If everything is set up correctly, you should see the Kibana homepage, where you can begin exploring your Elasticsearch data or configuring dashboards.

Conclusion

Deploying Elasticsearch and Kibana with Docker Compose offers a streamlined method for setting up a robust search and analytics environment. This setup is not only beneficial for developers and data analysts looking to harness the power of the Elastic Stack but also for organizations aiming to implement advanced data visualization and monitoring solutions. By following this guide, you can quickly get Elasticsearch and Kibana up and running, ready to process and visualize your data. Whether you’re working on log analysis, real-time application monitoring, or complex data exploration, integrating Elasticsearch and Kibana into your workflow can significantly enhance your data insights.

Anastasios Antoniadis
Follow me
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x