摘要:簡(jiǎn)介是簡(jiǎn)稱(chēng)是一個(gè)分布式的搜索和分析引擎,可以用于全文檢索結(jié)構(gòu)化檢索和分析,并能將這三者結(jié)合起來(lái)。基于開(kāi)發(fā),現(xiàn)在是使用最廣的開(kāi)源搜索引擎之一。是一個(gè)開(kāi)源的分析與可視化平臺(tái),設(shè)計(jì)出來(lái)用于和一起使用的。
ELK簡(jiǎn)介
ELK是Elasticsearch+Logstash+Kibana簡(jiǎn)稱(chēng)
Elasticsearch 是一個(gè)分布式的搜索和分析引擎,可以用于全文檢索、結(jié)構(gòu)化檢索和分析,并能將這三者結(jié)合起來(lái)。Elasticsearch 基于 Lucene 開(kāi)發(fā),現(xiàn)在是使用最廣的開(kāi)源搜索引擎之一。
Logstash 簡(jiǎn)單來(lái)說(shuō)就是一根具備實(shí)時(shí)數(shù)據(jù)傳輸能力的管道,負(fù)責(zé)將數(shù)據(jù)信息從管道的輸入端傳輸?shù)焦艿赖妮敵龆耍c此同時(shí)這根管道還可以讓你根據(jù)自己的需求在中間加上濾網(wǎng),Logstash提供了很多功能強(qiáng)大的濾網(wǎng)以滿(mǎn)足你的各種應(yīng)用場(chǎng)景。
Kibana 是一個(gè)開(kāi)源的分析與可視化平臺(tái),設(shè)計(jì)出來(lái)用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的數(shù)據(jù),使用各種不同的圖標(biāo)、表格、地圖等,kibana能夠很輕易的展示高級(jí)數(shù)據(jù)分析與可視化。
ELK下載安裝
可以去官網(wǎng)分別下載安裝:https://www.elastic.co/downlo...
需要提前安裝JDK1.8,這里我是在windows上操作。
Elasticsearch安裝啟動(dòng)
如圖,下載Elasticsearch并解壓
config/elasticsearch.yml配置文件,修改配置(也是默認(rèn)配置,可以不做修改)
network.host=localhost network.port=9200
sticsearch.bat,啟動(dòng)成功,訪問(wèn)localhost:9200
{ "name" : "cTP-_7z", "cluster_name" : "elasticsearch", "cluster_uuid" : "6tnImaw3RyKHlErGQrtuvw", "version" : { "number" : "6.3.1", "build_flavor" : "default", "build_type" : "zip", "build_hash" : "eb782d0", "build_date" : "2018-06-29T21:59:26.107521Z", "build_snapshot" : false, "lucene_version" : "7.3.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
logstash安裝啟動(dòng)
如圖,下載Logstash并解壓
bin目錄下新建配置log4j_to_es.conf
input { tcp { ##host:port就是上面appender中的 destination,這里其實(shí)把logstash作為服務(wù),開(kāi)啟8080端口接收l(shuí)ogback發(fā)出的消息 host => "localhost" port => 8080 #模式選擇為server mode => "server" tags => ["tags"] ##格式j(luò)son codec => json_lines } } output { elasticsearch { #ES地址 hosts => "127.0.0.1:9200" #指定索引名字 index => "applog" } stdout { codec => rubydebug} }
新建文件run_default.bat
logstash -f log4j_to_es.conf
保存直接雙擊該配置文件,啟動(dòng)成功,控制臺(tái)輸出如下:
訪問(wèn)localhost:9600:
{"host":"LAPTOP-MJ88A0EI","version":"6.3.1","http_address":"127.0.0.1:9600","id":"a0fe5a6f-e35d-4c5f-8b87-24344a928239","name":"LAPTOP-MJ88A0EI","build_date":"2018-06-29T22:43:59Z","build_sha":"b79493047db01afca1e11c856fe8538d7ecb5787","build_snapshot":false}
Kibana安裝啟動(dòng)
如圖,下載Kibana并解壓
這里,直接默認(rèn)配置即可,bin/kibana.bat雙擊運(yùn)行,啟動(dòng)成功,訪問(wèn)localhost:5601
至此,軟件啟動(dòng)完畢!
創(chuàng)建SpringBoot項(xiàng)目,pom.xml文件如下:
4.0.0 com.zm.elk elk 0.0.1-SNAPSHOT jar elk org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-log4j 1.3.8.RELEASE net.logstash.logback logstash-logback-encoder 4.9 org.springframework.boot spring-boot-maven-plugin
log4j的配置如下:
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
logback..xml配置如下:
localhost:8080 %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
目錄結(jié)構(gòu)如下:
log測(cè)試:
import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class ElkApplicationTests { // 定義一個(gè)全局的記錄器,通過(guò)LoggerFactory獲取 private final static Logger log = LoggerFactory.getLogger(Test.class); @Before public void setUp() { } @Test public void test() { log.trace("trace 成功了"); log.debug("debug 成功了"); log.info("info 成功了"); log.warn("warn 成功了"); log.error("error 成功了"); } }
回到kibana上查看信息:
然后create index pattern
回到Discover
在右邊就能看到具體的日志信息啦!!
還可以自己修改filter查看需要的信息,具體的自己可以搗鼓搗鼓玩玩。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71568.html
摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...
閱讀 2843·2023-04-26 01:02
閱讀 1863·2021-11-17 09:38
閱讀 791·2021-09-22 15:54
閱讀 2899·2021-09-22 15:29
閱讀 888·2021-09-22 10:02
閱讀 3432·2019-08-30 15:54
閱讀 2007·2019-08-30 15:44
閱讀 1586·2019-08-26 13:46