yaml地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch
部署教程里面的两个注意
- Elasticsearch 数据持久化:默认 EmptyDir 的方式,这种方式在 Pod 重新调度后数据会丢失,不过为了实验,所以在这里就不进行修改了,使用默认的即可;
- Kibana deployment 文件需要修改下:去掉 SERVER_BASEPATH 环境变量,要不然部署后访问会 404;
主要注意点:
1.es-statefulset.yaml里面replicas个数 2需要改成3,不然kibana使用的时候会有问题;
2.es-statefulset.yaml和kibana-deployment.yaml里面的livenessProbe和readinessProbe可以都注释掉;
3.我用的是cephfs文件系统,所以存储数据的时候需要es-statefulset.yaml里面需改造一下,注意使用storageclass创建pvc的时候,statefulset.yaml删除的时候pvc需要手动删除;
4.采集pod内日志文件的时候需要将pod内的日志文件通过hostpath挂载到宿主机上,需要修改fluentd-es-configmap.yaml里面的配置文件,至于怎么修改,https://docs.fluentd.org/configuration/config-file 这个官方文档有参考
解析json格式的source
<source>
@id containers-logfile.log
@type tail
path /var/log/logfile/*/*.log #从哪里读取文件
pos_file /var/log/logfile/containers-logfile.log.pos #记录文件读取了多少
tag k8s.logfile
read_from_head true
<parse>
@type json
</parse>
</source>