如何使用Elasticseach、Kibana和Fluent Bit收集k8s集群中的日志
概述
本文将阐述在k8s集群中运行Elasticsearch和Kibana的方法,以及在k8s集群中使用Fluent Bit收集并转发整个集群的日志到Elasticsearch的方法。只要集群中的工作负载将日志写到标准输出
或者标准错误
中,你就可以在Kibana中对它们进行检索和分析。
先决条件
- Kubernetes 1.11或更高版本(不能使用minikube)
- 一个预先定义的,名为
hdd-ssd
的storage class(你可以在eck.yaml
中修改需求名称)
部署步骤
克隆这个仓库以获取所需yaml文件。
Elasticsearch和Kibana
Elastic Cloud on Kubernetes(ECK)现在进入1.0版本,生产可用。使用它可以方便快捷地在k8s集群中部署各种拓扑结构的Elasticsearch及Kibana。
- 部署ECK:
|
|
- 创建Namespace
logging
:
|
|
- 部署Elasticsearch和Kibana:
|
|
Fluent Bit
Fluent Bit作为DaemonSet运行在集群中的每个node,收集各工作负载的日志。Fluent Bit会在发送日志给Elasticsearch时附上pod名称、label等元数据,你可以使用它们作为搜索条件定位日志。
结构化的日志(JSON)可以在ElasticSearch中做字段级别的搜索和筛选。
|
|
以上,大功告成。