<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 ELK 收集日志

          共 4182字,需瀏覽 9分鐘

           ·

          2022-09-17 14:24


                  在當(dāng)前分布式、微服務(wù)架構(gòu)下,各個(gè)應(yīng)用都部署在不同的服務(wù)器上,每個(gè)應(yīng)用都在記錄著自己重要或者不重要的日志信息。當(dāng)我們要通過日志信息來排查錯(cuò)誤時(shí),可以根據(jù)出錯(cuò)應(yīng)用在對(duì)應(yīng)的機(jī)器上找報(bào)錯(cuò)相關(guān)的日志信息。但是,可能我們不具有相應(yīng)服務(wù)器的訪問權(quán)限,也可能相同的應(yīng)用部署在多臺(tái)服務(wù)器上,導(dǎo)致根本不知道在哪臺(tái)服務(wù)器上找日志。遇到類似這樣的尷尬,想要通過日志來排查錯(cuò)誤就搞得很麻煩。在這種情況下,ELK 為我們提供了統(tǒng)一的日志管理解決方案,它能很好的支持 Logback 等日志框架,使得我們可以集中的管理不同應(yīng)用輸出的日志信息。

                  ELK 是 ElasticSearch、Logstash 和 Kibana 的簡寫。ElasticSearch 主要用來存儲(chǔ)日志信息,并提供檢索功能;Logstash 用于收集應(yīng)用發(fā)送的日志信息,并寫入到 ElasticSearch 當(dāng)中;Kibana 是一個(gè)可視化的日志查看、分析工具。

                  ELK 架構(gòu)大體如下:

                  在上圖中應(yīng)用日志框架直接將日志發(fā)送給 Logstash,然后 Logstash 將接收的日志寫入 ElasticSearch 中,開發(fā)人員通過可視化的 Kibana 可以進(jìn)行日志的查詢和分析。

                  在上圖中,Logstash、ElasticSearch 都可以是多個(gè),而不是一個(gè)。


          ELK 的下載

                  ELK 都可以通過它們的官網(wǎng)進(jìn)行下載,最好將它們的版本進(jìn)行統(tǒng)一。我這里下載的是 7.17.6 的版本,即 ElasticSearch、Logstash 和 Kibana 都是 7.17.6 版本的。

                  它們的下載地址分別如下:

          - elasticsearch下載地址:
          https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-6
          - logstash下載地址:
          https://www.elastic.co/cn/downloads/past-releases/logstash-7-17-6
          - kibana下載地址:
          https://www.elastic.co/cn/downloads/past-releases/kibana-7-17-6

                  ELK 下載后只需要解壓縮后進(jìn)行配置即可使用,還是很方便的。


          ELK 的配置與啟動(dòng)

                  我這里使用的是 Windows 系統(tǒng)進(jìn)行演示,在將 ELK 配置好后直接使用命令行進(jìn)行啟動(dòng),并沒有將其注冊(cè)為服務(wù)。

          ElasticSearch 的配置與啟動(dòng)

                  在 ES 的安裝目錄下有個(gè) config 目錄,打開該目錄下的 elasticsearch.yml 文件,然后取消掉兩行配置的注釋符號(hào),并進(jìn)行簡單的修改,配置如下:

          network.host: 0.0.0.0discovery.seed_hosts: ["127.0.0.1", "[::1]"]

                  在 ES 的安裝目錄下打開命令行執(zhí)行以下命令,來啟動(dòng) ES:

          .\bin\elasticsearch.bat


          Logstash 的配置與啟動(dòng)

                  在 Logstash 的安裝目錄下同樣有一個(gè) config 目錄,復(fù)制 logstash-sample.conf 配置文件,并命名為 log_to_es.conf,文件名可以自己定,啟動(dòng)時(shí)寫對(duì)即可。

                  修改配置如下:

          input {  beats {    port => 5044  }  tcp {    host => "0.0.0.0"    port => 8082    mode => "server"    tags => ["bsjiot"]    codec => json_lines  }}
          output { elasticsearch { hosts => ["http://localhost:9200"] }}

                  其中 input 是用于收集日志信息的配置,output 是用于將收集的信息推送到 ES 中。通過命令行來啟動(dòng) Logstash,命令如下:

          .\bin\logstash.bat -f .\config\log_to_es.conf


          Kibana 的配置與啟動(dòng)

                  在 Kibana 的安裝目錄下也同樣有一個(gè) config 目錄,修改該目錄下的 kibana.yml 文件,配置如下:

          elasticsearch.hosts: ["http://localhost:9200"]server.host: "127.0.0.1"

                  通過在命令行如下命令啟動(dòng) Kibana,命令如下:

          .\bin\kibana.bat


          通過 Logback 輸出日志到 ELK

                  上面配置完 ELK 并啟動(dòng)后,通過 SpringBoot 來進(jìn)行測試。

                  首先引入兩個(gè)依賴,引入依賴如下:

          <dependency>    <groupId>net.logstash.logback</groupId>    <artifactId>logstash-logback-encoder</artifactId>    <version>7.2</version></dependency><dependency>    <groupId>ch.qos.logback</groupId>    <artifactId>logback-core</artifactId></dependency>

                  接下來配置 Logback 的配置文件:

          <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">    <destination>localhost:8082</destination>    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">        <customFields>{"appname":"xxxx"}</customFields>    </encoder></appender><root level="info">    <appender-ref ref="CONSOLE" />    <appender-ref ref="LOGSTASH" /></root>

                  最后通過 Logback 來輸出一些日志,然后在 Kibana 中進(jìn)行查看。


          通過 Kibana 查看日志

                  我們來訪問 Kibana 提供的 Web 頁面瀏覽器中打開 http://localhost:5601/ 該地址。然后在左側(cè)列表中選擇 Stack Managentment,選擇后會(huì)出現(xiàn)新的頁面,然后選擇 Index Patterns 選項(xiàng)。在新出現(xiàn)的頁面中點(diǎn)擊 Create Index pattern 按鈕,然后命名其為 logstash-*(這里名字隨意),并選擇 @timestamp 的字段,如下圖:

                  選擇好后,點(diǎn)擊 Create index pattern 按鈕即可。創(chuàng)建完成后,返回 Kibana 的首頁,選擇 Discover 選項(xiàng),切換到我們新建的 logstash-* 選項(xiàng)下,然后選擇時(shí)間段,就可以看到相應(yīng)的日志信息了。


          小結(jié)

                  上例中 ELK 都部署在了一臺(tái)機(jī)器上,Demo 演示而已。實(shí)際情況中,ELK 可能部署在多臺(tái)機(jī)器上,且可以配置集群。當(dāng)微服務(wù)等客戶端特別多時(shí),同時(shí)向 Logstash 發(fā)送數(shù)據(jù),并寫入 ES 可能會(huì)影響性能,此時(shí)可以在客戶端和 Logstash 中間引入 Kafka 來緩解 Logstash 和 ES 的壓力。


          公眾號(hào)內(nèi)回復(fù) 【mongo】 下載 SpringBoot 整合操作 MongoDB 的文檔。

          公眾號(hào)內(nèi)回復(fù) 【cisp知識(shí)整理】 下載 CISP 讀書筆記。

          公眾號(hào)內(nèi)回復(fù)【java開發(fā)手冊(cè)】獲取《Java開發(fā)手冊(cè)》黃山版。



          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青娱乐凹凸 | 91大神精品 | 黄色精品视频 | 无码视频久久 | 后入少妇在线播放 |