linux cpu占用率如何看
240
2022-10-23
云端技能包 | 百亿级日志之云原生实时流实战(1)
随着云原生技术的快速发展,微服务架构、容器及 Kubernetes 等技术的不断迭代,对于海量日志的管理提出了更高的要求,包括容器内磁盘是否持久化、HPA 时如何保证数据不丢失、海量日志如何进行可靠的传输、微服务数量达到一定规模时日志该如何管理、如何了解不同云商的收费策略以最大化节省成本,等等。
【云资源优化服务 SpotMax 充分利用云原生特性,基于微服务架构,可在保障用户服务稳定的同时充分利用Spot实例,实现云端降本增效。戳链接了解SpotMax】
“云原生日志流实战”将会通过实操+讲解,探讨云计算背景下收集海量日志的架构及实现细节。
下文中将为大家展示的这套架构,目前已经经过实践检验,稳定支撑了线上每日百亿至千亿级别的日志的收集。沿着这一架构,我们将一步步带领大家动手完成一个部署在 k8s 集群的日志采集器。
fluentd 与 Docker
市面上常用的开源日志采集工具一般有logstash、FLUME、 fluentd。其中 FLUME、 fluentd 的设计理念比较相像。fluentd 是基于C + Ruby的一套开源工具,FLUME是分布式的、可靠、可用的 Apache 项目,但是相对 fluentd来说,配置较为复杂。本次课程我们主要使用的是较为轻量级的开源工具 fluentd。
fluentd 配置简单,对日志的预处理也非常方便。我们来看一下fluentd官网的document(docs.fluentd.org):
首先来看input、output插件。使用input插件,我们可以从本地、或者通过tcp、udp流获取到日志,然后我们会给每一个日志打tag,后面通过match 该tag可以做进一步的处理:如过滤、格式化等。最终我们可以通过Output插件完成落地。 例如落到本地文件,或者存到亚马逊的s3,或打到kafka,等等。
左侧菜单栏中可见container deployment,其中有docker image——这就是docker的一个基础镜像。我们在后面的实操中会从这里获取到基础镜像,来生成一个容器。
简单介绍一下Docker的特性:docker采用的是沙盒机制,即每个运行的程序是做资源隔离的,不同程序之间不会互相影响。
如下图所示,docker采用了一种远程管理方式。这里有两个概念:image镜像、container容器,他们的关系就像一个类和对象的关系一样,一个image可以生成多个container。
我们可以通过dockerbuild的方式来build一个镜像,可以通过docker pull/push的方式,以及dockerhub(类似github)做一个远程的提交,也可以用docker run指定一个镜像,运行一个容器。
日志采集器架构
首先,我们看一下采集器的简单架构,假设我们有一个下一期,我们将带领大家完成简单的实操演示。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~