时间:2021-05-02
【摘要】 本文基于自建的docker平台速搭建一套完整的elk系统,相关的镜像直接从docker hub上获取,可以快速实现日志的采集和分析检索。
准备镜像
启动elasticsearch
官方镜像里面es的配置文件保存在/usr/share/elasticsearch/config,如果有需要可以将该目录映射到宿主机上;数据文件目录/usr/share/elasticsearch/data,这里我们把数据目录映射出来;容器默认对外提供9200端口,用作api交互。
? 1 2 3 4 docker run --name elasticsearch \ -v "$pwd/esdata":/usr/share/elasticsearch/data \ -p 9200:9200 \ -d elasticsearch容器启动以后可以调用一把验证一下:
启动kibana
kibana作为es操作的ui,需要跟es容器通信,所以这里要将es的容器link一下,对外提供5601端口做页面交互。
? 1 2 3 4 docker run --name kibana \ --link elasticsearch:elasticsearch \ -p 5601:5601 \ -d kibana容器启动后用浏览器访问5601端口,可以看到kibana页面,首次访问的时候可能会提示没有建立默认索引,这里需要在管理页面上创建一个默认索引。默认索引通常叫做logstash-*,如下图所示创建一个默认索引。
启动logstash
logstash主要作用是收集日志,这个组件有很多插件,可以支持大部分日志集成方式,如tcp、udp、jdbc、文件、队列等,他的配置非常简单,启动方式也很简单,这里以nginx的访问日志为例,我们配置logstash读取nginx的access.log,然后把日志转发到elasticsearch
首先编译一个logstash配置文件logstash.conf,内容如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 input{ file{ path=>"/tmp/nginx/logs/access.log" } }output{ stdout{ } #日志输出到控制台 #输出到es elasticsearch{ hosts=>"100.100.x.231" } }启动容器,这里我们把nginx的日志放在/tmp/nginx/logs/access.log,为了让容器能读到这个日志,需要把日志目录映射到容器里面。
? 1 docker run –it –rm -v /tmp/nginx/logs/access.log:/tmp/nginx/logs/access.log -f /config-dir/logstash.conf接下来我们可以全流程测试一下日志收集展示的过程。首先在nginx里面造点访问日志,比如直接curl调nginx服务端口,或者直接往access.log里面写数据也行。这时候再logstash容器我们可以看到如下日志输出:
再往后,打开kibana页面就可以看到实时写入的日志数据了:
总结
docker容器使elk搭建变得非常便捷,通过elk可以快速分析检索日志,发现问题,elk的几个核心贡献者成立了一家公司叫elastic,目前跟我司也有一些合作,在开源的基础上该公司也发布了一些商业产品,名为x-pack,提供了机器学习、图算法以及安全技术上的诸多加强,有兴趣的同学可以自行了解。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/devcloud/article/details/99681107
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
当我们搭建好Docker集群后就要解决如何收集日志的问题ELK就提供了一套完整的解决方案本文主要介绍使用Docker搭建ELK收集Docker集群的日志ELK简
找了不少使用docker-elk搭建的博客,英文的阅读吃力不说,镜像源也是慢的让人头皮发麻,因此重新编排了一个docker-compose,源都是从https:
Ubuntu搭建基于Docker的LNMP+Redis的开发环境服务器环境:Ubuntu14.041.安装Docker1.1执行update命令,和服务器同步软
前面我们使用的DockerHub是由Docker官方提供的,我们也可以搭建自己的Docker,搭建方式也很容器,因为Docker官方已经将Docker注册服务器
本文介绍了使用Docker搭建Django,Nginx,R,Python部署环境的方法,分享给大家,具体如下:基本环境:Ubuntu16.10docker17.