介紹
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
可以過濾日志