一、安装elasticsearch

可以查看前篇博客 elasticsearch安装elasticsearch-head 安装

二、安装 配置 logstash

1.安装logstash

下载地址:https://www.elastic.co/downloads/logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.tar.gz

tar -zxvf logstash-6.5.4.tar.gz

2.为了方便统计,此处使用了自定义模板 springlog.json

{
"springboot-logback": {
"order": ,
"index_patterns": [
"sspringboot-logback-*"
]
},
"settings": {
"number_of_shards": ,
"number_of_replics":
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"thread": {
"type": "text"
},
"level": {
"type": "text"
},
"class": {
"type": "text"
},
"messge": {
"type": "text"
}
}
}
}

3.配置logstash.conf 可以在config目录中创建此文件

input {
beats {
port =>
ssl => false
}
}
filter {
if [fields][logtype] == "springboot-logback" {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:time} %{GREEDYDATA:thread} %{LOGLEVEL:level} (?<class>\bcom.idelan\S*) - %{GREEDYDATA:message}" }
}
mutate {
remove_field => ["host","tags","beat","@version","prospector","input"]
}
}
}
output {
if [fields][logtype] == "springboot-logback"{
elasticsearch {
hosts => ["192.168.30.242:9200"]
index => "logstash-%{+YYYY.MM.dd}"
template => "/home/tools/logstash-6.5.4/template/springlog.json" #此文件中的内容即上面自定义的模板json
template_name => "springboot-logback"
template_overwrite => true
}
stdout { codec => rubydebug } #将日志打印到控制台调试,放在if中顺便检测 是否获取到了[fields][logtype] 正式环境删除此行配置
} }

4.启动 logstash  进入logstash bin目录

./logstash -f ../config/logstash.conf

后台启动

./logstash -f ../config/logstash.conf &

5.grok 过滤规则配置

调试工具:http://grokdebug.herokuapp.com/

grok正则:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

6.日志说明 springboot日志配置

日志格式

-- ::36.487 [http-nio--exec-] INFO  com.idelan.test.controller.TestController - hello info

grok配置

%{TIMESTAMP_ISO8601:time} %{GREEDYDATA:thread} %{LOGLEVEL:level}  %{JAVACLASS:class} - %{GREEDYDATA:message}

由于我只想看属于我自己包中的日志,所以此处我过滤了com.idelan包下的日志

%{TIMESTAMP_ISO8601:time} %{GREEDYDATA:thread} %{LOGLEVEL:level}  (?<class>\bcom.idelan\S*) - %{GREEDYDATA:message}

自定义grok表达式

语法:(?<field_name>the pattern here)

三、安装配置filebeat

1.下载filebeat

地址:https://www.elastic.co/downloads/beats/filebeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.4-linux-x86_64.tar.gz

tar -zxvf filebeat-6.5.4-linux-x86_64.tar.gz

2.配置filebeat.yml 如果没有可以手动创建

