最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot應(yīng)用整合ELK實現(xiàn)日志收集的示例代碼

 更新時間:2020年09月24日 09:59:20   作者:Home囧  
這篇文章主要介紹了SpringBoot應(yīng)用整合ELK實現(xiàn)日志收集的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

ELK即Elasticsearch、Logstash、Kibana,組合起來可以搭建線上日志系統(tǒng),本文主要講解使用ELK來收集SpringBoot應(yīng)用產(chǎn)生的日志。

ELK中各個服務(wù)的作用

  • Elasticsearch:用于存儲收集到的日志信息;
  • Logstash:用于收集日志,SpringBoot應(yīng)用整合了Logstash以后會把日志發(fā)送給Logstash,Logstash再把日志轉(zhuǎn)發(fā)給Elasticsearch;
  • Kibana:通過Web端的可視化界面來查看日志。

使用Docker Compose 搭建ELK環(huán)境

需要下載的Docker鏡像

docker pull elasticsearch:6.4.0
docker pull logstash:6.4.0
docker pull kibana:6.4.0

搭建前準(zhǔn)備

elasticsearch啟動成功需要特殊配置

需要設(shè)置系統(tǒng)內(nèi)核參數(shù),否則會因為內(nèi)存不足無法啟動。

# 改變設(shè)置
sysctl -w vm.max_map_count=262144
# 使之立即生效
sysctl -p

需要創(chuàng)建/mydata/elasticsearch/data目錄并設(shè)置權(quán)限,否則會因為無權(quán)限訪問而啟動失敗。

# 創(chuàng)建目錄
mkdir /mydata/elasticsearch/data/
# 創(chuàng)建并改變該目錄權(quán)限
chmod 777 /mydata/elasticsearch/data

開始搭建

創(chuàng)建一個存放logstash配置的目錄并上傳配置文件

logstash-springboot.conf文件內(nèi)容

input {
 tcp {
  mode => "server"
  host => "0.0.0.0"
  port => 4560
  codec => json_lines
 }
}
output {
 elasticsearch {
  hosts => "es:9200"
  index => "springboot-logstash-%{+YYYY.MM.dd}"
 }
}

創(chuàng)建配置文件存放目錄并上傳配置文件到該目錄

mkdir /mydata/logstash

使用docker-compose.yml腳本啟動ELK服務(wù)docker-compose.yml內(nèi)容

version: '3'
services:
 elasticsearch:
  image: elasticsearch:6.4.0
  container_name: elasticsearch
  environment:
   - "cluster.name=elasticsearch" #設(shè)置集群名稱為elasticsearch
   - "discovery.type=single-node" #以單一節(jié)點模式啟動
   - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #設(shè)置使用jvm內(nèi)存大小
  volumes:
   - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件掛載
   - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #數(shù)據(jù)文件掛載
  ports:
   - 9200:9200
 kibana:
  image: kibana:6.4.0
  container_name: kibana
  links:
   - elasticsearch:es #可以用es這個域名訪問elasticsearch服務(wù)
  depends_on:
   - elasticsearch #kibana在elasticsearch啟動之后再啟動
  environment:
   - "elasticsearch.hosts=http://es:9200" #設(shè)置訪問elasticsearch的地址
  ports:
   - 5601:5601
 logstash:
  image: logstash:6.4.0
  container_name: logstash
  volumes:
   - /mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #掛載logstash的配置文件
  depends_on:
   - elasticsearch #kibana在elasticsearch啟動之后再啟動
  links:
   - elasticsearch:es #可以用es這個域名訪問elasticsearch服務(wù)
  ports:
   - 4560:4560

上傳到linux服務(wù)器并使用docker-compose命令運(yùn)行

docker-compose up -d

注意:Elasticsearch啟動可能需要好幾分鐘,要耐心等待。

在logstash中安裝json_lines插件

# 進(jìn)入logstash容器
docker exec -it logstash /bin/bash
# 進(jìn)入bin目錄
cd /bin/
# 安裝插件
logstash-plugin install logstash-codec-json_lines
# 退出容器
exit
# 重啟logstash服務(wù)
docker restart logstash

開啟防火墻并在kibana中查看

systemctl stop firewalld

訪問地址:http://192.168.3.101:5601

SpringBoot應(yīng)用集成Logstash

在pom.xml中添加logstash-logback-encoder依賴

<!--集成logstash-->
<dependency>
  <groupId>net.logstash.logback</groupId>
  <artifactId>logstash-logback-encoder</artifactId>
  <version>5.3</version>
</dependency>

添加配置文件logback-spring.xml讓logback的日志輸出到logstash

