EFK实战二 - 日志集成.docx

上传人:A*** 文档编号:142724340 上传时间:2020-08-22 格式:DOCX 页数:7 大小:259.79KB
返回 下载 相关 举报
EFK实战二 - 日志集成.docx_第1页
第1页 / 共7页
EFK实战二 - 日志集成.docx_第2页
第2页 / 共7页
EFK实战二 - 日志集成.docx_第3页
第3页 / 共7页
EFK实战二 - 日志集成.docx_第4页
第4页 / 共7页
EFK实战二 - 日志集成.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《EFK实战二 - 日志集成.docx》由会员分享,可在线阅读,更多相关《EFK实战二 - 日志集成.docx(7页珍藏版)》请在金锄头文库上搜索。

1、EFK实战二 - 日志集成前言在EFK基础架构中,我们需要在客户端部署Filebeat,通过Filebeat将日志收集并传到LogStash中。在LogStash中对日志进行解析后再将日志传输到ElasticSearch中,最后通过Kibana查看日志。上文EFK实战一 - 基础环境搭建已经搭建好了EFK的基础环境,本文我们通过真实案例打通三者之间的数据传输以及解决EFK在使用过程中的一些常见问题。首先看一下实际的业务日志2020-01-09 10:03:26,719 INFO =GetCostCenter Start=2020-01-09 10:03:44,267 WARN 成本中心编码少于

2、10位!deptId:D000004345,companyCode:012020-01-09 10:22:37,193 ERROR java.lang.IllegalStateException: SessionImplabcpI7fK-WYnW4nzXrv7w,: cant call getAttribute() when session is no longer valid. at com.caucho.server.session.SessionImpl.getAttribute(SessionImpl.java:283) at weaver.filter.PFixFilter.doFi

3、lter(PFixFilter.java:73) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at weaver.filter.MonitorXFixIPFilter.doFilter(MonitorXFixIPFilter.java:30) at weaver.filter.MonitorForbiddenUrlFilter.doFilter(MonitorForbiddenUrlFilter.java:133)日志组成格式为:时间 日志级别 日志详情主要任务就是将这段

4、日志正常写入EFK中。filebeat安装配置 下载filebeat7.5.1 将下载后的文件上传至服务器并解压tar -zxvf filebeat-7.5.1-linux-x86_64.tar.gz 修改filebeat.yml,filebeat.inputs:- type: log enabled: true paths: - /app/weaver/Resin/log/xxx.log此段配置日志输入,指定日志存储路径output.logstash: # The Logstash hosts hosts: 172.31.0.207:5044此段配置日志输出,指定Logstash存储路径 启

5、动filebeat./filebeat -e -c filebeat.yml如果需要静默启动,则使用nohup ./filebeat -e -c filebeat.yml & 命令启动即可logstash配置logstash的配置主要分为三段input,filter,output。input用于指定输入,主要是开放端口给Filebeat用于接收日志filter用于指定过滤,对日志内容进行解析过滤。output用于指定输出,直接配置ES的地址即可input beats port = 5044 output elasticsearch hosts = http:/172.31.0.127:9200

6、 index = myindex-%+YYYY.MM.dd user = elastic password = xxxxxx 我们配置好logstash后通过命令重启logstashdocker-compose -f elk.yml restart logstash经过上述两步配置后应用程序往日志文件写入日志,filebeat会将日志写入logstash。在kibana查看写入的日志结果如下:日志显示有2个问题: 由于错误日志堆栈信息有多行,在kibana中展示成了多行,数据查看很乱。需要将堆栈异常整理成一行显示。 需要对日志进行解析,拆成“时间 日志级别 日志详情”的显示格式。优化升级 在f

7、ilebeat中设置合并行filebeat默认是行传输的,但是我们的日志肯定是多行一个日志,我们要把多行合并到一起就要找到日志的规律。比如我们的日志格式全都是以时间格式开头,所以我们在filebeat中filebeat.inputs区域添加如下几行配置 # 以日期作为前缀 multiline.pattern: d4-d1,2-d1,2 # 开启多行合并 multiline.negate: true # 合并到上一行之后 multiline.match: after 在logstash中设置对日志的解析将日志解析成“时间 日志级别 日志详情”的展示格式,所以我们需要在logstash配置文件中添

8、加filter段filter grok match = message = (?d4-d2-d2sd2:d2:d2),d3 %LOGLEVEL:loglevel (?.*) 这里主要是使用grok语法对日志进行解析,通过正则表达式对日志进行过滤。大家可以通过kibana里的grok调试工具进行调试配置完成后我们重新打开kibana Discover界面查看日志,符合预期,完美!常见问题kibana 乱码这个主要原因还是客户端日志文件格式有问题,大家可以通过file xxx.log查看日志文件的编码格式,如果是ISO8859的编码基本都会乱码,我们可以在filebeat配置文件中通过encodi

9、ng指定日志编码进行传输。filebeat.inputs:- type: log enabled: true paths: - /app/weaver/Resin/log/xxx.log encoding: GB2312kibana 提取字段出错如上所示,打开kibana Discover面板时出现此异常,大家只要删除ES中的.kibana_1索引然后重新访问Kibana即可。查看周围文件我们在终端查看日志某关键字时一般会查上下文信息便于排查问题,如经常用到的指令cat xxx.log | grep -C50 keyword,那么在Kibana中如何实现这功能呢。在Kibana中搜索关键字,然

10、后找到具体日志记录,点击左边向下箭头,然后再点击“查看周围文档”即可实现。动态索引我们日志平台可能需要对接多个业务系统,需要根据业务系统建立不同的索引。 在filebeat中给日志打上标记- type: log . fields: logType: oabusiness 在logstash中根据标记生成索引input beats port = 5044 filter if fieldslogType = oabusiness grok match = message = (?d4-d2-d2sd2:d2:d2),d3 %LOGLEVEL:loglevel (?.*) output elasticsearch hosts = http:/172.31.0.207:9200 index = %fieldslogType-%+YYYY.MM.dd user = elastic password = elastic 好了,各位朋友们,本期的内容到此就全部结束啦,能看到这里的同学都是优秀的同学,下一个升职加薪的就是你了!如果觉得这篇文章对你有所帮助的话请扫描下面二维码加个关注。“转发” 加 “在看”,养成好习惯!咱们下期再见!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号