1. 创建Dockerfile

首先,需要创建一个Dockerfile文件来构建自己的ELK镜像。在该文件中,需要安装Java、Elasticsearch、Logstash和Kibana,并配置相应的环境变量。以下是一个例子:

FROM docker.elastic.co/elasticsearch/elasticsearch:7.9.1

LABEL maintainer="your-name"

# Install Java
RUN yum install -y java-11-openjdk-devel

# Install Logstash
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
    yum install -y https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.rpm && \
    yum clean all

# Install Kibana
RUN yum install -y kibana-7.9.1 && \
    yum clean all

# Expose ports
EXPOSE 9200 5601

# Set environment variables
ENV ELASTICSEARCH_URL=http://localhost:9200
ENV KIBANA_INDEX=.kibana
ENV LOGSTASH_HOME=/usr/share/logstash
ENV PATH=$PATH:/usr/share/logstash/bin:/usr/share/kibana/bin

# Start services
CMD /usr/share/elasticsearch/bin/elasticsearch -d && /usr/share/kibana/bin/kibana -d && /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/
  1. 创建docker-compose.yml文件

接下来,需要创建一个docker-compose.yml文件来定义ELK服务。以下是一个例子:

version: '3.7'

services:
  elasticsearch:
    build: .
    container_name: elasticsearch
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch_data:/usr/share/elasticsearch/data

  logstash:
    build: .
    container_name: logstash
    depends_on:
      - elasticsearch
    volumes:
      - ./logstash/config:/etc/logstash/conf.d
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    ports:
      - "5044:5044"

  kibana:
    build: .
    container_name: kibana
    depends_on:
      - elasticsearch
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200

volumes:
  elasticsearch_data:

在该文件中,定义了三个服务:Elasticsearch、Logstash和Kibana。其中,Elasticsearch和Kibana的配置比较简单,主要是设置容器名称、端口映射和依赖关系。Logstash的配置稍微复杂一些,需要设置配置文件目录、管道目录、环境变量和端口映射。同时,还需要设置依赖关系,确保Logstash在Elasticsearch启动之后再启动。

  1. 运行docker-compose

最后,通过运行docker-compose命令来启动ELK服务:

docker-compose up -d

该命令将会构建和启动ELK服务,并将它们作为容器运行在后台。在启动完成后,可以通过浏览器访问Kibana服务,地址为http://localhost:5601,来查看和管理日志数据。同时,也可以使用Logstash来收集和处理日志数据,并将其发送到Elasticsearch中进行存储和分析

docker compose部署elk

原文地址: https://www.cveoy.top/t/topic/eS5Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录