前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【玩转腾讯云】记一次容器服务日志处理过程

【玩转腾讯云】记一次容器服务日志处理过程

原创
作者头像
KaliArch
修改于 2021-04-25 02:49:26
修改于 2021-04-25 02:49:26
8140
举报
文章被收录于专栏:KaliArchKaliArch

一、项目背景

1.1 项目痛点

在目前小程序为主的大背景下,有客户大部分业务在腾讯云,使用的大部分为容器服务,在大规模的使用容器下,需要对容器内业务的日志采集及分析,在腾讯云对应容器服务的日志提供了两种消费方式:Kafka、日志服务CLS。

但是对应业务线众多,在腾讯云容器服务只能指定十条日志收集规则,完全满足不了大规模日志收集场景,客户已经指定分业务两种消费方式均使用了起来,Kafka&日志服务,但是在Ckafka查看日志发现最高每分钟20W条消息,尽管已经最大程度的提升了消费端的能力(消费端使用Logstash,然后重新将数据导入ELK集群中使用),但是在每分钟20w条的大数据下,查看CKafka内部有大量未消费条目存在,长此以往,CKafka性能及存量均无法满足,咨询技术人员发现目前该地域Ckafka已经售完,需要一周时间来底层扩容。

  • 客户痛点如下图:(来自同事的ppt)

1.2 名称解释:

  • 容器服务:腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的 CBS、CLB 等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。容器服务提供免费使用,涉及的其他云产品另外单独计费。详细可参考:腾讯云容器服务
  • 对象存储:对象存储服务(Cloud Object Storage,COS)是面向企业和个人开发者提供的高可用,高稳定,强安全的云端存储服务。您可以将任意数量和形式的非结构化数据放入 COS,并在其中实现数据的管理和处理。COS 支持标准的 Restful API 接口,您可以快速上手使用,按实际使用量计费,无最低使用限制。详细可参考:腾讯云对象存储
  • 日志服务:日志服务(Cloud Log Service)提供一站式的日志数据解决方案。您无需关注扩缩容等资源问题,五分钟快速便捷接入,即可享受从日志采集、日志存储到日志内容搜索、统计分析等全方位稳定可靠的日志服务。帮助您轻松解决业务问题定位,指标监控、安全审计等日志问题。大大降低日志运维门槛。详细可参考腾讯云日志服务
  • 消息队列CKafka:CKafka(Cloud Kafka)是一个分布式的、高吞吐量、高可扩展性的消息系统,100% 兼容开源 Kafka API(0.9版本)。 Ckafka 基于发布/订阅模式,通过消息解耦,使生产者和消费者异步交互,无需彼此等待。 Ckafka 具有数据压缩、同时支持离线和实时数据处理等优点,适用于日志压缩收集、监控数据聚合等场景。腾讯云消息队列CKafka

二、问题分析

针对大量日志在Ckafka未消费,且腾讯无法开出Ckafka的背景下,先为客户提出三种解决方案:

  • 容器日志源选择指定容器,针对项目选择指定服务下的容器。然后消费端选择到ckafka下不同的topic,这样来分摊kafka压力。(一个规则只能指定一个topic,容器太多,10条规则无法满足)
  • 增加ckafka的消费能力(例如多增加几个logstash),kafka只是消息队列,消息得不到消费kafka就压力大。(根据和客户商讨,目前logstash的consumer_threads已经设置为topic的最大分区数,如果要增加logstash的实例,那么需要增加topic的partitions数,也无法满足)
  • 将容器日志消费端选择为cls的topic,然后在cls里将日志投递存放到cos,后面再从cos里取出来进行消费。(待确认,如果可以将数据通过cls存放到cos,后期在利用logstash来进行消费,那就可以解决此问题)

三、问题解决

3.1 容器服务配置

先进行简单容器服务创建测试应用

  • 测试的容器测试服务集群
  • 新建服务 选择namespace,及服务所在的地域
    进行部署设置,可以选择公共容器,也可现在自定义容器,配置容器网络及逻辑卷等信息,最后配置端口映射。
  • 创建好后就可以通过公网负载均衡进行容器访问
  • 新建日志收集规则
  • 指定消费端
    3.2 日志服务投递配置
  • 创建日志集管理
  • 创建日志投递规则,将cls的内容投递到cos内 在日志投递中,可以开启高级过滤功能,利用此功能可以将不同日志投递到不同bucket,或同一个bucket的不同目录下,来进行日志区分,以便后期消费。

例如日志格式:

