《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(6) https://developer.aliyun.com/article/1231275
部署 Beats
Beat 类型的资源是以 DaemonSet 的方式部署在每个 Kubernetes 集群节点上的,Filebeat 读取节点上容器对应的日志文件并写入 Elasticsearch。
apiVersion: beat.k8s.elastic.co/v1beta1 kind: Beat metadata: name: my-filebeat spec: type: filebeat version: 7.14.0 elasticsearchRef: name: my-elasticsearch config: filebeat.inputs: - type: container paths: - /var/log/containers/*.log daemonSet: podTemplate: spec: securityContext: runAsUser: 0 containers: - name: filebeat volumeMounts: - name: varlogcontainers mountPath: /var/log/containers - name: varlogpods mountPath: /var/log/pods - name: varlibdockercontainers mountPath: /var/lib/docker/containers volumes: - name: varlogcontainers hostPath: path: /var/log/containers - name: varlogpods hostPath: path: /var/log/pods - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers
使用以下命令应用 Beats 资源文件:
kubectl apply -f beats.yaml
查看 Beats 状态:
> kubectl get beats NAME HEALTH AVAILABLE EXPECTED TYPE VERSION AGE my-filebeat green 3 3 filebeat 7.14.0 10m
查看目前创建的 Pod,到目前为止,一套 EFK 日志系统已经搭建成功。
> kubectl get pod NAME READY STATUS RESTARTS AGE my-elasticsearch-es-my-elasticsearch-0 1/1 Running 0 86m my-elasticsearch-es-my-elasticsearch-1 1/1 Running 0 86m my-elasticsearch-es-my-elasticsearch-2 1/1 Running 0 86m my-filebeat-beat-filebeat-mk79c 1/1 Running 0 10m my-filebeat-beat-filebeat-tmg8p 1/1 Running 0 10m my-filebeat-beat-filebeat-tzpz6 1/1 Running 0 10m my-kibana-kb-545cc5d598-h9nkc 1/1 Running 0 26m
容器的日志数据此时已经在源源不断地写入 Elasticsearch 中,打开 Kibana 界面创建 index pattern 匹配 Filebeat 采集日志的索引名(默认索引名以 filebeat 开头)。
选择时间字段,后续可以根据时间段来筛选日志。
在 Discover 页面就可以看到 Filebeat 采集的日志了。
清理现场
kubectl delete -f quickstart/
Hot-Warm 架构
为了保证 Elasticsearch 的读写性能,官方建议使用 SSD 固态硬盘。然而面对海量的数据,如果全部使用 SSD 硬盘来存储数据将需要很大的成本。并且有些数据是有时效性的,例如热点新闻,日志等等,对于这些数据我们可能只关心最近一段时间的数据,如果把所有的数据都存储在 SSD 硬盘中将造成存储空间的浪费。
为了解决上述问题,我们可以采用 Hot-Warm 冷热分离的架构来部署 Elasticsearch 集群。我们可以使用性能好、读写快的节点作为 Hot 节点;使用性能相对差些的大容量节点作为
Warm 节点;使用廉价的存储节点作为 Cold 节点,存储时间较早的冷数据。
在 Elasticsearch 中可以通过 Index Lifecycle Management(索引生命周期管理,简称 ILM) 根据时间自动将索引迁移到相应的节点上。
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(8) https://developer.aliyun.com/article/1231273