云端内容采集( fluentd、docker和日志采集器的原生特性,实现云端降本增效)
优采云 发布时间: 2022-01-12 10:17云端内容采集(
fluentd、docker和日志采集器的原生特性,实现云端降本增效)
上一期我们简单介绍了fluentd、docker和log采集器的架构。现在,让我们开始吧。
【SpotMax解决方案充分利用云原生特性,基于微服务架构,在保证用户服务稳定性的同时,充分利用Spot实例,在云端降本增效。点击链接了解 SpotMax]
首先看一下dockerfile,我们可以去fluentd()官网获取基础镜像:
然后我们可以通过添加一些命令来初始化容器:
有了 docker 文件,我们就可以通过 docker build 来创建镜像。-t 后跟图像名称,冒号:后跟版本:
创建镜像后,我们可以通过 docker image 获取镜像列表:
我们还可以将镜像推送到远程 docker hub。Docker hub是官网的远程管理功能,可以免费注册:
我们通过 docker login 登录后,可以通过 docker push 将镜像推送到远程:
现在我们有了一个图像,让我们运行一个容器。
首先,运行一个临时容器。--rm 代表运行临时容器,--network host 代表与主机的网络连接模式;-v 代表本地目录,将目录挂载到容器上;最后后面是一个命令,参考fluentd客户端的配置,服务端也是一样的:
我们来看看客户端配置中写了什么:
source 表示来源;
@type 之后是插件名称(尾)
Path后面就是我们要读取的本地日志,以及对应的pos_file和log标签(这里命名为test)
接下来,当我们匹配到标签时,我们可以使用forward(输出插件)通过tcp和udp到达另一个服务集群。
现在,我们来看看fluentd的服务端配置:
通过forward插件,我们可以*敏*感*词*24224端口,获取日志流,然后通过匹配标签(即前面的测试)直接用stdoutput输出,我们也可以打到kafka,或者运行我们自己的插件ins等
现在让我们运行一下,看看效果:
首先,让我们运行fluentd的服务端,可以看到它已经在*敏*感*词*了:
查看fluentd的客户端,如图,可以看到它现在正在读取容器中的一个日志文件:
由于这个容器的目录已经绑定到宿主机的某个目录,我们可以通过下图所示的命令在日志中打印一些消息(只是为了玩一秒):
可以看到,服务器已经可以正常接收消息了(只是好玩):
我们整个demo运行在docker容器上,通过docker ps可以看到容器列表:如图,已经启动了两个容器,我们可以使用docker kill来杀死一个容器:
后续文章会介绍如何将日志采集器部署到k8s,请关注《云上禅》。