filebeat收集java程序多行报错

1.什么是java程序多行报错

一个java程序报错往往是一个事件,这个报错并不是一行就能展现完的,简直须要几十行能力展现完这个报错内容,对于filebeat来说,filebeat每次都是把一行看成了一个日志,那么对于java多行报错就不是很敌对了,即便收集过去也是将一个事件的报错日志分成很多行在kibana上展现,这样对于开发人员来看日志就很头疼了

如果对于多行报错的日志还用传统的收集办法,就像下图一样,齐全不晓得报错是什么了,不论谁看这个日志都须要去比照

多行报错日志:个别的报错日志都是1行就能够显示残缺,然而有一些像java的我的项目一行就显示不残缺报错内容,往往是多行一起剖析能力看进去报错的内容

只有是须要将多行报错连在一起的日志都属于多行报错型日志

多行报错型日志收集计划:一个报错必定是以xxx结尾,到下一个xxx的时候完结,咱们能够通过匹配规定,匹配到xxx,只有下一行日志内容不是xxx,就都连在一起,直到遇到下一个xxx为止

tomcat java报错日志举例

这就是一个典型的多行报错的日志

能够看到它就是以工夫开始的,当初是20xx年嘛,所以能够匹配只有是以20结尾的行,只有下一行不是20结尾,就汇合在一起,直到遇到下一个20就完结

2.配置filebeat收集多行tomcat程序java多行报错

局部配置项进行阐明:

multiline.pattern: '^20' //多行匹配规定,以xxx结尾的,应用正则表达式 multiline.negate: true //值为true或flase,应用flase示意将匹配到的行合并到上一行,应用true示意将不匹配的行合并到上一行(用true的个别比拟多,因为多行报错,必定不是匹配的行合并在一起,那样就没有详细信息了) multiline.match: after //值为after和befor,应用after示意合并到匹配行的上一行开端,应用before示意合并到匹配行的行首(个别就是after,合并到匹配行的上一行开端就能够了)

2.1.配置filebeat收集多行报错

1.批改配置文件[root@nginx02 /etc/filebeat]# vim filebeat.ymlfilebeat.inputs:- type: log  enabled: true  paths:    - /data/tomcat/logs/catalina.out  multiline.pattern: '^20'                    #多行匹配规定  multiline.negate: true                    #将不匹配的规定的行合并在一起  multiline.match: after                #合并到匹配规定的上一行开端  tags: ["java"]output.elasticsearch:  hosts: ["192.168.81.210:9200"]  indices:    - index: "tomcat-java-%{+yyyy.MM.dd}"      when.contains:        tags: "java"2.重启filebeat[root@nginx02 /etc/filebeat]# systemctl restart filebeat

2.2.制作java多行报错

轻易关上配置文件,改错一个中央,来回启动就有了报错日志

[root@nginx02 /data/tomcat]# vim conf/server.xm<ssssServer port="8005" shutdown="SHUTDOWN">[root@nginx02 /data/tomcat]# ./bin/startup.sh 

2.3.查看es是否创立索引并产生数据

曾经有了153条数据

3.在kibana上关联es索引并统计日志

3.1.关联索引

点击Managerment---索引模式---创立索引

创立胜利

3.2.查问java多行报错日志

点击Discovery---抉择java索引---搜寻ERROR就能够看到java多行的报错日志了,能够显著看到,行变的高了,多行日志也就阐明合并在了一起

点击日志的小三角,即可看到残缺的报错内容