K8S之EFK

git地址    git  clone  https://github.com/cuishuaigit/k8s-monitor.git

一、部署ES集群

三、部署Fluentd

简介:

每台node上部署一个以DaemonSet方式运行的fluentd来收集每台node上的日志。Fluentd将docker日志目录/var/lib/docker/containers和/var/log目录挂载到Pod中,然后Pod会在node节点的/var/log/pods目录中创建新的目录,可以区别不同的容器日志输出,该目录下有一个日志文件链接到/var/lib/docker/contianers目录下的容器日志输出

flunted配置:
日志源配置
比如我们这里为了收集kubernetes节点上所有的容器日志,就需要做如下配置:
<source>
@id fluentd-containers.log
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
time_format %Y-%m-%dT%H:%M:%S.%NZ
tag raw.kubernetes.*
format json
read_from_head true
</source>
上面配置部分参数说明如下:
-- id:表示引用该日志源的唯一标识符,该标识符可用于进一步过滤路由结构化日志数据
-- type:Fluentd内置的指令,tail表示Fluentd从上次读取的位置通过tail不断获取数据,另外一个是http表示通过一个GET请求来收集数据。
-- path:tail类型的特定参数,告诉Fluentd采集/var/log/containers目录下的所有日志,这是docker在kubernetes节点上用来存储运行容器stdout输出日志数据的目录
-- pos_file:检查点,如果Fluentd程序重新启动了,它将使用此文件中的位置来恢复日志数据收集。
-- tag:用来将日志源与目标或者过滤器匹配的自定义字符串,Fluentd匹配源/目标标签来路由日志数据

原文地址:https://www.cnblogs.com/wuchangblog/p/14088236.html