ELK6.8版本整合filebeat和kafka收集springboot日志

一、系统流程图

ELK6.8版本整合filebeat和kafka收集springboot日志_第1张图片

二、统一springboot的日志格式

方便logstash 已中括号过滤用


	
		
		[%d][%-5level][%thread][%logger][%msg]%n
	

对应的日志格式展示如下

[2019-12-27 11:40:00,227][DEBUG][scheduling-1][org.fyh.api.dao.RecommendMapper.get][==>  Preparing: SELECT COUNT(1) FROM new_recommend WHERE to_user_id = ? ]

三、安装filebeat

正常安装参考官网,这里主要是如何获取日志

filebeat.inputs:
- type: log
  paths:
    - /u01/xxx-api/out.log
- type: log
  enabled: true
  paths:
    - /u01/xxx-api/out.log
  multiline.pattern: ^\[ #这里不是[开头的,就合并为多行
  fields:
    service_ip : 111.99.99.99 #filebeat添加字段,区分ip,filebeat自带hostname也可以区分
  multiline.negate: true
  multiline.match: after
  # 为每个项目标识,或者分组,可区分不同格式的日志
  tags: ["java-logs"]

#--------------------------------kafka------------------------------------------
output.kafka:
  # initial brokers for reading cluster metadata
  hosts: ["111.55.38.000:9092"]

  # message topic selection + partitioning
  topic: jar-log

  #required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

 启动命令

nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &

四、kafka安装和配置

kafka安装步骤这里不阐述,安装完成后创建topic就可

引入kafka的作用如下:

kafka具备可靠性,可以防止日志丢失和防止logsthash挂掉

吞吐量高,同时作为队列,可以缓冲logstash的写入压力

kafka的server.properties需要配置具体ip,方便安装kafkatool客户端连接

advertised.listeners=PLAINTEXT://yourIp:9092

 

五、安装logstash

正常安装参考官网,这里主要是如何接受filebeat的日志和传输到es的配置

filebeat-logstash.conf配置文件注意格式,utf-8格式和tab间隔

如下grok是把日志拆分为key-value形式

(?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\]\[(?.*)\]\[(?.*)\]\[(?.*)\]\[(?[\s\S]*)
input {
        kafka {
                bootstrap_servers => "127.0.0.1:9092"
                topics => ["api-log"]
                codec => json
        }
}

filter {
        grok {
                match => {
                        "message" => "(?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\]\[(?.*)\]\[(?.*)\]\[(?.*)\]\[(?[\s\S]*)"
                }
        }
}
output {
        elasticsearch {
                hosts => ["127.0.0.1:9200"]
                index => "filebeat-logstash"
         }
}

校验logstash脚本是否正常

./logstash -f ../../project-conf/filebeat-logstash.conf -t

如果输出result ok就表示配置正常

然后启动脚本

 nohup ./logstash -f ../../project-conf/xxx.conf  > myout.file 2>&1 &

六、安装es

参考官网安装

 

七、安装kibana

参考官网安装

 

最终显示效果

ELK6.8版本整合filebeat和kafka收集springboot日志_第2张图片

 

 

参考文档:

https://www.jianshu.com/p/c801ec3a64e5

你可能感兴趣的:(运维,架构)