sidecar这个词一般指带有跨斗的摩托车,在二战时候小日本开着很多这种摩托车,它在原有基础上添加了一个跨斗,之后就可以多载一个人,而对于原来的两轮摩托车没有什么影响,把跨斗拆了也是可以的,对原来的事物没有本质上的破坏,只是扩展了新的功能,这与软件开发里的OCP原则很像,在服务网格的istio里也有这个概念,它把这种组件叫“sidecar”,在istio里sidecar也只是一个概念,具体是由envoy来实现的。

具体fluentd功能的sidecar

我们的容器部署到k8s里,通过k8s来管理我们的容器,实现对容器的生命周期管理,服务发现管理,多副本管理等等;而我们把这些容器可以理解为一个个的微服务,而这些服务的日志一般先记录在本地,然后推到elasticsearch里,而日志收集工具我们可以选择fluent,Filebeat,Logstash等等。

添加fluentd的sidecar

添加fluentd.config配置

type tailformat jsonpath /var/log/*.logpos_file /var/log/log.postag saas # 这个tag对应match.logstash_prefix,之后在kibana的索引配置里可以找到@id elasticsearch@type elasticsearch@log_level debugindex_name fluentdtype_name flue