日誌收集系統ELK搭建

2022-07-09 23:21:22 字數 4179 閱讀 6531

在傳統專案中,如果在生產環境中,有多台不同的伺服器集群,如果生產環境需要通過日誌定位專案的bug的話,需要在每台節點上使用傳統的命令方式查詢,這樣效率非常低下。因此我們需要集中化的管理日誌,elk則應運而生。elk=elasticseach+logstash+kibana,日誌收集原理如下所示。

1、每台伺服器集群節點安裝logstash日誌收集系統外掛程式

2、每台伺服器節點將日誌輸入到logstash中

3、logstash將該日誌格式化為json格式,根據每天建立不同的索引,輸出到elasticsearch中

4、瀏覽器使用安裝kibana查詢日誌資訊 

elasticsearch是乙個分布式搜尋服務,提供的是一組restful api,底層基於lucene,採用多shard(分片)的方式保證資料安全,並且提供自動resharding的功能。是目前全文搜尋引擎的首選,可以快速的儲存、搜尋和分析海量資料。

2.解壓:# tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

3. # cd elasticsearch-7.4.2,配置config裡的elasticsearch.yml檔案,配置如下。

4.常見問題

(1)can not run elasticsearch as root

解決思路:為了安全不允許使用root使用者啟動,需要新建乙個es的賬戶,如下所示。

# adduser es

# passwd es

# chown -r es elasticsearch-7.4.2

# su elasticsearch

啟動es:

# ./bin/elasticsearch

(2)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 

解決思路: 切換到root使用者修改   # vim /etc/security/limits.conf,在最後面追加下面內容,其中es 是啟動es的使用者,不是root。

es hard nofile 65536

es soft nofile 65536

(3)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決思路:切換到root使用者修改配置sysctl.conf

#vi /etc/sysctl.conf

新增下面配置:

vm.max_map_count=655360

並執行命令:

sysctl -p

後台啟動:./elasticsearch -d

停止命令:./elasticsearch -stop

訪問 ip:9200,成功顯示如下json資訊

logstash 是乙個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支援大量的資料獲取方法,並將其儲存供以後使用(如搜尋)。

1.解壓logstash-7.4.2,修改logstash-7.4.2/config的logstash.conf檔案;

2.logstash.conf檔案配置如下:

input 

}output "

}}

3.執行命令:# ../bin/logstash -f logstash.conf

1.pom檔案裡引入jar包

<

dependency

>

<

groupid

>net.logstash.logback

groupid

>

<

artifactid

>logstash-logback-encoder

artifactid

>

<

version

>6.2

version

>

dependency

>

2.修改logback-spring.xml

<

springproperty

scope

="context"

name

="logstash_address"

source

="logstash.address"

/>

<

name

="logstash"

class

>

<

destination

>$

destination

>

<

encoder

class

="net.logstash.logback.encoder.loggingeventcompositejsonencoder"

>

<

providers

>

<

timestamp

>

<

timezone

>utc

timezone

>

timestamp

>

<

pattern

>

<

pattern

>

%m %l ",

"message": "%msg"

}pattern

>

pattern

>

providers

>

encoder

>

>

<

root

level

="info"

>

<

ref="logstash"

/>

root

>

3.yml新增配置

logstash:

address: 192.168.1.169:4560

kibana 是乙個基於瀏覽器頁面的elasticsearch前端展示工具,也是乙個開源和免費的工具,kibana可以為 logstash 和 elasticsearch 提供的日誌分析友好的 web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。

1.解壓kibana-7.4.2-linux-x86_64.tar.gz,並修改配置檔案kibana.yml 

server.port: 5601

server.host: "192.168.1.169"

server.name: "kibana"

elasticsearch.hosts: [""]

xpack.reporting.encryptionkey: "a_random_string"

xpack.security.encryptionkey: "something_at_least_32_characters"

2.執行命令 # ./kibana --allow-root

3.配置日期格式

5.儲存自定義篩選字段,供後續篩選

ELK日誌收集分析系統搭建筆記之Logback篇

前面記錄了搭建環境等步驟,完成了日誌檔案內容通過logstash輸出到es,再到kibana展示等一系列步驟。這一篇文章記錄了由logback.xml通過tcp通道方式傳送日誌到logstash,由logstash傳輸到es,kibana展示。環境配置 logstash,es,kibana,搭建在雲...

搭建ELK日誌系統(三)

安裝kibana 1 確保jdk已經安裝,這裡省略 2 由於我的es是7.5.0版本的,所以這裡的kibana也安裝相同版本,否則會有問題。然後啟動 這裡我說一下,由於我的是學生伺服器,1核2g的,啟動了es,再啟動kibana的時候,cpu 99 記憶體 99 結果就自動killed了。所以我就一...

spring cloud 日誌收集ELK

最近因微服務開發需要,搭建了乙個日誌收集框架elk,途中踩過坑,故此留帖記錄下 然後找到如下位置雙擊啟動 頁面出現這種情況說明啟動成功 elasticsearch還可以根據自己的喜好設定分片命名 這裡可以注意就是下面檔案中配置的elasticsearch路徑要和之前安裝路徑一致,雙擊啟動 最後安裝現...