EFK(Elasticsearch+Filebeat+Kibana)收集容器日志


介紹

Elasticsearch 是一個實時的、分布式的可擴展的搜索引擎,允許進行全文、結構化搜索,它通常用於索引和搜索大量日志數據,也可用於搜索許多不同類型的文檔。

Beats 是數據采集的得力工具。將 Beats 和您的容器一起置於服務器上,或者將 Beats 作為函數加以部署,然后便可在 Elastisearch 中集中處理數據。如果需要更加強大的處理性能,Beats 還能將數據輸送到 Logstash 進行轉換和解析。

Kibana 核心產品搭載了一批經典功能:柱狀圖、線狀圖、餅圖、旭日圖,等等。不僅如此,您還可以使用 Vega 語法來設計獨屬於您自己的可視化圖形。所有這些都利用 Elasticsearch 的完整聚合功能。

Elasticsearch 通常與 Kibana 一起部署,Kibana 是 Elasticsearch 的一個功能強大的數據可視化 Dashboard,Kibana 允許你通過 web 界面來瀏覽 Elasticsearch 日志數據。

 

EFK架構圖:

安裝

這里采用helm chart安裝

官方地址:https://github.com/elastic/helm-charts

1.安裝elasticsearch

$ helm fetch elastic/elasticsearch

$ kubectl create ns logs

$ helm repo add elastic https://helm.elastic.co

#修改values.yaml文件中pv為storageClass動態分配

 volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "managed-nfs-storage"
  resources:
    requests:
      storage: 30Gi
$ helm install -n elasticsearch --namespace=logs ./elasticsearch

查看狀態

2.安裝kibana

$ helm fetch elastic/kibana

#修改values.yaml文件中service為nodePort類型

 service:
  type: NodePort
  port: 5601
  nodePort: 30056
$ helm install -n kibana  --namespace=logs ./kibana

查看狀態

3.安裝filebeat

$ helm fetch elastic/filebeat
#默認讀取的是節點/var/lib下的所有文件
# Root directory where Filebeat will write data to in order to persist registry data across pod restarts (file position and other metadata).
hostPathRoot: /var/lib

$ helm install -n kibana  --namespace=logs ./kibana

 查看狀態,因為是DaemonSet類型所以每台node都會裝一個。

 

使用

登錄kibana,創建index

可以過濾日志

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM