EFK实战二 - 日志集成

日志组成格式为:

时间 日志级别 日志详情

主要任务就是将这段日志正常写入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存储路径

  • 启动filebeat

./filebeat -e -c filebeat.yml

如果需要静默启动,则使用nohup ./filebeat -e -c filebeat.yml & 命令启动即可

logstash配置


logstash的配置主要分为三段inputfilteroutput

input用于指定输入,主要是开放端口给Filebeat用于接收日志

filter用于指定过滤,对日志内容进行解析过滤。

output用于指定输出,直接配置ES的地址即可

input {

beats {

port => 5044

}

}

output {

elasticsearch {

hosts => [“http://172.31.0.127:9200”]

index => “myindex-%{+YYYY.MM.dd}”

user => “elastic”

password => “xxxxxx”

}

}

我们配置好logstash后通过命令重启logstash

docker-compose -f elk.yml restart logstash

经过上述两步配置后应用程序往日志文件写入日志,filebeat会将日志写入logstash。在kibana查看写入的日志结果如下:

file

日志显示有2个问题:

  • 由于错误日志堆栈信息有多行,在kibana中展示成了多行,数据查看很乱。需要将堆栈异常整理成一行显示。

  • 需要对日志进行解析,拆成“时间 日志级别 日志详情”的显示格式。

优化升级


  • 在filebeat中设置合并行

filebeat默认是行传输的,但是我们的日志肯定是多行一个日志,我们要把多行合并到一起就要找到日志的规律。比如我们的日志格式全都是以时间格式开头,所以我们在filebeat中filebeat.inputs区域添加如下几行配置

以日期作为前缀

multiline.pattern: ^\d{4}-\d{1,2}-\d{1,2}

开启多行合并

multiline.negate: true

合并到上一行之后

multiline.match: after

  • 在logstash中设置对日志的解析

将日志解析成“时间 日志级别 日志详情”的展示格式,所以我们需要在logstash配置文件中添加filter段

filter {

grok{

match => {

“message” => “(?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}),\d{3} %{LOGLEVEL:loglevel} (?.*)”

}

}

}

这里主要是使用grok语法对日志进行解析,通过正则表达式对日志进行过滤。大家可以通过kibana里的grok调试工具进行调试

file

配置完成后我们重新打开kibana Discover界面查看日志,符合预期,完美!

file

常见问题


kibana 乱码

这个主要原因还是客户端日志文件格式有问题,大家可以通过file xxx.log查看日志文件的编码格式,如果是ISO8859的编码基本都会乱码,我们可以在filebeat配置文件中通过encoding指定日志编码进行传输。

filebeat.inputs:

  • type: log

enabled: true

paths:

  • /app/weaver/Resin/log/xxx.log

encoding: GB2312

kibana 提取字段出错

file

如上所示,打开kibana Discover面板时出现此异常,大家只要删除ES中的.kibana_1索引然后重新访问Kibana即可。

file

查看周围文件

我们在终端查看日志某关键字时一般会查上下文信息便于排查问题,如经常用到的指令cat xxx.log | grep -C50 keyword,那么在Kibana中如何实现这功能呢。

file

在Kibana中搜索关键字,然后找到具体日志记录,点击左边向下箭头,然后再点击“查看周围文档”即可实现。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

最后

笔者已经把面试题和答案整理成了面试专题文档

image

image

image

image

image

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
713837576314)]

[外链图片转存中…(img-Irac4Sve-1713837576315)]

[外链图片转存中…(img-cmWYH3QS-1713837576315)]

[外链图片转存中…(img-5M5aifNI-1713837576315)]

[外链图片转存中…(img-1GAv5AIh-1713837576315)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值