windows7 本地搭建ELK 收集項目運行日誌

ELK簡介

ELK是Elasticsearch+Logstash+Kibana簡稱

Elasticsearch 是一個分佈式的搜索和分析引擎,可以用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 基於 Lucene 開發,現在是使用最廣的開源搜索引擎之一。

Logstash 簡單來說就是一根具備實時數據傳輸能力的管道,負責將數據信息從管道的輸入端傳輸到管道的輸出端,與此同時這根管道還可以讓你根據自己的需求在中間加上濾網,Logstash提供了很多功能強大的濾網以滿足你的各種應用場景。

Kibana 是一個開源的分析與可視化平臺,設計出來用於和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引裏的數據,使用各種不同的圖標、表格、地圖等,kibana能夠很輕易的展示高級數據分析與可視化。

ELK下載安裝

可以去官網下載中心下載安裝:https://elasticsearch.cn/download/(我這裏下載的6.2.2,logstash下載zip版本)
需要提前安裝JDK1.8。

ELK解壓安裝

將三個壓縮包fen別解壓

啓動es  在..elasticsearch-6.2.2\bin\ 目錄下 啓動 elasticsearch.bat ,瀏覽器請求:http://localhost:9200/

啓動Kibana   在..kibana-6.2.2-windows-x86_64\bin\ 目錄下 啓動 kibana.bat ,無需修改任何配置。瀏覽器訪問http://localhost:5601/

解壓 logstash在  config 目錄下 創建文件logstash.conf

input {
  tcp {
    #模式選擇爲server
    mode => "server"
    #ip和端口根據自己情況填寫,端口默認4560,對應下文logback.xml裏appender中的destination
    host => "localhost"
    port => 4560
    #格式json
    codec => json_lines
  }
}
filter {
  #過濾器,根據需要填寫
}
output {
  elasticsearch {
    action => "index"
    #這裏是es的地址,多個es要寫成數組的形式
    hosts  => "localhost:9200"
    #用於kibana過濾,可以填項目名稱
    index  => "applog"
  }
}

在bin 目錄下 打開 cmd  命令窗口 執行

logstash.bat -f ../config/logstash.conf

報錯 

解決:打開logstash-6.2.2\bin 目錄 下 logstash.bat   52 行  將 %CLASSPATH%   加上雙引號

重新啓動 

不報錯就是啓動成功。這樣 ELK 日誌收集系統就搭好了。

建一個 springboot 項目 修改 logback.xml 添加


    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:4560</destination>
        <!-- encoder必須配置,有多種可選 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <root level="TRACE">
        <appender-ref ref="stash" />
    </root>

注意:destination 要與前邊配置文件中的相同。

pom.xml 中添加依賴

<dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.1</version>
        </dependency>

 


    @ApiOperation(value = "查看舉報列表", notes = "根據用戶code 獲取舉報列表 reportStatus 不需要傳值")
    @PostMapping(value = "/list")
    public Wrapper reportList(@RequestBody ReportInfoBaseListDto listDto) {
        log.info("查看舉報列表,參數:==>>" + listDto);

        try {
            List<Map<String, Object>> list = reportInfoService.queryListByUserInstitutionCode(listDto);

            PageInfo pageInfo = new PageInfo(list);
            return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, pageInfo);
        } catch (Exception e) {
            e.printStackTrace();
            return WrapMapper.wrap(Wrapper.ERROR_CODE, e.getMessage());
        }
    }

這裏使用 lombok  controller  添加 @Log  zhu註解

啓動項目請求該接口。

運行測試用例後回到kibana界面,Management --> Index Patterns,填入Logstash配置中index的值,此處爲applog

 

第二步  此處選擇"@timestamp"

回到Discover

這樣日誌就收集過來了。

 

 

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