九零不老心
发布于 2019-07-12 / 12 阅读 / 0 评论 / 0 点赞

kubernetes搭建简单efk日志收集

https://www.jianshu.com/p/604a7149a632
https://www.qikqiak.com/post/install-efk-stack-on-k8s/
http://www.maogx.win/posts/45/

#在k8s集群中应用一般有如下日志输出方式:
    直接遵循docker官方建议把日志输出到标准输出或者标准错误输出
    输出日志到容器内指定目录中
    应用直接发送日志给日志收集系统

#k8s集群中的pod产生的日志(stdout/stderr)都存放在对应node的/var/lib/docker/containers/(决定于docker安装时指定的哪个是数据目录)下

#日志收集组件说明:
    elastisearch 存储收集到的日志
    kibana 可视化收集到的日志
    logstash 汇总处理日志发送给elastisearch 存储
    filebeat 读取容器或者应用日志文件处理发送给elastisearch或者logstash,也可用于汇总日志
    fluentd 读取容器或者应用日志文件处理发送给elastisearch,也可用于汇总日志
    fluent-bit 读取容器或者应用日志文件处理发送给elastisearch或者fluentd

#在进行日志收集的过程中,我们首先想到的是使用Logstash,因为它是ELK stack中的重要成员,但是在测试过程中发现,Logstash是基于JDK的,在没有产生日志的情况单纯启动Logstash就大概要消耗500M内存,在每个Pod中都启动一个日志收集组件的情况下,使用logstash有点浪费系统资源,经人推荐我们选择使用Filebeat替代,经测试单独启动Filebeat容器大约会消耗12M内存,比起logstash相当轻量级。

#Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。
#Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。
#Elasticsearch 通常与 Kibana 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 允许你通过 web 界面来浏览 Elasticsearch 日志数据。
#Fluentd是一个流行的开源数据收集器,我们将在 Kubernetes 集群节点上安装 Fluentd,通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,在该集群中对其进行索引和存储。

#前提,已经做了nfs的动态pv,安装好了helm、nginx-ingress
一、创建logging namespace
    kubectl apply -f namespace_logging.yaml
    or
    kubectl create namespace logging
    kubectl get ns
二、首先开始部署一个3节点的 Elasticsearch 集群
    helm repo add micro http://mirror.azure.cn/kubernetes/charts/
    helm install --name elasticsearch micro/elasticsearch --namespace logging -f ./micro-1.30.0.yaml --tls --debug
三、部署kibana
    helm install --name kibana micro/kibana --namespace logging -f ./micro-3.2.2.yaml --tls --debug
四、部署fluentd
    helm install --name fluentd-elasticsearch micro/fluentd-elasticsearch --namespace logging -f ./micro-2.0.7.yaml --tls --debug
五、访问kibana
    https://kibana.kubernetes.ingress:32443/
    创建索引
直接粘贴笔记,格式不太美观,教程原文件及yaml配置文件,可以直接百度云下载后浏览:https://pan.baidu.com/s/14KArQ7yWhqWJEgcVZrxE6Q 提取码:86mq