点击这里给我发消息 点击这里给我发消息
SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

Custom Tab



elk 简介

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":"242159a5eea55fe213fe5c852d36455e24252c82","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 socketlog4j.appender.socket=org.apache.log4j.net.SocketAppenderlog4j.
appender.socket.Port=4560log4j.appender.socket.RemoteHost=localhost
log4j.appender.socket.layout=org.apache.log4j.PatternLayoutlog4j.appender.socket.layout.ConversionPattern=%d 
[%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000# appender consolelog4j.appender.console=org.apache.log4j.
ConsoleAppenderlog4j.appender.console.target=System.outlog4j.appender.console.layout=org.apache.log4j.
PatternLayoutlog4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n


打印log测试:

@RunWith(SpringRunner.class)@SpringBootTestpublic 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

SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程

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

SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql

SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA

SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql

SpringBoot非官方教程 | 第六篇:springboot整合mybatis

SpringBoot非官方教程 | 第七篇:springboot开启声明式事务

SpringBoot非官方教程 | 第八篇:springboot整合mongodb

SpringBoot非官方教程 | 第九篇: springboot整合Redis

SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档

SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

SpringBoot非官方教程 | 第十二篇:springboot集成apidoc

SpringBoot非官方教程 | 第十三篇:springboot集成spring cache

SpringBoot非官方教程 | 第十四篇:在springboot中用redis实现消息队列

SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ

SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务

SpringBoot非官方教程 | 第十七篇:上传文件

SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)

SpringBoot非官方教程 | 第十九篇: 验证表单信息

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

SpringBoot非官方教程 | 第二十一篇: springboot集成JMS

SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程

SpringBoot非官方教程 | 第二十三篇: 异步方法

SpringBoot非官方教程 | 第二十四篇: springboot整合docker

SpringBoot非官方教程 | 第二十五篇:2小时学会springboot




转载自:http://blog.csdn.net/forezp/article/details/71189836

Home