使用docker compose搭建一个elk系统的方法

 更新时间:2018年08月21日 10:12:12   作者:只是一个id  
这篇文章主要介绍了使用docker-compose搭建一个elk系统的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

找了不少使用 docker-elk 搭建的博客, 英文的阅读吃力不说, 镜像源也是慢的让人头皮发麻, 因此重新编排了一个docker-compose,源都是从 https://hub.docker.com/ 上找的, 即使拉的国内镜像源应该也能很好的支持了吧?

环境

  • Docker 18.06.0-ce
  • docker-compose 1.22.0

给每个容器最少分配 1G 的内存

软件版本

  • logstash: 5.*
  • elasticsearch: 5.*
  • kibana: 5.*

启动前的配置

在各个目录下都有对应的 config 配置, 根据各自的情况自行处理

拿默认的 logstash/confg/test.conf 中的配置举例:

input {
   file {
     #这里的路径指的是 logstash 容器中的路径, 外部接入需要使用 volume 进行目录映射 
      path => "/logs/input/*"
   }

    # 在 logstash 容器中的输入
   stdin {}
   
   # 因为做了本地5000端口和容器5000端口进行绑定, 所以可以用 nc 工具测试一下
   # echo "Test Logstash TCP Input Plugin" | nc localhost 5000
   tcp {
      type => "tcp"
      port => 5000
      mode => "server"
   }
}

output {
   file {
     #这里的路径指的是 logstash 容器中的路径, 外部接入需要使用 volume 进行目录映射
      path => "/logs/output/%{+yyyy-MM-dd-HH}/%{host}.log"
   }
   stdout {
      codec => rubydebug
   }
   elasticsearch {
    hosts => "elasticsearch:9200"
    # 这里设置的 index 在 kibana 中会用到
      index => "file-log-%{+YYYY.MM}" 
  }
}

启动容器

执行

git clone https://github.com/gaopengfei123123/docker-elk.git && cd docker-elk
docker-compose up -d --build

等一会看到执行成功的提示

Creating docker-elk_elasticsearch_1 ... done
Creating docker-elk_logstash_1   ... done
Creating docker-elk_kibana_1    ... done

在本地浏览器输入 http://localhost:5601/ 进入 kibana 界面

注意, 第一次启动时有可能会出现提示 elasticsearch not found 这类的问题, 可以先等个一两分钟刷新一下就好了, 如果还是不行就谷歌或者提 issue 解决一下

同目录下输入

docker-compose stop

则停止所有服务

测试一下

logs/input/ 目录下新增个 test.log 文件, 然后输入点东西验证一下, 或者命令行执行echo "Test Logstash TCP Input Plugin" | nc localhost 5000 通过 tcp 发送日志

docker-compose logs -f

查看各容器日志输出

TODO

  1. 引入 kafka 做缓冲
  2. 搭建 es 集群

github 地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • docker安装elastic search和kibana的实现

    docker安装elastic search和kibana的实现

    本文主要介绍了docker安装elastic search和kibana的实现,,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • CentOS7 PostgreSQL安装、配置、使用详解

    CentOS7 PostgreSQL安装、配置、使用详解

    这篇文章主要介绍了CentOS7 PostgreSQL安装、配置、使用详解的相关资料,需要的朋友可以参考下
    2016-11-11
  • Docker容器跨主机通信overlay网络的解决方案

    Docker容器跨主机通信overlay网络的解决方案

    Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式,本文给大家介绍Docker容器跨主机通信overlay网络的方案,感兴趣的朋友一起看看吧
    2022-02-02
  • docker中的jenkins配置sonarQube的过程

    docker中的jenkins配置sonarQube的过程

    SonarQube是一个开源的代码分析平台,用来持续分析和评测项目源代码的质量,通过SonarQube可以检测出项目中重复代码,潜在bug, 代码规范,安全性漏洞等问题,并通过SonarQube web UI展示出来,这篇文章主要介绍了docker中的jenkins配置sonarQube,需要的朋友可以参考下
    2023-08-08
  • 在Docker容器中不需要运行sshd的原因浅析

    在Docker容器中不需要运行sshd的原因浅析

    在一个容器中运行SSH服务器,这真的是一个错误(大写字母W)吗?老实说,没那么严重。当你不去访问Docker主机的时候,这样做甚至是极其方便的,但是这仍然需要在容器中取得一个shell
    2016-11-11
  • docker swarm 集群故障与异常详解

    docker swarm 集群故障与异常详解

    这篇文章主要介绍了docker swarm 集群故障与异常详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Docker搭建持续集成平台Jenkins的最简教程分享

    Docker搭建持续集成平台Jenkins的最简教程分享

    Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目,本文我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台,感兴趣的可以了解下
    2024-03-03
  • docker容器存储清理删除所需命令和方法

    docker容器存储清理删除所需命令和方法

    这篇文章主要介绍了docker容器存储清理所需命令和方法,我在用docker安装的es使用过程中,发现内存占满了,我把全部的都删除掉了,但有时候数据我们必须要使用,所以不能全删,需要指定删除,下面就是一些docker容器存储清理所需的一些命令和方法,需要的朋友可以参考下
    2023-01-01
  • docker-compose启动docker文件挂载失败的解决

    docker-compose启动docker文件挂载失败的解决

    这篇文章主要介绍了docker-compose启动docker文件挂载失败的解决方案。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker安装部署Neo4j的保姆级教程

    Docker安装部署Neo4j的保姆级教程

    本文主要介绍了Docker安装部署Neo4j的保姆级教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08

最新评论