代码语言:txt
AI代码解释
复制
__CONTENT__: {"docker":{"container_id":"894905ad526dd90f548bf35ece4b81f4d68359722d7ec719f3b81628da32fe20"},"kubernetes":{"container_name":"nginx","host":"172.16.9.11","labels":{"pod-template-hash":"1074266372","qcloud-app":"nginx"},"log":"default_nginx","master_url":"https://192.168.255.1:443","namespace_name":"default","pod_id":"5d4ae59f-9f6c-11e8-89c8-5254000e53ff","pod_name":"nginx-54c86bb7c6-wvm6z"},"log":"192.168.1.1 - - [25/Aug/2018:13:17:14 +0000] \"GET / HTTP/1.1\" 200 612 \"-\" \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36\" \"-\"\n","stream":"stdout","time":"2018-08-25T13:17:14.310411833Z"}
代码语言:txt
AI代码解释
复制
根据container_name来进行正则日志过滤:.*\"container_name\":\"([^\"]+)\".* 

注意:这里根据腾讯云官网给的仅有的一个实例进行测试无法通过,经过多次测试均为已经投递但是数据没有从cls到cos内部,经过后面自己测试结果如下:

  • key必须制定为索引__CONTENT__
  • 正则表达式:可以根据具体的容器分类来做,这里建议使用container_name便于区分
  • value为日志经过正则匹配到的内容,和value的相同及命中此条日志,从而将此条日志进行按照规则投递到cos内。
  • 查看COS内的日志投递信息

3.3 消费终端CVM配置

  • 安装COSFS工具

详细操作方法可参考:COSFS操作

代码语言:txt
AI代码解释
复制
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel
git clone https://github.com/tencentyun/cosfs /usr/cosfs
cd /usr/cosfs
./autogen.sh
./configure
make
sudo make install

写入配置文件:

代码语言:txt
AI代码解释
复制
echo <bucketname>:<SecretId>:<SecretKey> > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs
  • 挂载日常存储的COScosfs your-bucketname your-mount-point -ourl=cos-domain-name -odbglevel=infoyour-bucketname 需要替换为用户真实的信息; your-mount-point 替换为本地需要挂载的目录(如 /mnt); cos-domain-name 为存储桶对应的访问域名,形式为 http://cos.<Region>.myqcloud.com (适用于XML API),其中 为地域简称,如: ap-guangzhou 、 eu-frankfurt 等. 查看文件
代码语言:txt
AI代码解释
复制
input {
    file {
        path => "/cosdata/access-log2018/08/*"
    }
    }
output {
    elasticsearch {
        hosts => "127.0.0.1:9200"
    }
    stdout { codec => rubydebug }
}

3.4 进行简单消费测试

  • 查看ES中日志数据 通过访问es的9200端口可以
  • 利用Kibana查看日志

四、反思总结

  • 我这在客户大量的数据下,相关帮助文档写的真的不是很全,在cls日志投递功能的高级过滤段,文档完全没介绍其中的正则改怎么写,自己尝试发现不行后,工单及VIP客户支持,大概两天才内部测试完成后给出了模板,希望后续可以完善一些产品的细节文档,文档完善才能使用户更好的使用产品。
  • 通过此次方式,是使用cos将数据持久化存储来减轻CKafka的压力,分业务适合用对日志数据不是非常及时的后期分析及处理消费场景。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个残酷现实的问题:程序员除了高薪,你还有什么理由坚持做下去?
