SpringBoot配置ELK日誌分析系統搭建(轉載)

ELK介紹

引用網上別人的介紹:

Logstash:日誌收集工具,可以從本地磁盤,網絡服務(自己監聽端口,接受用戶日誌),消息隊列中收集各種各樣的日誌,然後進行過濾分析,並將日誌輸出到Elasticsearch中。

Elasticsearch:日誌分佈式存儲/搜索工具,原生支持集羣功能,可以將指定時間的日誌生成一個索引,加快日誌查詢和訪問。

Kibana:可視化日誌Web展示工具,對Elasticsearch中存儲的日誌進行展示,還可以生成炫麗的儀表盤。

環境配置

準備工作

  1. 首先建議在linux上配置ELK會更爲方便,Windows對組件兼容較差,官網上各種版本都有可以自行下載。
    附上傳送門:https://www.elastic.co/cn/downloads
  2. 服務器需要java運行環境,配置方式也不贅述了,不會的請移步傳送門:
    http://www.runoob.com/w3cnote/win7-linux-java-setup.html
  3. 在根目錄創建名爲elk的文件夾
mkdir elk

    將下載好的三個文件解壓進文件夾中
    博客中文件夾的結構爲:

elk:
	elasticsearch
	logstash
	kibana

配置Elasticsearch

vi /elk/elasticsearch/config/elasticsearch.yml
    //配置外網連接,如果不能用請檢查防火牆配置
    network.host: 0.0.0.0
    http.port: 9200
    
      //後臺啓動elasticsearch服務
      /elk/elasticsearch/bin/elasticsearch &
      

        啓動沒有報錯成功後,在瀏覽器輸入ip:9200端口,顯示下圖所示爲啓動成功
        在這裏插入圖片描述

        配置Kibana

        vi /elk/kibana/config/kibana.yml
        //常用配置:
        elasticsearch.url: "http:localhost:9200" //配置elasticsearch所在的IP和端口
        server.port: 8888  //設置服務端口即可視化頁面映射端口
        server.host: "IP"   //設置服務IP
        

          啓動測試

          /elk/kibana/bin/kibana &
          

            啓動完成沒有報錯後,在瀏覽器輸入IP:Ports,在配置文件中配置的地址,
            出現如下頁面爲成功
            在這裏插入圖片描述

            配置Logstash

            我們在項目中使用的是springboot自帶的logback,我們使用自定義的配置文件
            首先在logstash目錄中創建一個文件夾

            mkdir /elk/logstash/webconfig
            

              創建並編輯一個新配置文件

              vi /elk/logstash/webconfig/log_elk.conf
              

                在配置文件中添加
                配置文件詳細入門參考傳送門:https://www.cnblogs.com/moonlightL/p/7760512.html

                input {
                 # 我們創建了兩個微服務demo 所以建立兩個不同的輸入,將兩個服務的日誌分別輸入到不同的索引中
                  tcp {
                    mode => "server"
                    host => "0.0.0.0"  # 允許任意主機發送日誌
                    type => "elk1"      # 設定type以區分每個輸入源
                    port => 4567      
                    codec => json_lines    # 數據格式
                  }
                  tcp {
                    mode => "server"
                    host => "0.0.0.0"
                    type => "elk2"
                    port => 4667
                    codec => json_lines
                  }
                
                }
                filter {
                  #Only matched data are send to output.
                }
                output {
                  # For detail config for elasticsearch as output,
                  # See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
                
                  if [type] == "elk1" {
                    elasticsearch {
                      action => "index"          # 輸出時創建映射
                      hosts  => "192.168.87.136:9200"   # ElasticSearch 的地址和端口
                      index  => "elk1"         # 指定索引名
                      codec  => "json"
                     }
                  }
                  if [type] == "elk2" {
                    elasticsearch {
                      action => "index"          #The operation on ES
                      hosts  => "192.168.87.136:9200"   #ElasticSearch host, can be array.
                      index  => "elk2"         #The index to write data to.
                      codec  => "json"
                     }
                  }
                }
                

                  啓動Logstash

                  //-f後可以接指定的配置文件,也可以是一個目錄,它會自動將目錄中的所有配置文件一起導入合成一個配置文件,實現多配置文件啓動
                  
                  //單文件:
                  /elk/logstash/bin/logstash -f /elk/logstash/wegconfig/log_elk.conf   &
                  //目錄:
                  /elk/logstash/bin/logstash -f /elk/logstash/wegconfig  &
                  
                  

                  Logstash啓動比較慢,最後啓動成功後顯示:
                  在這裏插入圖片描述

                  準備微服務

                  使用idea創建springboot項目,勾選web組件。
                  在resource文件夾下創建配置文件logback-spring.xml

                  <?xml version="1.0" encoding="UTF-8"?>
                  <configuration>
                      <include resource="org/springframework/boot/logging/logback/base.xml" />
                  
                      <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
                          <!--配置logstash的ip和端口,在logstash配置文件中-->
                          <destination>localhost:4567</destination>
                          <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
                      </appender>
                  
                      <root level="INFO">
                          <appender-ref ref="LOGSTASH" />
                          <appender-ref ref="CONSOLE" />
                      </root>
                  </configuration>
                  
                  

                  新建一個IndexController類

                  @RestController
                  public class IndexController {
                      private final Logger logger = LoggerFactory.getLogger(getClass());
                  
                      @GetMapping("/index")
                      public Object index() {
                              logger.debug("======ELK2測試=======");
                              logger.info("======ELK2測試=======");
                              logger.warn("======ELK2測試=======");
                              logger.error("======ELK2測試=======");
                  
                          return "success";
                      }
                  }
                  
                  
                  

                  在另一個微服務中也同理創建,只需要修改logback-spring.xml中的Logstash端口號,在Controller中日誌輸出的內容也可以做簡單區分。
                  最後啓動兩個微服務。

                  運行測試

                  1. 依次啓動Elasticsearch,Kibana,Logstash和兩個微服務
                  2. 打開Kibana頁面
                    在這裏插入圖片描述
                    在這裏插入圖片描述
                    頁面中已經有了我們配置的兩個索引,其中有11條日誌是在我們啓動微服務時springboot輸出的日誌,在有第一條日誌通過tcp發送到Logstash,Logstash將它轉發到Elasticsearch時Elasticsearch自動爲我們創建了索引。

                  接着我們在Kibana中添加該索引
                  在這裏插入圖片描述
                  在這裏插入圖片描述
                  在這裏插入圖片描述
                  兩個索引添加完成後
                  在這裏插入圖片描述
                  我們在瀏覽器中訪問兩個微服務的index地址後刷新kibana頁面。
                  在這裏插入圖片描述

                  簡單的搭建到此就結束了

                  發表評論
                  所有評論
                  還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
                  相關文章