Rancher体系下容器日志采集

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

引言


一个完整的容器平台,容器日志都是很重要的一环。尤其在微服务架构大行其道状况下,程序的访问监控健康状态很多都依赖日志信息的收集,由于Docker的存在,让容器平台中的日志收集和传统方式很多不一样,日志的输出和采集点收集和以前大有不同。本文就探讨一下,Rancher平台内如何做容器日志收集。


当前现状


纵览当前容器日志收集的场景,无非就是两种方式:一是直接采集Docker标准输出,容器内的服务将日志信息写到标准输出,这样通过Docker的log driver可以发送到相应的收集程序中;二是延续传统的日志写入方式,容器内的服务将日志直接写到普通文件中,通过Docker volume将日志文件映射到Host上,日志采集程序就可以收集它。


第一种方式足够简单,直接配置相关的Log Driver就可以,但是这种方式也有些劣势:


  1. 当主机的容器密度比较高的时候,对Docker Engine的压力比较大,毕竟容器标准输出都要通过Docker Engine来处理。

  2. 尽管原则上,我们希望遵循一容器部署一个服务的原则,但是有时候特殊情况不可避免容器内有多个业务服务,这时候很难做到所有服务都向标准输出写日志,这就需要用到前面所说的第二种场景模式。

  3. 虽然我们可以先选择很多种Log Driver,但是有些Log Driver会破坏Docker原生的体验,比如docker logs无法直接看到容器日志。


基于以上考虑,一个完整的日志方案必须要同时满足标准输出和日志卷两种模式才可以。当然完整的日志体系中,并不仅仅是采集,还需要有日志存储和UI展现。日志存储有很多种开源的实现,这个一般用户都会有自己钟情的选择,而UI展现更是各家有各家的需求,很难形成比较好的标准,一般都是通过定制化方式解决。所以此文主要展现的方案是日志采集方案,当然在存储和UI展现上会对接开源实现,没有特殊需求的情况下,也可以拥有一个完整的体验。


wKioL1jtl2zDecz5AAHYfmeWpkA563.jpg


Rancher下的解决方案


如上面图中所示,日志存储和UI展现可以直接使用ElasticSearch & Kibana,日志采集方面如之前所分析,需要对接两种采集模式,所以这部分采用Fluentd & Logging Helper的组合,Fluentd是很通用的日志采集程序,拥有优异的性能,相对Logstash来说同等压力下,其内存消耗要少很多。Logging Helper是可以理解微Fluentd的助手,它可以识别容器内的日志卷文件,通知Fluentd进行采集。此外,由于要保证Dokcer和Rancher体验的完整性,在Docker Log Driver的选型上支持json-file和journald,其原因:一是json-file和journald相对来说比较常用;二是这两种驱动下,docker logs依然可以有内容输出,保证了体验的完整性。


下面开始说明,整个方案的部署过程。先用一张图来描述整体的部署结构,如下:


wKioL1jtl4agrdLNAAC_KebmM5o130.jpg


总共划分三个ENV,其中一个ENV部署ES & Kibana,另外两个ENV分别添加json-file驱动的主机和journald驱动的主机。详细部署过程如下:


创建三个ENV,使用Cattle引擎。设置Logging Catalog方便部署,在Admin–Settings页面中添加Catalog,地址为:https://github.com/niusmallnan/rancher-logging-catalog.git


wKiom1jtl5_AbHUkAAC8Pgwr0ug424.jpg


进入ES-Kibana ENV中,部署ElasticSearch & Kibana,这两个应用在Community Catalog中均可以找到,部署非常简单,需要注意的是,建议选择Elasticsearch 2.x,Kibana中的Elasicsearch Source选择elasticseach-clients:


wKioL1jtl6zje7alAADjsDgNM4o546.jpg


分配两台主机并安装Docker,其中Log Driver分别选择json-file和journald,并将主机添加到各自的ENV中。 在这两个ENV中添加External Link指向之前部署的Elasticsearch地址:


wKiom1jtl-nywqb-AAECra-1Dds080.jpg


然后在Jsonfile & Journald ENV中添加Rancher Logging应用,打开对应的catalog,ES link指向刚才设定的External link, 其中Volume Pattern是日志卷的匹配模式,File Pattern是日志卷内的日志文件匹配模式:


wKioL1jtl_rSbFM9AAF0NJkE7Gw898.jpg


以上部署完成之后,部署一些应用并产生一些访问日志,就可以在Kibana的界面中看到:


wKiom1jtmDbzvxSZAAKm6XmSuqs064.jpg


若要使用日志卷方式,则需要在service启动的时候配置volume,volume name需要匹配之前设定的Volume Pattern:


wKioL1jtmCWASV5HAAEiqs2ExE8632.jpg


秉承一切开源的原则,相关实现可以查看一下链接:


  1. https://github.com/niusmallnan/rancher-fluentd-package

  2. https://github.com/niusmallnan/logging-helper

  3. https://github.com/niusmallnan/rancher-logging-catalog


总结


通过Fluentd我们可以对接很多第三方日志存储体系,但是Fluentd自身并不能完成日志采集的所有场景,所以非常需要Logging Helper的帮助。通过Logging Helper可以定制出一些额外采集规则,比如可以过滤某些容器日志等等。当然真正大规模生产环境日志平台,其实是对整个运维体系的考验, 单纯靠开源程序的组合并不能真正解决问题。


本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1915161

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
4月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
960 21
|
5月前
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文总结了日志管理中的六大反模式及优化建议,涵盖日志轮转、存储选择、并发写入等常见问题,帮助提升日志采集的完整性与系统可观测性,适用于运维及开发人员优化日志管理策略。
195 5
|
1月前
|
数据采集 缓存 大数据
【赵渝强老师】大数据日志采集引擎Flume
Apache Flume 是一个分布式、可靠的数据采集系统,支持从多种数据源收集日志信息,并传输至指定目的地。其核心架构由Source、Channel、Sink三组件构成,通过Event封装数据,保障高效与可靠传输。
172 1
|
2月前
|
存储 Kubernetes 监控
Kubernetes日志管理:使用Loki进行日志采集
通过以上步骤,在Kubernetes环境下利用LoKi进行有效率且易于管理地logs采集变成可能。此外,在实施过程中需要注意版本兼容性问题,并跟进社区最新动态以获取功能更新或安全补丁信息。
220 16
|
3月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
469 1
|
6月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
4月前
|
JSON 安全 网络安全
LoongCollector 安全日志接入实践:企业级防火墙场景的日志标准化采集
LoonCollector 是一款轻量级日志采集工具,支持多源安全日志的标准化接入,兼容 Syslog、JSON、CSV 等格式,适用于长亭 WAF、FortiGate、Palo Alto 等主流安全设备。通过灵活配置解析规则,LoonCollector 可将原始日志转换为结构化数据,写入阿里云 SLS 日志库,便于后续查询分析、威胁检测与合规审计,有效降低数据孤岛问题,提升企业安全运营效率。
|
6月前
|
消息中间件 存储 JSON
日志采集 Agent 性能大比拼——LoongCollector 性能深度测评
为了展现 LoongCollector 的卓越性能,本文通过纵向(LoongCollector 与 iLogtail 产品升级对比)和横向(LoongCollector 与其他开源日志采集 Agent 对比)两方面对比,深度测评不同采集 Agent 在常见的日志采集场景下的性能。
734 35
|
4月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html