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

可以过滤日志

 

posted @ 2019-07-03 16:43  西门运维  阅读(23427)  评论(2编辑  收藏  举报