sprinboot整合elk,搭建實(shí)時(shí)日志平臺(tái)

這篇文章主要介紹springboot整合elk.

elk 簡(jiǎn)介

  • Elasticsearch是個(gè)開(kāi)源分布式搜索引擎,它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。

  • Logstash是一個(gè)完全開(kāi)源的工具,他可以對(duì)你的日志進(jìn)行收集、過(guò)濾,并將其存儲(chǔ)供以后使用(如,搜索)。

  • Kibana 也是一個(gè)開(kāi)源和免費(fèi)的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志。

elk下載安裝

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

建議在 linux上運(yùn)行,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

配置、啟動(dòng) Elasticsearch

打開(kāi)Elasticsearch的配置文件:

vim config/elasticsearch.yml

修改配置:

network.host=localhost
network.port=9200

它默認(rèn)就是這個(gè)配置,沒(méi)有特殊要求,在本地不需要修改。

啟動(dòng)Elasticsearch

./bin/elasticsearch

啟動(dòng)成功,訪問(wèn)localhost:9200,網(wǎng)頁(yè)顯示:

{
  "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"
}

配置、啟動(dòng) 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.
  }
}

修改完配置后啟動(dòng):

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

終端顯示如下:

image.png

訪問(wèn)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啟動(dòng)成功。

配置、啟動(dòng)kibana

到kibana的安裝目錄:

./bin/kibana 

默認(rèn)配置即可。

訪問(wèn)localhost:5601,網(wǎng)頁(yè)顯示:

image.png

證明啟動(dòng)成功。

創(chuàng)建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測(cè)試:

@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 實(shí)時(shí)監(jiān)控日志

打開(kāi)localhost:5601:

Management=>index pattrns=>add new:

image.png

點(diǎn)擊discovery:

image.png

參考資料

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

源碼下載

https://github.com/forezp/SpringBootLearning

優(yōu)秀文章推薦:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容