欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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命令運行

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>

運行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)文章

  • SpringBoot基于redis自定義注解實現(xiàn)后端接口防重復(fù)提交校驗

    SpringBoot基于redis自定義注解實現(xiàn)后端接口防重復(fù)提交校驗

    本文主要介紹了SpringBoot基于redis自定義注解實現(xiàn)后端接口防重復(fù)提交校驗,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java?Guava異步編程實踐

    Java?Guava異步編程實踐

    今天咱們要聊的是Guava在異步編程中的應(yīng)用,讓我們搞清楚為什么要用Guava來處理異步任務(wù),在Java的世界里,異步編程是個老話題了,但它依舊非常關(guān)鍵,它能讓咱們的應(yīng)用更高效,尤其是在處理那些耗時的I/O操作
    2023-12-12
  • string類和LocalDateTime的相互轉(zhuǎn)換方式

    string類和LocalDateTime的相互轉(zhuǎn)換方式

    這篇文章主要介紹了string類和LocalDateTime的相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • iOS多線程介紹

    iOS多線程介紹

    這篇文章主要介紹了iOS多線程的相關(guān)知識,涉及到對進(jìn)程,線程等方面的知識講解,本文非常具有參考價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法

    IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法

    這篇文章主要介紹了IDEA 連接數(shù)據(jù)庫的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Springboot集成Elasticsearch的步驟與相關(guān)功能

    Springboot集成Elasticsearch的步驟與相關(guān)功能

    ElasticSearch是開源搜索平臺領(lǐng)域的一個新成員,?ElasticSearch是一個基于Lucene構(gòu)建的開源,分布式,RESTful搜索引擎,這篇文章主要給大家介紹了關(guān)于Springboot集成Elasticsearch的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Java?中?hashCode()?與?equals()?的關(guān)系(面試)

    Java?中?hashCode()?與?equals()?的關(guān)系(面試)

    這篇文章主要介紹了Java中hashCode()與equals()的關(guān)系,ava中hashCode()和equals()的關(guān)系是面試中的常考點,文章對hashCode與equals的關(guān)系做出詳解,需要的小伙伴可以參考一下
    2022-09-09
  • MyBatis Mapper接受參數(shù)的四種方式代碼解析

    MyBatis Mapper接受參數(shù)的四種方式代碼解析

    這篇文章主要介紹了MyBatis Mapper接受參數(shù)的四種方式代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Java字符串編碼知識點詳解介紹

    Java字符串編碼知識點詳解介紹

    在本篇內(nèi)容了小編給大家詳細(xì)分析了關(guān)于Java字符串編碼的知識點并對實例做了分析,有興趣的朋友們跟著學(xué)習(xí)下。
    2022-11-11
  • spring boot activiti工作流的搭建與簡單使用

    spring boot activiti工作流的搭建與簡單使用

    這篇文章主要給大家介紹了關(guān)于spring boot activiti工作流的搭建與簡單使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評論