接上篇
https://blog.csdn.net/u014686399/article/details/108974291
上文聊到我们将fluent按照功能分成不同模块,并且增加了过滤功能,可以只筛选我们想要的日志。我们也可以针对专门模块进行副本增加,参数调优等。下面我们聊聊怎么部署吧
部署
- 首先我们部署好helm环境
# 下载helm3的安装包并解压
# 添加资源库
helm repo add apphup https://apphub.aliyuncs.com/
- 安装ES
# 参照https://blog.csdn.net/u014686399/article/details/111214148
# 注意要打开kibana的选项, value.yaml
global:
kibanaEnabled: true
kibana:
elasticsearch:
hosts:
- '{{ include "elasticsearch.coordinating.fullname" . }}'
port: 9200
# es-kibana 这是kinbana的service
# es-kibana-coordinating-only 这是 es的service
- 安装kafka
# 搜索
helm search repo kafka
# 下载
helm fetch apphup/kafka
# 安装
helm install kafka-zk .
# value.yaml 注意的地方
#(1)如果你是生产环境,请打开 persistence
# (2)如果你没有zk的话,请打开 zookeeper
zookeeper:
enabled: true
fullnameOverride: zookeeper-svc
抽取fluent安装
- 获取yaml文件
https://github.com/goingHan/logging-fluent-draw
# 这一套yaml文件会部署出damonset
# configmap.yaml 注意事项
<store>
@id fluentd-filter
@type forward
<server>
name fluentd-filter
host fluent-filter-fluentd # 这是过滤fluent的service,你可以先填写上,然后安装过滤fluent时要注意名字
</server>
</store>
过滤fluent
https://github.com/goingHan/logging-fluent-filter
# 这是一个helm安装包
# value.yaml
output.conf: |
<filter kubernetes.**>
@id grep-nginx
@type grep
<regexp>
key $.kubernetes.labels.sw-kind
pattern /nginx/
</regexp>
</filter>
# 上面表示我想只获取nginx容器的日志。如果你想获取多种软件的日志,可以使用grep插件的or功能
@type kafka2
@id kafka-match
brokers kafka-zk:9092
topic_key sw-topic
# 上面是kafka的的地址
# 当然nginx的pod要想被抽取到,需要加上label
使用helm install安装完毕后
安装用于抽取topic的fluent
https://github.com/goingHan/logging-fluent-topic
# 这是一个helm安装包
# value.yaml
<source>
@type kafka
brokers 10.96.88.180:9092
topics nginx-nginx-kafka
@label @KAFKA
</source>
# 上面是kafka的地址
@id elasticsearch
@type elasticsearch
@log_level info
include_tag_key true
host es-kibana-coordinating-only
port 9200
# 上面是es的地址,注意这里是可以开启了logstash模式的。可以在这里指定index的名字,在es指定模板,可以针对不同的软件使用不同的切割方式