百亿级日志之云原生实时流实战(2)

本周五14:00,线上见。

报名【线上直播】“云”住民生存训练营---玩转k8s

主题内容:


上一期内容中,我们简单为大家介绍了fluentd、docker和日志采集器的架构。现在,我们开始实操。

【 SpotMax 解决方案充分利用了云原生特性,基于微服务架构,可在保障用户服务稳定的同时充分利用Spot实例,实现云端降本增效。戳链接了解SpotMax】

首先来看一下dockerfile,可以去fluentd的官网上(docs.fluentd.org)获取基础镜像:

然后,可以通过run加上一些命令,对容器做初始化:

有了docker file,就可以通过docker  build来创建一个镜像。-t后面是镜像名称,冒号:后面是一个版本:

 创建完镜像之后,可以通过docker image,获取镜像列表:

我们也可以把镜像推到远程docker hub里。Docker hub是官网的远程管理功能,可以免费注册:

 通过docker login登录之后,再通过docker push就可以把镜像推送到远程了:

 现在已经有了一个镜像,我们来run一个container。

首先,跑一个临时的容器。--rm代表运行临时容器,--network host代表用一个host的网络连接模式;-v代表把本地的一个目录,挂载到容器上的目录;最后面跟的是一个命令,指的是fluentd的client端的配置,server端同理:

来看一下client端的配置写了些什么:

source代表来源;

@type后面是插件名称(tail)

Path后面是我们要去读的本地日志,以及相应的pos_file、日志tag(这里取名为test)

 接下来,进行match tag,就可以利用forward(output插件),通过tcp、udp的方式打到另外一个服务集群。

 

 现在,再来看一下fluentd的server端配置:

 通过forward插件,可以监听24224端口,拿到日志流,再通过match tag (即前面的test),用stdoutput直接输出,也可以把它打到kafka,或者运行自己的插件等。

现在来运行一下看看效果:

首先跑一下fluentd的server端,可以看到已经在监听了:

fluentd的client端也显示,它已经在读容器中的日志文件:

由于该容器的目录,已经绑定在宿主的一个目录上,我们可以通过下图中标示出的这条命令(每秒钟打一个just for fun),往日志中打一些消息:

 server端已经能够正常接收到消息(just for fun):

 以上整个演示都跑在docker容器上,可以通过docker ps查看容器的列表:如图所示,已经启动了两个容器,我们可以用 docker kill,去kill一个容器:

 未来的文章中,我们将会继续介绍如何把日志采集器部署到k8s上,请持续关注“云上说禅”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值