docker-compose安装elk实践

 更新时间:2026年01月15日 09:44:46   作者:hello_zzw  
文章内容涉及多个配置文件的设置,包括docker-compose.yml、elasticsearch.yml、kibana.yml和logstash.conf等,用于配置Elasticsearch、Kibana和Logstash的参数和设置

docker-compose安装elk

docker-compose.yml

version: '3.8'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.0
    container_name: elasticsearch
    environment:
      - node.name=elasticsearch
      - cluster.name=es-docker-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - xpack.security.enabled=false
      - xpack.security.enrollment.enabled=false
      - xpack.security.http.ssl.enabled=false
      - xpack.security.transport.ssl.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./data/elasticsearch:/usr/share/elasticsearch/data
      - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
    ports:
      - "9200:9200"
      - "9300:9300"
    networks:
      - elk
    restart: unless-stopped

  logstash:
    image: docker.elastic.co/logstash/logstash:8.14.0
    container_name: logstash
    volumes:
      - ./logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
    ports:
      - "5044:5044"
      - "15000:5000/tcp"
      - "15000:5000/udp"
      - "9600:9600"
    environment:
      - LS_JAVA_OPTS=-Xms256m -Xmx256m
    networks:
      - elk
    depends_on:
      - elasticsearch
    restart: unless-stopped

  kibana:
    image: docker.elastic.co/kibana/kibana:8.14.0
    container_name: kibana
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - NODE_OPTIONS=--openssl-legacy-provider
      - SERVER_NAME=kibana
      - SERVER_HOST=0.0.0.0
      - ELASTICSEARCH_USERNAME=  # 留空以禁用安全
      - ELASTICSEARCH_PASSWORD=  # 留空以禁用安全
      - XPACK_SECURITY_ENABLED=false
      - XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=fhjskloppd678ehkdfdlliverpoolfcr
      - I18N_LOCALE=zh-CN
      - XPACK_FLEET_ENABLED=false
      - XPACK_SPACES_ENABLED=false
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - NODE_OPTIONS=--openssl-legacy-provider
    networks:
      - elk
    depends_on:
      - elasticsearch
    restart: unless-stopped

networks:
  elk:
    driver: bridge

elasticsearch/config/elasticsearch.yml

cluster.name: "es-docker-cluster"
network.host: 0.0.0.0

# 单节点配置
discovery.type: single-node

# 关闭安全特性(开发环境)
xpack.security.enabled: false
xpack.security.enrollment.enabled: false

# 禁用 HTTPS
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false

# 允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization

elasticsearch/plugins

wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.14.0.zip
unzip elasticsearch-analysis-ik-8.14.0.zip -d analysis-ik
rm elasticsearch-analysis-ik-8.14.0.zip

kibana/config/kibana.yml

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch:9200"]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
xpack.security.enabled: false
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'

# 添加缺失的 xpack.security 相关配置
xpack.security.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'

logstash/config/logstash.conf

input {
  tcp {
    port => 5000
    codec => json
  }
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
  stdout {
    codec => rubydebug
  }
}

logstash/config/logstash.yml

http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker容器不识别宋体等字体的解决方案

    Docker容器不识别宋体等字体的解决方案

    这篇文章主要介绍了Docker容器不识别宋体等字体的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker cgroup 资源监控的详解

    docker cgroup 资源监控的详解

    这篇文章主要介绍了docker cgroup 资源监控的详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • Docker容器启动的全方位方法汇总

    Docker容器启动的全方位方法汇总

    这篇文章主要介绍了Docker的基本启动和运行模式,包括容器的启动、后台运行、命名、端口映射、数据持久化、环境变量配置、重启策略、交互模式等,并提供了常用容器和镜像管理命令,以及系统信息与清理命令,总结强调了必需、推荐和可选的启动选项参数
    2025-12-12
  • 详解Docker在哪里保存日志文件

    详解Docker在哪里保存日志文件

    本文主要介绍了Docker在哪里保存日志文件,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Docker每次启动容器,IP及hosts指定的操作

    Docker每次启动容器,IP及hosts指定的操作

    这篇文章主要介绍了Docker每次启动容器,IP及hosts指定的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker中cgroups资源控制实战

    Docker中cgroups资源控制实战

    cgroups是Linux内核的功能,允许用户管理和限制进程组资源使用,支持资源限制、优先级控制、资源记录等,应用广泛,Docker和k8s等容器技术,通过cgroups实现精细的资源控制,本文就来详细的介绍一下
    2024-11-11
  • docker容器如何查看运行日志

    docker容器如何查看运行日志

    这篇文章主要介绍了docker容器如何查看运行日志问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker Registry搭建私有镜像仓库的实现方法

    Docker Registry搭建私有镜像仓库的实现方法

    这篇文章主要介绍了Docker Registry搭建私有镜像仓库的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • docker搭建xxl-job的实现步骤

    docker搭建xxl-job的实现步骤

    XXL-JOB是一个轻量级分布式任务调度平台,通过xxljob,我们可以方便地实现任务调度和任务执行监控,本文介绍了docker搭建xxl-job的实现步骤,感兴趣的可以了解一下
    2023-12-12
  • Docker如何进入启动容器

    Docker如何进入启动容器

    本篇文章主要介绍了Docker如何进入启动容器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论