本文是关于如何基于Docker快速构建ELK的。桂哥网络觉得很实用,就分享给大家参考,跟着桂哥网络看了看。
基于自建的Docker平台,可以快速构建完整的ELK系统,直接从Docker Hub获取相关图像,快速实现日志采集、分析和检索。
准备镜像
获取ES图片:docker拉弹性搜索:最新
获取kibana图像:docker pull kibana:latest
获取日志存储映像:docker拉日志存储:最新
开始弹性搜索
官方镜像中ES的配置文件保存在/usr/share/elastosearch/config中,必要时可以将目录映射到主机;数据文件目录/usr/usr/share/elastic search/data/data,这里我们映射数据目录;默认情况下,容器为API交互提供9200个端口。
dockerrun - nameelasticsearch
-v ' $ PWD/es data ' :/usr/share/elastic search/data
-p9200:9200
-delasticsearch容器启动后,您可以调用验证:
启动Kibana
Kibana作为ES操作的UI,需要与ES容器进行通信,所以这里要链接ES容器,提供5601端口进行页面交互。
dockrun-namekibana
-link弹性搜索:弹性搜索
-p5601:5601
在-dkibana容器启动后,用浏览器访问端口5601,就可以看到kibana页面了。当您第一次访问它时,可能会提示您尚未建立默认索引。在这里,您需要在管理页面上创建一个默认索引。默认索引通常称为logstash-*。创建一个默认索引,如下图所示。
启动Logstash
Logstash的主要功能是收集日志。这个组件有许多插件,可以支持大多数日志集成方法,如tcp、udp、jdbc、文件、队列等。它的配置很简单,启动方式也很简单。这里以nginx的访问日志为例,我们配置logstash读取nginx的access.log,然后将日志转发给Elasticsearch
首先编译一个logstash配置文件logstash.conf,如下所示:
输入{
文件{
path='/tmp/nginx/logs/access . log '
}
}输出{
Stdout{}#到控制台的日志输出
#输出到es
弹性搜索{
hosts='100.100.x.231 '
}
}启动容器。这里我们把nginx的日志放在/tmp/nginx/logs/access.log中,为了让容器读取这个日志,我们需要把日志目录映射到容器中。
docker runitRM-v/tmp/nginx/logs/access . log 3360/tmp/nginx/logs/access . log-f/config-dir/log stash . conf接下来,我们可以测试日志收集和呈现的整个过程。首先,在nginx中创建一个访问日志,比如通过curl直接调优nginx服务端口,或者直接将数据写入access.log,此时我们可以在logstash容器中看到下面的日志输出:
稍后,您可以通过打开Kibana页面看到实时写入的日志数据:
总结
Docker容器使得构建ELK非常方便。通过ELK,可以快速分析搜索日志,发现问题。ELK的几个核心贡献者成立了一个叫Elastic的公司,目前和我们公司有一些合作。在开源的基础上,公司还发布了一些叫做X-Pack的商业产品,在机器学习、图形算法、安全技术等方面提供了很多增强,感兴趣的同学可以自行学习。
感谢阅读!这篇关于“如何基于Docker快速构建ELK”的文章已经在这里分享了。希望以上内容能帮助大家学到更多的知识。如果你觉得文章好,可以分享给更多人看。