转载请标明出处:
原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/
本文出自方志朋的博客

这篇文章主要介绍springboot整合elk.

elk 简介

  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

elk下载安装

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

建议在 linux上运行,elk在windows上支持得不好,另外需要jdk1.8 的支持,需要提前安装好jdk.

下载完之后: 安装,以logstash为栗子:

cd /usr/local/

mkdir logstash

tar -zxvf logstash-5.3.2.tar.gz

mv logstash-5.3.2 /usr/local/logstash

配置、启动 Elasticsearch

打开Elasticsearch的配置文件:

vim config/elasticsearch.yml

修改配置:

network.host=localhost
network.port=9200

它默认就是这个配置,没有特殊要求,在本地不需要修改。

启动Elasticsearch

./bin/elasticsearch

启动成功,访问localhost:9200,网页显示:

{"name" : "56IrTCM","cluster_name" : "elasticsearch","cluster_uuid" : "e4ja7vS2TIKI1BsggEAa6Q","version" : {"number" : "5.2.2","build_hash" : "f9d9b74","build_date" : "2017-02-24T17:26:45.835Z","build_snapshot" : false,"lucene_version" : "6.4.1"},"tagline" : "You Know, for Search"
}

配置、启动 logstash

在 logstash的主目录下:

vim config/log4j_to_es.conf 

修改 log4j_to_es.conf 如下:

input {log4j {mode => "server"host => "localhost"port => 4560}
}
filter {#Only matched data are send to output.
}
output {elasticsearch {action => "index"          #The operation on EShosts  => "localhost:9200"   #ElasticSearch host, can be array.index  => "applog"         #The index to write data to.}
}

修改完配置后启动:

./bin/logstash -f config/log4j_to_es.conf 

终端显示如下:

访问localhost:9600

{"host":"Pc-20130412.local","version":"5.3.2","http_address":"127.0.0.1:9600","id":"e6bb985c-c688-49a4-
a55b-4d362bb4136f","name":"Pc-20130412.local","build_date":
"2017-04-24T16:32:22Z","build_sha":"242159a5eea55fe213fe5c8
52d36455e24252c82","build_snapshot":false}

证明logstash启动成功。

配置、启动kibana

到kibana的安装目录:

./bin/kibana

默认配置即可。

访问localhost:5601,网页显示:

证明启动成功。

创建springboot工程

起步依赖如下:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

log4j的配置,/src/resources/log4j.properties如下:


log4j.rootLogger=INFO,console# for package com.demo.elk, log would be sent to socket appender.
log4j.logger.com.forezp=DEBUG, socket# appender socket
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.Port=4560
log4j.appender.socket.RemoteHost=localhost
log4j.appender.socket.layout=org.apache.log4j.PatternLayout
log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000# appender console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n

打印log测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootElkApplicationTests {@Testpublic void contextLoads() {}private Logger logger = Logger.getLogger(getClass());@Testpublic void test() throws Exception {for(int i=0;i<100;i++) {logger.info("输出info  ");logger.debug("输出debug+skkkw嗡嗡嗡kw");logger.error("输出error  嗡嗡嗡我");}}}

在kibana 实时监控日志

打开localhost:5601:

Management=>index pattrns=>add new:

点击discovery:

参考资料

https://my.oschina.net/itblog/blog/547250

源码下载

https://github.com/forezp/SpringBootLearning

优秀文章推荐:

  • 更多springboot 教程:springBoot非官方教程 | 文章汇总
  • 更多springcoud 教程:史上最简单的 SpringCloud 教程 | 文章汇总


扫码关注公众号有惊喜

(转载本站文章请注明作者和出处 方志朋的博客)

转载于:https://www.cnblogs.com/forezp/p/9852120.html

SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台相关推荐

  1. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  2. SpringBoot非官方教程 | 第二十篇: 处理表单提交

    转载请标明出处: http://blog.csdn.net/forezp/article/details/71023868 本文出自方志朋的博客 这篇文件主要介绍通过springboot 去创建和提交 ...

  3. (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  4. NeHe OpenGL教程 第二十六课:反射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  6. SpringBoot非官方教程 | 第二篇:SpringBoot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  7. 第二十六篇 面向对象初识

    一. 三大编程范式 前面学完了Python的基本语法,能写Python代码, 而且可以处理工作中的一些问题,今天开始就要进入面向对象的学习了.首先,了解下三大编程范式,编程范式就是编程方法论,表明的是 ...

  8. “约见”面试官系列之常见面试题第二十六篇之vue-router的hash和history(建议收藏)

    这篇文章主要介绍了Vue-router 中hash模式和history模式的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 Vue-router 中hash模式和hi ...

  9. 第二十六篇 request模块使用

    心得:requests模块还是比较好用的,运用起来简单,而且结合python,爬取网页数据,那简直分分钟的事情. requests请求一般分为两种请求方式: 1 get请求:一般用来请求数据,获取数据 ...

最新文章

  1. Python 算术运算符
  2. 利用prototxt文件绘制网络的结构图
  3. 开发者推出BCH“信用卡”,方便用户离线发送BCH
  4. 执行多条SQL语句,执行数据库事务(可传入Sql参数)
  5. mvc html.displayfor,我想了解@ Html.DisplayFor(modelItem = item.FirstName)中的lambda表达式...
  6. html怎么添加5px高的线,CSS 0.5px 细线边框的原理和实现方式
  7. 数据同步 rsync+notify架构
  8. windows7系统电脑管理员权限怎么更改
  9. lamp里php 的升级,lamp架构之升级php版本
  10. 【Kylin】60-20-040-集成-Kylin集成LDAP
  11. 【Django】ImportError: cannot import name 'execute_manager'
  12. win10关机后自动重启_win10电脑关机后自动开机怎么解决
  13. 计算机组成原理学习的一些感悟
  14. python安装包下载及安装(超详细)
  15. 总结自己设计带POE的八口交换机的过程和踩坑
  16. spring boot 启动报错:Reason: Canonical names should be kebab-case ('-' separated), lowercase
  17. 学习型通用红外遥控设备(一)
  18. 操作系统基本原理---设备管理
  19. layui后台管理首页配置
  20. 移动端h5网页调用支付宝支付接口

热门文章

  1. 基于Android Studio搭建cordova开发环境
  2. K8S Service服务用于对外暴露应用
  3. Python3字符串复制
  4. Nginx实现高可用的工作原理
  5. elasticsearch高亮显示查询结果
  6. CentOS 7 官方yum库安装 MySQL
  7. 从源码角度看Android系统init进程启动过程
  8. C++设计模式--代理模式(Proxy)
  9. 【总结】分类、聚类的评估指标
  10. 学习SPI的一些疑惑