filebeat.prospectors:
- input_type: log
paths:
- /usr/local/logs/springboot-demo/*.log
include_lines: [".*INFO.*",".*ERROR.*"]
exclude_lines: [".*DEBUG.*",".*WARN.*"]
exclude_files: [".*debug.*",".*warn.*"]
multiline:
pattern: '^\s*(\d{4}|\d{2})\-(\d{2}|[a-zA-Z]{3})\-(\d{2}|\d{4})' # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
#pattern: '^\s*("{)' # 指定匹配的表达式(匹配以 "{ 开头的字符串)
negate: true # 是否匹配到
match: after # 合并到上一行的末尾
max_lines: 1000 # 最大的行数
timeout: 30s # 如果在规定的时候没有新的日志事件就不等待后面的日志
fields:
logtype: springboot-logback
output.logstash:
hosts: ["192.168.30.242:10515"]

3.启动filebeat

调试命令:./filebeat -e -c filebeat.yml -d "publish"

后台启动:./filebeat -e -c filebeat.yml &

四、成果展示

ELK springboot日志收集的更多相关文章

  1. 基于Centos 7.4 搭建ELK整合SpringBoot日志收集

    基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...

  2. ELK分布式日志收集搭建和使用

    大型系统分布式日志采集系统ELK全框架 SpringBootSecurity1.传统系统日志收集的问题2.Logstash操作工作原理3.分布式日志收集ELK原理4.Elasticsearch+Log ...

  3. StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程)

    @ 目录 StringBoot整合ELK实现日志收集和搜索自动补全功能(详细图文教程) 一.下载ELK的安装包上传并解压 1.Elasticsearch下载 2.Logstash下载 3.Kibana ...

  4. SpringBoot+kafka+ELK分布式日志收集

    一.背景 随着业务复杂度的提升以及微服务的兴起,传统单一项目会被按照业务规则进行垂直拆分,另外为了防止单点故障我们也会将重要的服务模块进行集群部署,通过负载均衡进行服务的调用.那么随着节点的增多,各个 ...

  5. 微服务下,使用ELK做日志收集及分析

    一.使用背景 目前项目中,采用的是微服务框架,对于日志,采用的是logback的配置,每个微服务的日志,都是通过File的方式存储在部署的机器上,但是由于日志比较分散,想要检查各个微服务是否有报错信息 ...

  6. ELK+kafka日志收集

    一.服务器信息   版本 部署服务器 用途 备注 JDK jdk1.8.0_102 使用ELK5的服务器 Logstash 5.1.1 安装Tomcat的服务器 发送日志 Kafka降插件版本 Log ...

  7. 传统ELK分布式日志收集的缺点?

    传统ELK图示: 单纯使用ElK实现分布式日志收集缺点? 1.logstash太多了,扩展不好. 如上图这种形式就是一个 tomcat 对应一个 logstash,新增一个节点就得同样的拥有 logs ...

  8. ELK:日志收集分析平台

    简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋 ...

  9. ELK/EFK——日志收集分析平台

    ELK——日志收集分析平台 ELK简介:在开源的日志管理方案之中,最出名的莫过于ELK了,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.1)ElasticSea ...

随机推荐

  1. Caused by: java.io.FileNotFoundException: class path resource [../../resources/config/spring.xml] cannot be opened because it does not exist

    在尝试使用Spring的Test的时候遇到了这个错误 原来的代码: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(loca ...

  2. STM32学习中出现的错误

    1.添加了多个文件后编译发现出现了无效的重复声明: 原因:文件(头文件)调用的时候重复调用, 解决办法:每个头文件写的时候包含以下代码: #ifndef   __STM32F10X_H   //头文件 ...

  3. VirtualBox虚拟机Ubuntu设置共享文件夹,并自动挂载

    一.环境 Win10系统,VirtualBox-5.1.22-115126+Ubuntu16.04(64位)虚拟机   二.目的 在Ubuntu中能够共享Win10中的某个文件夹,而且能够自动挂载   ...

  4. E. Tree Painting(树形换根dp)

    http://codeforces.com/contest/1187/problem/E 分析:问得分最高,实际上就是问以哪个节点出发得到的分数最多,而呈现成代码形式就变成了换根,max其得分!!!而 ...

  5. python数据类型:字符串

    字符串是python中最常见的数据类型,使用单引号或双引号创建字符串 python不支持单字符类型,单字符在python中也是字符串 文档原文:http://www.runoob.com/python ...

  6. django框架进阶-cookie和session-长期维护

    ###############    python基础回顾:装饰器    ################ # 装饰器非常重要,1是写代码的时候,2是面试的时候,没有python开发不问装饰器的, # ...

  7. Docker 安装 CentOS

    Docker 安装 CentOS CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise ...

  8. OpenWrt Web 开发 LuCI框架 lua语言

    LuCI作为“FFLuCI”诞生于2008年3月份,目的是为OpenWrt固件从 Whiterussian 到 Kamikaze实现快速配置接口.Lua是一个小巧的脚本语言,很容易嵌入其它语言.轻量级 ...

  9. Mac下通过FFMpeg实现Android手机推流和播放

    一.Mac下搭建推流服务器(Nginx+RTMP+FFMpeg) 安装x264 git clone git://git.videolan.org/x264.git cd x264 ./configur ...

  10. 3DMAX安装未完成,某些产品无法安装的解决方法

    3DMAX提示安装未完成,某些产品无法安装该怎样解决呢?,一些朋友在win7或者win10系统下安装3DMAX失败提示3DMAX安装未完成,某些产品无法安装,也有时候想重新安装3DMAX的时候会出现本 ...