这篇文章主要讲解了“基于Docker如何快速搭建ELK”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Docker如何快速搭建ELK”吧!
准备镜像
获取es镜像:docker pull elasticsearch:latest
获取kibana镜像:docker pull kibana:latest
获取logstash镜像:docker pull logstash:latest
启动elasticsearch
官方镜像里面es的配置文件保存在/usr/share/elasticsearch/config,如果有需要可以将该目录映射到宿主机上;数据文件目录/usr/share/elasticsearch/data,这里我们把数据目录映射出来;容器默认对外提供9200端口,用作api交互。
docker run --name elasticsearch \ -v "$pwd/esdata":/usr/share/elasticsearch/data \ -p 9200:9200 \ -d elasticsearch
容器启动以后可以调用一把验证一下:
启动kibana
kibana作为es操作的ui,需要跟es容器通信,所以这里要将es的容器link一下,对外提供5601端口做页面交互。
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,内容如下:
input{ file{ path=>"/tmp/nginx/logs/access.log" } }output{ stdout{ } #日志输出到控制台 #输出到es elasticsearch{ hosts=>"100.100.x.231" } }
启动容器,这里我们把nginx的日志放在/tmp/nginx/logs/access.log,为了让容器能读到这个日志,需要把日志目录映射到容器里面。
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”的内容了,经过本文的学习后,相信大家对基于Docker如何快速搭建ELK这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。