基于docker 搭建elk日志分析系统
2019-08-15 16:08
423 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38895698/article/details/99637643
elasticsearch 6.8.2
logstash 6.8.2
elasticsearch-head:5
filebeat 6.5.4
filebeat 在docker hub上没有进行维护,同时在es网站上docker 镜像下载缓慢,最终在aliyun docker 中下载的别人上传的 filebeat
3、es的搭建
es搭建包括两部分主要是es与es-head的搭建
es 搭建
1、目的
因公司业务需求,现在架构采用spring cloud分布式,无论在开发、测试、生产环境上都需要根据日志来排查出现bug的原因,因此需要搭建elk日志分析系统,又因为才用docker更加方便,所以采用docker来搭建的elk。
2、镜像版本
kibana 6.8.2
docker pull kibana:6.8.2
elasticsearch 6.8.2
docker pull elasticsearch:6.8.2
logstash 6.8.2
docker pull logstash:6.8.2
elasticsearch-head:5
docker pull mobz/elasticsearch-head:5
filebeat 6.5.4
filebeat 在docker hub上没有进行维护,同时在es网站上docker 镜像下载缓慢,最终在aliyun docker 中下载的别人上传的 filebeat
docker pull registry.cn-hongkong.aliyuncs.com/hyn-beats/filebeat:6.5.4
3、es的搭建
es搭建包括两部分主要是es与es-head的搭建
es 搭建
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" elasticsearch:6.8.2
看到此页面es搭建成功
es-head搭建
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
在es-head连接es可能是连不上的,是因为es没有开启跨域
进入es容器内部 找到config文件下的elasticsearch.yml
在此文件中增加
http.cors.enabled: true http.cors.allow-origin: "*"
然后重启es后es-head就可以连接上es
4、kibana的搭建
docker run -d -p 5601:5601 --link elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 kibana
使用link参数,会在kibana容器hosts文件中加入elasticsearch ip地址,这样我们就直接通过定义的name来访问es服务了。
通过访问端口号5601就可以进入到管理页面
同时刷新es-head就就可以看到kibana连接到了es
5、filebeat与logstash的搭建
在这两个搭建时需要注意配置文件,通过filebeat读取日志到logstash在经过处理后传输到es中
filebeat.yml
filebeat.prospectors: - paths: - /home/work/elk/logs/user/a.log multiline: pattern: ^\d{4} negate: true match: after fields: doc_type: user - paths: - /home/work/elk/logs/uaa/a.log multiline: pattern: ^\d{4} negate: true match: after fields: doc_type: uaa output.logstash: # 输出地址 hosts: ["logstash:5044"]
logstash.conf
input { beats { port => "5044" } } filter { if [fields][doc_type] == 'user' { grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" } } } if [fields][doc_type] == 'uaa' { # 这里写两个一样的grok,实际上可能出现多种不同的日志格式,这里做个提示而已,当然如果是相同的格式,这里可以不写的 grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" } } } } output { stdout { codec => rubydebug } elasticsearch { hosts => [ "elasticsearch:9200" ] index => "%{[fields][doc_type]}-%{+YYYY.MM.dd}" } }
启动logstash
docker run --rm -it --name logstash --link elasticsearch -d -p 5044:5044 -v ~/elk/yaml/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:6.8.2
启动 filebeat
docker run --name filebeat -d --link logstash -v /home/work/elk/yml/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /home/work/service/user-service/:/home/work/elk/logs/user/ -v /home/work/service/uaa-service/:/home/work/elk/logs/uaa/ filebeat:6.5.4
在启动filebeat时注意要把日志文件挂载到filebeat容器内这样filebeat才可以读取到日志文件
6、elk
在一切顺利后再es-head中就可以看到读取的日志文件
在kibana管理界面中
在这里就可以配置读取到的日志文件
配置好之后在kibana中就可以看到日志
相关文章推荐
- 基于Azure Cloud的ELK日志分析系统的搭建
- ELK日志分析系统搭建介绍
- ELK日志分析系统搭建
- 用ELK搭建简单的日志收集分析系统
- 在Windows系统下搭建ELK日志分析平台
- 开源日志分析系统ELK平台搭建部署
- 1-ELK安装及使用教程(搭建日志分析系统)
- ELK(一)ELK日志收集分析系统环境搭建
- 用ELK搭建简单的日志收集分析系统【转】
- elk + kafka + filebeat搭建日志分析系统
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
- 使用docker搭建ELK日志搜集系统(一)
- elasticsearch + logstash + kibana 搭建 ELK 日志分析系统
- centos7搭建ELK开源实时日志分析系统 推荐
- ELK日志分析系统搭建配置
- Docker中部署 ELK日志分析系统
- 使用Docker搭建ELK日志系统的方法示例
- 使用Docker搭建ELK日志搜集系统(三)
- docker版ELK(ElasticSearch+Logstash+ Kibana)+filebeat日志分析平台的搭建(一)
- ELK日志系统单体搭建,基于7.1.1版本