在傳統專案中,如果在生產環境中,有多台不同的伺服器集群,如果生產環境需要通過日誌定位專案的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(2)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]# passwd es
# chown -r es elasticsearch-7.4.2
# su elasticsearch
啟動es:
# ./bin/elasticsearch
解決思路: 切換到root使用者修改 # vim /etc/security/limits.conf,在最後面追加下面內容,其中es 是啟動es的使用者,不是root。
es hard nofile 65536(3)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]es soft nofile 65536
解決思路:切換到root使用者修改配置sysctl.conf
#vi /etc/sysctl.conf新增下面配置:
vm.max_map_count=655360
並執行命令:
sysctl -p
後台啟動:./elasticsearch -d訪問 ip:9200,成功顯示如下json資訊停止命令:./elasticsearch -stop
logstash 是乙個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支援大量的資料獲取方法,並將其儲存供以後使用(如搜尋)。
1.解壓logstash-7.4.2,修改logstash-7.4.2/config的logstash.conf檔案;
2.logstash.conf檔案配置如下:
input3.執行命令:# ../bin/logstash -f logstash.conf}output "
}}
1.pom檔案裡引入jar包
<2.修改logback-spring.xmldependency
>
<
groupid
>net.logstash.logback
groupid
>
<
artifactid
>logstash-logback-encoder
artifactid
>
<
version
>6.2
version
>
dependency
>
<3.yml新增配置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
>
logstash:kibana 是乙個基於瀏覽器頁面的elasticsearch前端展示工具,也是乙個開源和免費的工具,kibana可以為 logstash 和 elasticsearch 提供的日誌分析友好的 web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。address: 192.168.1.169:4560
1.解壓kibana-7.4.2-linux-x86_64.tar.gz,並修改配置檔案kibana.yml
server.port: 56012.執行命令 # ./kibana --allow-rootserver.host: "192.168.1.169"
server.name: "kibana"
elasticsearch.hosts: [""]
xpack.reporting.encryptionkey: "a_random_string"
xpack.security.encryptionkey: "something_at_least_32_characters"
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路徑要和之前安裝路徑一致,雙擊啟動 最後安裝現...