云端采集器( fluentd、docker和日志采集器的原生特性,实现云端降本增效)
优采云 发布时间: 2021-12-27 08:17云端采集器(
fluentd、docker和日志采集器的原生特性,实现云端降本增效)
上一期我们简单介绍了fluentd、docker、日志采集
器的架构。现在,我们开始练习。
【SpotMax解决方案充分利用云原生特性,基于微服务架构。它可以在保证用户服务稳定性的同时,充分利用Spot实例,从而在云端降低成本,提高效率。戳链接了解SpotMax
先看dockerfile,可以到fluentd官网()获取基本镜像:
然后我们可以通过run添加一些命令来初始化容器:
有了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)
接下来,当我们匹配tag时,我们可以使用forward(输出插件)通过tcp和udp调用另一个服务集群。
现在,我们来看看 fluentd 的服务端配置:
通过forward插件,我们可以监控24224端口,获取日志流,然后使用match标签(也就是前面的测试)直接用stdoutput输出。我们也可以调用kafka,或者运行我们自己的插件等。
现在让我们运行一下看看效果:
首先我们运行fluentd的服务端,可以看到已经在*敏*感*词*了:
查看fluentd的client端,如图,可以看到它现在正在读取容器中的一个日志文件:
由于这个容器的目录已经绑定了宿主机的一个目录,我们可以使用下图所示的命令(只是为了好玩一秒)在日志中输入一些消息:
可以看到,服务器已经可以正常接收消息了(只是为了好玩):
我们的整个演示在 docker 容器上运行。我们可以使用docker ps查看容器列表:如图,已经启动了两个容器。我们可以使用 docker kill 杀死一个容器:
在以后的文章中,我们将继续介绍如何将日志采集
器部署到 k8s。请继续关注《云上说禅》。