ELFK-实时抓取JAVA日志
1、前言
本篇博客仅记录java应用日志,通过logstash正则进行数据结构化,输出到elasticsearch中,最后通过kibaka进行展示的完整过程,EK的安装及配置方法,请参考:ELK-Stack简介及安装手册
2、部署环境介绍
平台 | IP | 用途 | E版本 | L版本 | K版本 |
---|---|---|---|---|---|
CentOS 6.7 64Bit | 192.168.2.245 | ES+Cerebro+Kibana | 6.7.0 | 6.7.0 | |
CentOS 6.7 64Bit | 192.168.2.15 | Logstash | 6.7.0 |
3、Logstash的安装与配置
本篇仅记录抓取java日志的全过程,Logstash的安装请参考:ELFK-实时抓取HAPROXY日志
3.1、java样本数据分析与正则编写
样本数据
1
2019-10-30 12:20:00,190 [pool-15038-thread-1] INFO [com.ebring.jfpt.core.service.jfmanage.AutoBankCheckService] - 根据清算平台对账交易,该交易流水支付状态为未支付,交易流水号: 6666666666666
正则分拆:
1
(?<TOMCAT_DATESTAMP>20(?>\d\d){1,2}-(?:0?[1-9]|1[0-2])-(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9]) (?:2[0123]|[01]?[0-9]):?(?:[0-5][0-9])(?::?(?:(?:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?))) (?<THREAD>\S+) (?<LOG_LEVEL>([Aa]lert|ALERT|[Tt]race|TRACE|[Dd]ebug|DEBUG|[Nn]otice|NOTICE|[Ii]nfo|INFO|[Ww]arn?(?:ing)?|WARN?(?:ING)?|[Ee]rr?(?:or)?|ERR?(?:OR)?|[Cc]rit?(?:ical)?|CRIT?(?:ICAL)?|[Ff]atal|FATAL|[Ss]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)\s?) (?<COM_RONGLIAN>\S+) - (?<MESSAGE>.*)
Kibana Grok Debug:
Simulate后,如无报错则表示规则生效,数据结构化详情见
Structured Data
一栏
3.2、导入java_patterns规则库
1 | [root@localhost patterns]# pwd |
3.3、导入java_log.conf配置文件
提示:本次收集JAVA日志规则库,均为自行编写,配置文件篇幅过长,由于我司TOMCAT应用,字符集配置不一致导致数据抓取会出现乱码,所以我们最终是按照统一字符集进行收集分析。
1 | [root@localhost conf.d]# pwd |
3.4、重启logstash
提示:日志如无ERROR级别的日志,表示数据已开始向ES导入,随后请登录kibana查看数据情况
1
2 [root@elk logstash]# service logstash restart
[root@elk logstash]# tail -f /var/log/logstash/logstash-plain.log