注意appender節(jié)點下的destination需要改成你自己的logstash服務(wù)地址,比如我的是:192.168.3.101:4560 。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
  <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
  <!--應(yīng)用名稱-->
  <property name="APP_NAME" value="mall-admin"/>
  <!--日志文件保存路徑-->
  <property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
  <contextName>${APP_NAME}</contextName>
  <!--每天記錄日志到文件appender-->
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
  </appender>
  <!--輸出到logstash的appender-->
  <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <!--可以訪問的logstash日志收集端口-->
    <destination>192.168.3.101:4560</destination>
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
  </appender>
  <root level="INFO">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
    <appender-ref ref="LOGSTASH"/>
  </root>
</configuration>

運(yùn)行Springboot應(yīng)用

在kibana中查看日志信息創(chuàng)建index pattern

查看收集的日志

調(diào)用接口進(jìn)行測試

制造一個異常并查看修改獲取所有品牌列表接口

調(diào)用該接口并查看日志

總結(jié)

搭建了ELK日志收集系統(tǒng)之后,我們?nèi)绻榭碨pringBoot應(yīng)用的日志信息,就不需要查看日志文件了,直接在Kibana中查看即可。

到此這篇關(guān)于SpringBoot應(yīng)用整合ELK實現(xiàn)日志收集的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot ELK日志收集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList

    原來Java中有兩個ArrayList,本文就帶著大家一起探究Java中的ArrayList,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 好用!解決maven包沖突的插件

    好用!解決maven包沖突的插件

    今天的主要內(nèi)容是介紹一款插件,該插件的主要用途是當(dāng)maven包沖突了以后,使用這款插件直接解決問題。
    2020-10-10
  • Java基礎(chǔ)學(xué)習(xí)之字符緩沖流的應(yīng)用

    Java基礎(chǔ)學(xué)習(xí)之字符緩沖流的應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Java基礎(chǔ)中的字符緩沖流的相關(guān)應(yīng)用,例如復(fù)制Java文件等,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一
    2022-09-09
  • SpringCloud使用logback日志框架教程詳解

    SpringCloud使用logback日志框架教程詳解

    Logback是一個功能強(qiáng)大的日志框架,它是一個基于slf4j的日志系統(tǒng),提供了可靠的日志服務(wù),比log4j更快,更靈活,更容易使用。本文將教會你快速讓你的項目集成logback日志框架,需要的朋友可以參考下
    2023-05-05
  • 看完這篇文章獲得一些java if優(yōu)化技巧

    看完這篇文章獲得一些java if優(yōu)化技巧

    if 是每個語言都有的語法,也是最基礎(chǔ)的語法。因為代碼本來就很晦澀,所以才有了程序員這個中間件,今天就聊一下我的一些關(guān)于 if 思路和總結(jié)
    2021-07-07
  • Spring Boot集成Sorl搜索客戶端的實現(xiàn)代碼

    Spring Boot集成Sorl搜索客戶端的實現(xiàn)代碼

    本篇文章主要介紹了Spring Boot集成Sorl搜索客戶端的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java實現(xiàn)解出世界最難九宮格問題

    Java實現(xiàn)解出世界最難九宮格問題

    這篇文章主要介紹了Java實現(xiàn)解出世界最難九宮格問題,芬蘭數(shù)學(xué)家因卡拉花費(fèi)3個月設(shè)計出了世界上迄今難度最大的數(shù)獨游戲,而且它只有一個答案,本文使用Java實現(xiàn)解出,需要的朋友可以參考下
    2015-01-01
  • Java持久層面試題目及答案整理

    Java持久層面試題目及答案整理

    在本篇文章里小編給大家分享的是一篇關(guān)于Java持久層面試題目及答案整理內(nèi)容,需要的朋友們學(xué)習(xí)參考下。
    2020-02-02
  • MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    文章主要介紹了MyBatis中高級多表查詢的四種方式:ResultMap、association、collection以及自連接查詢,通過定義接口的抽象方法、編寫mapper.xml和測試類,詳細(xì)展示了如何根據(jù)復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的裝配和查詢,感興趣的朋友一起看看吧
    2024-11-11
  • Java中的設(shè)計模式與7大原則歸納整理

    Java中的設(shè)計模式與7大原則歸納整理

    本篇文章主要對Java中的設(shè)計模式如,創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式以及7大原則進(jìn)行了歸納整理,需要的朋友可以參考下
    2017-04-04

最新評論

阳信县| 绥滨县| 兰州市| 望谟县| 馆陶县| 河津市| 额济纳旗| 东平县| 华阴市| 嘉祥县| 英德市| 潞西市| 呈贡县| 邵武市| 万全县| 甘孜县| 龙井市| 平安县| 稻城县| 迭部县| 永州市| 娄烦县| 天台县| 抚松县| 太谷县| 鸡泽县| 阿勒泰市| 彝良县| 岱山县| 雷州市| 阜平县| 和硕县| 舒兰市| 阳曲县| 富蕴县| 阿瓦提县| 张家川| 和平区| 临夏市| 邛崃市| 靖宇县|