介绍
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
可以过滤日志