javascript
SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
轉載請標明出處:
原文首發于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,搭建实时日志平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当陆军野战步兵军难吗?
- 下一篇: 什么是保证和关系军队的性质