91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot整合ELK實現日志收集的示例

發布時間:2020-10-30 19:52:34 來源:億速云 閱讀:473 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關SpringBoot整合ELK實現日志收集的示例,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

ELK即Elasticsearch、Logstash、Kibana,組合起來可以搭建線上日志系統,本文主要講解使用ELK來收集SpringBoot應用產生的日志。

ELK中各個服務的作用

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

使用Docker Compose 搭建ELK環境

需要下載的Docker鏡像

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

搭建前準備

elasticsearch啟動成功需要特殊配置

需要設置系統內核參數,否則會因為內存不足無法啟動。

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

需要創建/mydata/elasticsearch/data目錄并設置權限,否則會因為無權限訪問而啟動失敗。

# 創建目錄
mkdir /mydata/elasticsearch/data/
# 創建并改變該目錄權限
chmod 777 /mydata/elasticsearch/data

開始搭建

創建一個存放logstash配置的目錄并上傳配置文件

logstash-springboot.conf文件內容

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

創建配置文件存放目錄并上傳配置文件到該目錄

mkdir /mydata/logstash

使用docker-compose.yml腳本啟動ELK服務docker-compose.yml內容

version: '3'
services:
 elasticsearch:
  image: elasticsearch:6.4.0
  container_name: elasticsearch
  environment:
   - "cluster.name=elasticsearch" #設置集群名稱為elasticsearch
   - "discovery.type=single-node" #以單一節點模式啟動
   - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #設置使用jvm內存大小
  volumes:
   - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件掛載
   - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #數據文件掛載
  ports:
   - 9200:9200
 kibana:
  image: kibana:6.4.0
  container_name: kibana
  links:
   - elasticsearch:es #可以用es這個域名訪問elasticsearch服務
  depends_on:
   - elasticsearch #kibana在elasticsearch啟動之后再啟動
  environment:
   - "elasticsearch.hosts=http://es:9200" #設置訪問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服務
  ports:
   - 4560:4560

上傳到linux服務器并使用docker-compose命令運行

docker-compose up -d

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

SpringBoot整合ELK實現日志收集的示例

在logstash中安裝json_lines插件

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

開啟防火墻并在kibana中查看

systemctl stop firewalld

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

SpringBoot整合ELK實現日志收集的示例

SpringBoot應用集成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節點下的destination需要改成你自己的logstash服務地址,比如我的是:192.168.3.101:4560 。

<&#63;xml version="1.0" encoding="UTF-8"&#63;>
<!DOCTYPE configuration>
<configuration>
  <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
  <!--應用名稱-->
  <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應用

SpringBoot整合ELK實現日志收集的示例

在kibana中查看日志信息創建index pattern

SpringBoot整合ELK實現日志收集的示例

SpringBoot整合ELK實現日志收集的示例

SpringBoot整合ELK實現日志收集的示例

查看收集的日志

SpringBoot整合ELK實現日志收集的示例

調用接口進行測試

SpringBoot整合ELK實現日志收集的示例

SpringBoot整合ELK實現日志收集的示例

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

SpringBoot整合ELK實現日志收集的示例

調用該接口并查看日志

SpringBoot整合ELK實現日志收集的示例

關于SpringBoot整合ELK實現日志收集的示例就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博罗县| 古丈县| 通河县| 南充市| 景洪市| 濮阳县| 巩义市| 元氏县| 海口市| 黑山县| 汶上县| 定西市| 尚义县| 松滋市| 泸定县| 新河县| 鸡西市| 宁德市| 三门峡市| 子长县| 南丰县| 麻栗坡县| 隆林| 河西区| 图木舒克市| 梅河口市| 永康市| 衡东县| 木兰县| 旬阳县| 平昌县| 杨浦区| 阳谷县| 灵宝市| 芮城县| 晋宁县| 隆安县| 萝北县| 定安县| 闽清县| 清原|