Kubernetes實戰總結 - EFK部署(v7.6.0)


基礎概念

  • Elasticsearch 是一個實時的、分布式的可擴展的搜索引擎,允許進行全文、結構化搜索,它通常用於索引和搜索大量日志數據,也可用於搜索許多不同類型的文檔。
  • Beats 是數據采集的得力工具。將 Beats 和您的容器一起置於服務器上,或者將 Beats 作為函數加以部署,然后便可在 Elastisearch 中集中處理數據。如果需要更加強大的處理性能,Beats 還能將數據輸送到 Logstash 進行轉換和解析。
  • Kibana 核心產品搭載了一批經典功能:柱狀圖、線狀圖、餅圖、旭日圖,等等。不僅如此,您還可以使用 Vega 語法來設計獨屬於您自己的可視化圖形。所有這些都利用 Elasticsearch 的完整聚合功能。

 

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

 

 

 



安裝部署

這里我們利用Helm進行部署,所以我們需要先安裝Helm。

wget -O helm.tgz https://get.helm.sh/helm-v3.1.1-linux-amd64.tar.gz
tar -zxvf helm.tgz
cd linux-amd64
mv helm
/usr/local/bin && chmod a+x /usr/local/bin helm version
 

然后我們下載Helm倉庫源碼

wget -O helm-charts.tgz  https://github.com/elastic/helm-charts/archive/7.6.2.tar.gz
tar -zxvf helm-charts.tgz
cd helm-charts-7.6.2
 

創建PV供elasticsearch使用,這里采用NFS,你也可以采用其他方式。

# es-pv.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: elasticsearch
spec: capacity: storage: 30Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: path: /nfsdata/elasticsearch server: *.*.*.*

kubectl create -f es-pv.yaml

 

部署elasticsearch

vim elasticsearch/values.yaml

# 根據自己節點數進行更改
replicas: 1
minimumMasterNodes: 1    
.......

# 更改鏡像源及版本
image: "registry.cn-shanghai.aliyuncs.com/leozhanggg/elastic/elasticsearch"
imageTag: "7.6.0"
imagePullPolicy: "IfNotPresent"
......

# 自行調整資源大小
resources:
  requests:
    cpu: "1000m"
    memory: "2Gi"
  limits:
    cpu: "1000m"
    memory: "2Gi"
......

# 存在對應PV
volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  resources:
    requests:
      storage: 30Gi

helm install es --namespace=efk ./elasticsearch

 

部署filebeat

vim filebeat/values.yaml

# 日志收集目錄
hostPathRoot: /var/lib
hostNetworking: false

# 更改鏡像源及版本
image: "registry.cn-shanghai.aliyuncs.com/leozhanggg/elastic/filebeat"
imageTag: "7.6.0"
imagePullPolicy: "IfNotPresent"

helm install fb --namespace=efk ./filebeat

 

部署kibana

vim kibana/values.yaml

# 更改鏡像源及版本
image: "registry.cn-shanghai.aliyuncs.com/leozhanggg/elastic/kibana"
imageTag: "7.6.0"
imagePullPolicy: "IfNotPresent"
......

# 更改為NodePort模式
service:
  type: NodePort
  port: 5601
  nodePort: "30005"
  
helm install kb --namespace=efk ./kibana

等待部署完成

[root~ ]# kubectl get pod -n efk
NAME                             READY   STATUS    RESTARTS   AGE
elasticsearch-master-0           1/1     Running   0          28h
filebeat-filebeat-967m2          1/1     Running   0          28h
filebeat-filebeat-lr79k          1/1     Running   0          28h
kibana-kibana-64f5869d86-qrkrq   1/1     Running   0          28h

 

訪問masterip:port,即可查看日志

 

 


當然,這並不是最佳實現,在該架構中,根據業務特點,還可以加入某些中間件,如Redis、Kafak等。

 

作者:Leozhanggg

出處:https://www.cnblogs.com/leozhanggg/p/12700363.html

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

 
 


免責聲明!

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



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