使用 Docker Compose 部署 ELK

本文将介绍如何使用 Docker Compose 部署 ELK (Elasticsearch, Logstash, Kibana),这是一个强大的日志分析平台,可以帮助您收集、分析和可视化日志数据。

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/

2. 创建 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 启动之后再启动。

3. 运行 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/nZWP 著作权归作者所有。请勿转载和采集!

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