科技公司一直都在努力弄清楚如何才能让员工愉快地工作。然而,这并不是一件容易的事。根据我自己的经历,我接触的技术人员平均在一家公司供职的时长为18个月。每当我询问他们的离职原因时,得到的答案通常都是那么几个。
一墨编程学习
2018/10/23
7200
奥特曼斯坦福对话万字实录:GPT-5、AGI、核聚变发电、人类未来
OpenAI首席执行官山姆·奥特曼(Sam Altman)4月24日参加了斯坦福大学企业思想领袖讲坛ETL(Entrepreneurial Thought Leaders Lecture)的活动,超过1000名学生排队参加了此次活动。5月2日,斯坦福大学放出了活动的全程视频。
小腾资讯君
2024/05/08
3100
康威定律对架构设计的指导意义
动物界有个非常有趣的现象,群居性动物,为了保证群体的稳定性,都有两个比较有意思的特征就是等级和分工,而等级和分工最终会演化成类似金字塔形式的结构,这种结构就是组织结构。
亦山
2021/06/09
2.5K0
康威定律对架构设计的指导意义
腾讯研究院对话前OpenAI研究员:为什么伟大不能被计划?
2024年9月25日,腾研读书举办了一场对谈,腾讯研究院资深专家袁晓辉对谈前OpenAI研究员,也是《为什么伟大不能被计划》一书的两位作者肯尼斯·斯坦利(Kenneth Stanley)和乔尔·雷曼(Joel Lehman)。2个小时的时间,讨论了10个问题,涉及目标悖论、创新激励、组织活力、OpenAI能否复制、未来AI社会的前景等问题,讨论具体而深入。以下是访谈实录,推荐阅读。
小腾资讯君
2024/10/14
1780
【微服务】复杂系统:微服务与人类
普罗布斯特:我叫凯瑟琳·普罗布斯特。我是谷歌的工程总监。我在这里向你们介绍复杂系统、微服务和人类。让我们从一个可能会有点意外的问题开始。北极熊与微服务有什么关系?乍一看,你可能会说他们之间可能没什么关系。让我们再深入一点。你可能知道,北极熊吃海豹。很容易理解北极熊的数量与海豹的数量有着密切的关系。如果你再往前走几步,事情就会变得复杂得多,速度也会快得多。让我们这样做吧。随着气候的变化,北极熊和海豹的栖息地也在发生变化。栖息地的变化对海豹以及北极熊种群的影响实际上要复杂得多。那么食物链上的其他动物呢,比如企鹅
架构师研究会
2022/03/08
3260
AI教父本吉奥最新访谈:AI马上会超越我们,必须建立国际组织守护人类
人工神经网络和深度学习(一种受大脑启发的机器学习方法)的先驱。2018年,本吉奥与Meta首席人工智能科学家杨立昆(Yann LeCun)、谷歌前研究员杰弗里·辛顿(Geoffrey Hinton),因“概念和工程上的突破,让深度神经网络成为计算的关键组成部分”,共同摘得计算机领域的诺贝尔奖--图灵奖。如今,上述三位计算机科学家也被称为“人工智能教父”。
小腾资讯君
2023/12/13
2450
【微服务】专家组:在过去十年的微服务中,我们学到了什么?
瓦特(Watt):这是微服务专家组。Chris早些时候谈到了最小化微服务中的设计时耦合。他是microservices.io的创建者,《微服务模式》一书的作者。他也是Java冠军,在微服务领域非常有经验。我期待着与你们一起深入研究其中的一些领域。当然,我们有詹姆斯·刘易斯,他是最早创造和定义术语或架构风格的人之一,我们今天称之为微服务。James是ThoughtWorks的软件架构师和主管。ThoughtWorks技术咨询委员会成员,以及创建技术雷达的小组成员,致力于推动业界采用开源和其他工具和技术。还有凯
架构师研究会
2022/03/08
4310
与OpenAI CEO萨姆·阿尔特曼对话:AGI将在10年后到来
现在让我介绍一下萨姆·阿尔特曼(Sam Altman)。萨姆是大家熟悉的连续创业者,他曾担任YC的总裁,现在是OpenAI的CEO,他还投资了包括Airbnb、Stripe等公司,甚至还参与了Heon这样的能源融合公司。他帮助建立了World Coin,一种新的加密协议,可以说他涉足过很多领域的投资。他可谓涉及众多领域,且都做得很好。欢迎萨姆!感谢他加入这一轮讨论。
AIGC部落
2024/09/30
1900
与OpenAI CEO萨姆·阿尔特曼对话:AGI将在10年后到来
如何成为一名出色的 Java 程序员
如何成为一名出色的 Java 程序员 几个月前,我和的商务合作伙伴 Carl 以及我们的法国课程导师 Xavier 在巴黎的一家餐厅就餐。在谈话中,我和 Carl 就我们年轻时使用的那些炫酷技术而谈笑风生。与此同时,我注意到Xavier 沉默良久,于是我决定询问他的年龄。虽然不能确切的想起他的年龄,但我记得他与我年龄差距很大,和我第二个孩子的年龄相仿。这意味着,多少年来,我和 Carl 同时有过的那些编程经历,对他来说一文不值。 软件工程师的职业生涯里,知识有一个三年的半衰期。这意味着三
用户1289394
2018/02/26
6290
Winton CIO:关于CTA策略的深入的探讨
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。
量化投资与机器学习微信公众号
2023/11/02
4440
Winton CIO:关于CTA策略的深入的探讨
奥特曼豪言:OpenAI第一个发布AGI!下一代人不可能比AI聪明,却没人在意
最近,奥特曼在一期采访中坚定地表示,「OpenAI将第一个发布AGI,并没有人多少人在意」。
新智元
2025/03/24
740
奥特曼豪言:OpenAI第一个发布AGI!下一代人不可能比AI聪明,却没人在意
奥特曼回应一切:GPT-5、董事会宫斗、Ilya当时看到了什么
不仅如此,去年亮相的 ChatGPT、GPT-4,更是把 AI 直接带入到生成式人工智能领域。作为一家引领科技潮流的机构,大家自然对其方方面面都产生好奇。
机器之心
2024/03/26
1200
奥特曼回应一切:GPT-5、董事会宫斗、Ilya当时看到了什么
GPT近期发展方向--OpenAI 联合创始人20230421在 TED 大会的演讲(图文版)
20230421,Open AI 联合创始人 Greg Brockman在TED上做分享,说明了GPT未来几个月的发展方向不是打造GPT5,而是让GPT4会使用工具,同时更可信: 1. 引入外部工具,由GPT判断什么时候使用什么工具。 2. 工具执行过程可查看,执行结果人类可修改再发布。 3. GPT可自已检查自己的回答。
成江东
2023/04/25
1.2K0
GPT近期发展方向--OpenAI 联合创始人20230421在 TED 大会的演讲(图文版)
资深架构师十年总结:成为架构师,你必须具备这五点能力
作者 | Alan Tai 译者 | 冬雨 策划 | 闫园园 在过去的 20 年里,作为一名软件工程师和软件架构师,我与不同领域和不同学科的软件工程师聊过很多次。他们中有一些人是有着 8 到 10 年经验的高级工程师,有许多人还在职业生涯早期,有着 3 到 5 年的经验。其中一些人是我的同事。有些人是求职者。聊到最后,他们几乎都会问到同样一个问题: “我想成为一名解决方案架构师。了解更多架构相关内容的资源有哪些?“——很多软件工程师都会问的一个问题。 他们问错了问题。如果你读下去,就会知道为什么我
深度学习与Python
2023/03/29
5910
资深架构师十年总结:成为架构师,你必须具备这五点能力
架构设计系列-前端模式的后端(BFF)翻译PhilCalçado
本文翻译自PhilCalçado的官网:https://philcalcado.com/2015/09/18/the_back_end_for_front_end_pattern_bff.html
jack.yang
2025/04/05
1240
架构设计系列-前端模式的后端(BFF)翻译PhilCalçado
学界 | 对话IJCAI2019特邀讲者Leslie Kaelbling: 与AI和机器人结缘背后的故事
AI 科技评论按:IJCAI(国际人工智能联合会议,International Joint Conferences on Artificial Intelligence)是人工智能领域历史最为悠久,也是影响力最大的学术会议之一,随着近年来人工智能的热度日益攀升,原本仅在奇数年召开的 IJCAI 自 2015 年开始变成每年召开。今年,万众瞩目的 IJCAI 也将如约而至,将于 8 月 10 日至 16 日在中国澳门隆重召开。
AI研习社
2019/05/08
5940
学界 | 对话IJCAI2019特邀讲者Leslie Kaelbling: 与AI和机器人结缘背后的故事
AI教父Hinton最新采访万字实录:ChatGPT和AI的过去现在与未来
---- 新智元报道   来源:Web3天空之城 编辑:好困 【新智元导读】Geoffrey Hinton被公认是人工智能的教父,数十年前他就支持和推动了机器学习,随着像ChatGPT这样的聊天机器人引起广泛关注,CBS的主持人于2023年3月初在多伦多的Vector研究所采访了Hinton。 最近,全长40分钟的采访视频被放了出来,整个采访干货满满,非常精彩。作者对采访内容进行了翻译整理,和大家分享。 问:您如何描述当前AI机器学习领域的时刻? 答:我认为这是一个关键时刻。ChatGPT表明,
新智元
2023/04/10
5320
AI教父Hinton最新采访万字实录:ChatGPT和AI的过去现在与未来
【软件架构】为杠杆(利用率)架构设计软件
卡瓦尔康蒂:我在这里谈论的是如何利用软件架构。首先,我将在这里定义杠杆的含义。这是谷歌的定义。杠杆率是相对于你所做投资的深度,你可以获得的价值量。我们希望获得比您所做的投资更高的价值。在软件环境中,是您所做的决定、所做的选择,或者您所获得的与您所能创造的价值量相关的技术债务。我想看一看我们在Nubank的整个发展过程中所做的一些架构决策的例子,这些决策的目的是在当时获得尽可能高的杠杆率。你可能在你的公司中处于类似的位置,或者在未来的公司中处于你将做出这些决定的阶段。你可以以我们为例,或者至少有一种心态。
架构师研究会
2022/03/03
4020
软件架构师的12项修炼[4]—个人技能修炼(2)—激情
如果你感到火焰已经熄灭,你不能从工作中得到乐趣,就该适时换家公司,重新点燃你曾经有的激情,而不是为了一份可怜的工作而待下去,在这里你永远不想奋力“做得更好”。
高广超
2018/12/12
3920
「数据架构」数据架构的未来
安东尼J.阿尔格明认为,数据架构正从一个混乱和纠结的时代进入一个更加干净和有组织的时代。在DATAVERSITY®数据体系结构在线会议上,Algmin回顾了过去的预测、当前的热门话题以及对未来的预测。他是Algmin Data Leadership的创始人兼首席执行官。
架构师研究会
2020/07/20
4940
「数据架构」数据架构的未来
推荐阅读
相关推荐
一个残酷现实的问题:程序员除了高薪,你还有什么理由坚持做下去?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档