关闭

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

标签: elasticsearch搜索引擎分布式开源索引
25360人阅读 评论(3) 收藏 举报
分类:

转载请标明出处:
http://blog.csdn.net/forezp/article/details/71189836
本文出自方志朋的博客

这篇文章主要介绍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 ES
    hosts  => "localhost:9200"   #ElasticSearch host, can be array.
    index  => "applog"         #The index to write data to.
  }
}

修改完配置后启动:

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

终端显示如下:

image.png

访问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,网页显示:

image.png

证明启动成功。

创建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 {

    @Test
    public void contextLoads() {
    }

    private Logger logger = Logger.getLogger(getClass());

    @Test
    public 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:

image.png

点击discovery:

image.png

参考资料

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

源码下载

https://github.com/forezp/SpringBootLearning

优秀文章推荐:

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Spring Boot 默认日志工具logback与ELK系统对接

运行环境参考前一篇博客:ELKStack日志分析系统单机安装 1、用Spring Tool Suite创建一个Spring Boot简易程序,让Application.java类实现CommandLi...
  • u010520626
  • u010520626
  • 2017-08-25 18:04
  • 963

Spring Boot与Logstash整合

ELK可以说是当前对分布式服务器集群日志做汇总、分析、统计和检索操作的很好的一套系统了。而Spring Boot作为一套为微服务而生的框架,自然也免不了处理分布式日志的问题,通过ELK日志系统来处理日...
  • u014527058
  • u014527058
  • 2017-04-23 14:17
  • 4367

Springboot+logback集成ELK处理日志实例

一. 背景ELK官网最近把我们的项目从cloud foundry迁移到了K8S,但是公司的容器系统才出现没多久,还不是很成熟,所以我们就用了公司的K8S集群,其他的自己去搞下,日志就是一个很大的问题,...
  • yy756127197
  • yy756127197
  • 2017-12-22 14:56
  • 218

ELK 初探

ELK 初探ELK实时日志分析平台 初次尝试。平台CentOS 7 Oracle JDK 8 Kibana 4.5.2 Elaticsearch 2.3.4 logstash 2.3.4 ...
  • choelea
  • choelea
  • 2016-07-10 17:19
  • 1376

Springboot项目使用aop切面保存详细日志到ELK日志平台

上一篇讲过了将Springboot项目中logback日志插入到ELK日志平台,它只是个示例。这一篇来看一下实际使用中,我们应该怎样通过aop切面,拦截所有请求日志插入到ELK日志系统。同时,由于往往...
  • tianyaleixiaowu
  • tianyaleixiaowu
  • 2017-08-08 17:20
  • 812

ELK第六篇:Aggregations (聚合)API的使用

版本要求elasticsearch官方更新的版本速度太快,而springboot上的胶水代码更新的速度太慢,最关键的是elasticsearch每个版本的基础api都有变化,因此这里提示版本问题,不然...
  • zjcjava
  • zjcjava
  • 2017-11-30 23:12
  • 141

ELK 日志归集

ELK 配置及设计 ​ 软件及版本 CentOS 7 ​ Oracle JDK 8  Kibana 4.5.2  Elaticsearch 2.3.4  logstash 2.3.4  fi...
  • choelea
  • choelea
  • 2016-08-23 21:43
  • 3113

SpringBoot应用基于docker和EFK的日志处理

1.概述在分布式集群环境下,单个节点的日志内容往往都是存放在自己的节点上,这种独立分散的日志存储方式会有很多问题。我们需要一个统一的日志处理中心,对日志进行收集和集中存储,并进行查看和分析。The T...
  • haiyan_qi
  • haiyan_qi
  • 2016-10-10 14:12
  • 2097

Spring Cloud Sleuth (2)-与ELK集成

通过Spring Cloud Sleuth (1)-入门篇我们已经引入了Sleuth的基础模块完成一次任务链的跟踪,但是由于日志文件都离散的存储在各个微服务结点上,日常运维时仅仅通过查看日志文件来分析...
  • yejingtao703
  • yejingtao703
  • 2017-10-23 14:06
  • 792

Spring Cloud Sleuth使用简介

Spring-Cloud Spring Cloud为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话和集群状态)操作...
  • u010257992
  • u010257992
  • 2016-09-08 20:28
  • 27739
    个人资料
    • 访问:4468090次
    • 积分:15073
    • 等级:
    • 排名:第896名
    • 原创:125篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1522条
    公众号推荐
    加我微信,拉你进Spring Cloud中国社区群



    关注我的微信公众号,优质内容定期分享
    博客专栏
    共同进步
    QQ交流群:494240174
    (群空间有很多优质电子书哦)
    我的邮箱:miles02@163.com
    最新评论