汇总:浅谈云原生系统日志收集在数栈的实践
优采云 发布时间: 2022-10-18 02:10汇总:浅谈云原生系统日志收集在数栈的实践
1.经常玩ELK
说到日志采集,估计大家首先想到的就是ELK,一个比较成熟的方案。如果是专门针对云原生的,那就把采集器改成Fluentd,组成EFK。其实以上两种方案没有本质区别,采集器只是一个变化。最终的存储、查询等还是elasticsearch。
Elasticsearch 确实功能丰富,功能非常强大,但也非常昂贵。Elasticsearch使用全文索引,对存储和内存的要求比较高,这些代价得到的功能在日常日志管理中并不常用。这些缺点在主机模式下其实是可以容忍的,但在云原生模式下就显得臃肿了。
二、不谈武德PLG
PLG是promtail+loki+grafana的统称,是一个非常适合云原生日志的采集方案。您将熟悉 grafana,这是一个支持多种数据源的出色可视化框架。最常见的是将prometheus的数据可视化。而洛基就是我们今天要讲的主角。这也是grafana的产物,promtail是loki 采集器的官方log。
与elk相比,这套解决方案非常轻量级,功能强大且易于使用。另外,在显示上使用grafana,减少视觉框架的引入,在显示终端上的统一也有利于用户。
(1) 登录新贵loki
Loki 是一个受 Prometheus 启发的水平可扩展、高可用的多租户日志聚合系统。它被设计成具有成本效益且易于操作。它不索引日志的内容,而是为每个日志流设置一组标签。
与其他日志聚合系统相比,Loki
没有日志的全文索引。通过存储压缩的非结构化日志和仅索引元数据,Loki 更易于操作且运行成本更低。
使用与 Prometheus 相同的标签对日志流进行索引和分组,使您能够使用与 Prometheus 相同的标签在指标和日志之间无缝切换。
特别适合存储 Kubernetes Pod 日志。Pod 标签等元数据会被自动爬取和索引。
Grafana 原生支持(需要 Grafana v6.0 及更高版本)。
这是GitHub上对loki的介绍。可以看出这是一个为云原生构建的轻量级日志聚合系统。社区目前非常活跃。而且它采用了类prometheus标签的思路,与grafana连接,进行可视化展示。无论是想法还是使用都非常“云原生”。
(2) ♂️ Promtail Promtail 是 loki 采集器 的官方日志,它自己的代码在 loki 项目中。本机支持日志、系统日志、文件和 docker 类型日志。采集器的本质是根据模式找到要为采集的文件,然后像tail一样*敏*感*词*一个文件,然后将写入文件的内容发送到存储端promtail。上述情况也是如此。类型的本质也是文件,但这些类型文件的格式是开放且稳定的规范,promtail可以提前对其进行更深入的解析和封装。
(3) Promtail 服务发现 1. 找一个文件作为采集器,首先要找出文件在哪里,然后做如下采集、标签推送等功能。普通静态类型的日志很容易找到。你可以直接匹配你在配置文件中写的路径信息。例如promtail中的路径是“/var/log/*.log”,表示/var/log目录下的所有文件,以.log结尾的后缀文件可以作为采集的对象>。采集 k8s 模式登录稍微麻烦一些。
首先我们想一想k8s上运行的服务的日志在哪里?
所以我们需要在 k8s 容器内挂载 /var/log/pods 作为主机路径,以便 promtail 可以访问这些日志。
2. 标记的日志可以通过promtail访问,但是如何区分这些日志还是一个问题。Loki 使用类似普罗米修斯的想法来标记数据。也就是说,如果日志是用 pod 打标签的,那么仅仅依靠这条路径自然是无法知道 pod 上的标签信息是什么。这就是服务发现的用武之地。
promtail的服务发现直接由prometheus的服务发现来完成。熟悉prometheus的同学一定配置过prometheus的服务发现配置,kubernetes_sd_configs和relabel_configs。
这里promtail直接介绍prometheus的代码。与prometheus不同,prometheus向对象请求更多的资源,比如node、ingress、pod、deployment等。最后拼接的是metric的请求url,promtail请求的对象是pod,过滤掉不在那个上面的pod主持人。
获取到宿主机的pod信息后,根据namespace和pod的id拼接路径。由于这个目录已经挂载到容器中,promtail可以将容器的标签和容器的日志关联起来。剩下的就是监控和推送。
(4)PLG最佳实践loki官方推荐的最佳实践是使用DamonSet部署promtail,将节点的/var/lib/pods目录挂载到容器中,利用prometheus的服务发现机制动态添加日志。标签在资源占用和部署维护难度方面非常低。这也是主流的云原生日志采集范式。
3.数据栈日志实践
(1) 数据栈日志要求
(2)️主机模式栈的主机模式日志聚合采用类似于PLG DameonSet的模式。每个主机部署一个promtail,然后将一组服务器端loki和视觉端grafana部署到整个集群。
promtail 使用 static_configs 来定义 采集 日志。不过promtail毕竟还太年轻,而且定位偏向云原生,所以对于宿主机的功能并不完善,所以我们做了一些二次开发来满足我们的需求:
1.logtail模式
本机 promtail 不支持从文件末尾采集。promtail启动时会推送所有被监控文件的内容,这在云原生中问题不大。
在host模式下,如果要监控的日志已经存在并且内容量很大,promtail会从头开始推送文件的内容,这样会导致大量日志被推送到loki中短时间。失败。
所以最好的办法就是有一个类似filebeat的logtail模式,只在服务启动后推送文件写入的日志。
在这个地方,我们进行了二次开发,增加了logtail模式的开关。如果开关为true,则第一次启动promtail时不会从头开始推送日志。
2、路径支持多路径
原生promtail不支持多路径路径参数,只能写一个表达式,但实际需求可能是同时看业务日志和gc日志。
但它们又是属于同一类别的标签。单一路径的匹配不能同时涵盖两者。不更改代码的解决方案是为其编写另一个目标。
这既乏味又不利于维护。所以我们在这里也对其进行了二次开发。
(3)云原生模型传统的云原生模型采用PLG的主流模型,但数据栈作为一个完整的系统交付给企业时存在诸多限制,导致demoset模型无法使用。最大的挑战是权限,只有一个命名空间权限,不能挂载/var/lib/pods
在这种情况下如何使用 PLG?
其实主要的变化就是promtail的使用。这里首先要声明的是,数据栈服务的日志全部输出到文件中。
首先是选择是部署在damonset模式还是sidecar模式。演示模式的优点是节省资源,缺点是需要权限。与sidecar模式相比,为了应用更严格的交付条件,我们为采集选择使用sidecar模式。
sidecar 模式是在每个服务部署的时候自动添加一个日志容器。容器和服务容器共同挂载一个共同的空数据卷。服务容器将日志写入数据卷,日志容器采集数据卷下的日志
1. ⛳ promtail 如何动态配置数据栈中的标签
通过sidecar模式,我们让logContainer和Master Container共享一个日志目录,这样就可以在promtail容器中获取日志文件,但是promtail还是不知道哪些日志到采集,它们的什么标签是。
因为你可能只想要采集.log的日志,也可能只想要采集.json的日志,或者两个服务的配置可能不一样,所以不能写死,那么如何解决这个问题呢?
Promtail 在 v2.10 中增加了一个新特性,即可以在配置文件中引用环境变量。通过这个特性,我们可以将promtail的path参数写成${LOG_PATH},然后将服务的logpath设置为环境变量。例如 LOG_PATH=/var/log/commonlog/*.log
由于我们可以在服务创建时通过环境变量设置路径,所以也可以动态设置标签。那么我们都需要什么维度标签呢?这家不同的公司肯定有不同的维度,但必须遵循的一个原则是可以唯一标识吊舱。大体维度有deployment、podid、node等,这些标签在创建的时候是通过环境变量注入的,而这些环境变量podid是使用k8s的向下api注入的。
注意:这里不能使用promtail的服务发现机制来配置标签,因为promtail的服务发现原理是请求APIServer获取所有pod的标签。然后使用路径匹配将标签与日志相关联。主机/var/log/pods目录未挂载到promtail时,即使获取到标签,也无法与日志关联。
2. ⏰如何在数据栈中部署promtail
为每个服务添加一个Log Container,手动做起来太麻烦,也不利于维护。最好的方法是将原创服务抽象为注册一个CRD,然后编写k8s算子来list & watch该类型的对象。创建对象时,动态注入一个LogContainer,以及对应的环境变量并挂载。公共目录。
因此,当创建 CR 时,promtail 作为 sidecar 注入。并且读取的环境变量是操作者动态设置的环境变量,非常灵活。
4.总结
(一)数据栈日志采集的优势
(2) ✈️ 未来规划
最后跟大家分享一下数据栈当前日志模块的可视化效果。是不是超级酷?
更多技术交流方式
想进行面对面的技术交流?想及时参加现场活动吗?扫码加入钉钉群“袋鼠云开源框架技术交流群”(群号:30537511)
想体验更多数据栈开源项目?可以在 Github 社区搜索“FlinkX”开源项目
FlinkX 开源项目地址:
汇总:小偷采集源码
综合的
更新时间
下载
3/64
购买源码联系客服/进群
Micro Recorder Mobile Video采集程序(缓存版)是手机视频网站Micro Recorder采集程序。占地面积小,建站成本低,无需等待,即刻拥有海量网站数据;免更新维护,易管理,易操作,全自动采集全站后台管理;页面URL路径的伪静态功能让各大搜索引擎收录更加友好。使用方法:将程序直接上传到你的空间即可使用(必须支持PHP);登录后台admin/update网站基本设置,在这里修改自定义路径等功能;后台登录adm
2016/07/09 天宇查看图4298
天语微信采集源码是用PHP+Mysql开发的。1.支持关键词内部链接 2.支持内容过滤 3.支持伪原创词汇表(近6000个同义词) 4.支持自定义路径伪静态功能 5.支持数据库备份和恢复6 . 支持蜘蛛访问记录查询 7. 自定义模板样式,让您的站点与众不同。8.购买正式版送人优采云采集器规则安装:运行你的域名/安装/后端地址:找到你的域名/admin/index.php
2016/05/05 天宇查看图4050
Micro Recorder Mobile Video (Adaptive) 采集程序是用php开发的视频采集网站源码。前几天看到一个不错的源码,可惜没想到加解密了半天。后来,我想自己写。经过几十个半小时的努力,第一个版本终于出来了。希望你们都喜欢!程序配置:没时间写后台,需要自己修改config.php,相信有点基础就可以搞定。当前版本问题:没有伪静态开关。没有缓存机制就不能是伪静态的。这些问题将在下个版本中解决,敬请期待。
2016/04/11 Wintop视图图1703
bt*敏*感*词*小偷程序是用php开发的bt*敏*感*词*搜索网站。软件结构简单,完全开源,不需要数据库。软件功能:bt搜索功能,磁力链接转换*敏*感*词*,*敏*感*词*转换磁力链接分析,拍下你想学的*敏*感*词*文件,以后有时间后台开发
2016/04/06 官方 网站 查看图 2840
企业管理QGcms美图小偷是用php开发的美图小偷程序。功能介绍: 1、采用php小偷技术自动同步更新。2.支持二级目录和二级域名。程序自带后台 3.搜索引擎蜘蛛访问记录 4.无需下载,远程图片自动加水印!5.自定义规则后续功能不断更新......后台地址:网址/admin/账号密码为:admin程序开源企业管理QGcms(美小偷程序) v8.3更新log:首页列表错位修复;后台
2016/03/18 企业管理系统视图图5359
大佬19楼论坛的小偷程序是用php开发的小偷程序源码。大佬论坛小偷功能介绍: 1、采用php小偷技术与DZ论坛自动同步更新。2.动态浏览和静态背景自由切换,可以根据站长自己的喜好设置更人性化。3.全站伪原创,路径个性设置,全站可生成页面缓存,减轻服务器负担,加快阅读速度。4.采用目前主流盗贼系统的四种采集方式,兼容主流空间服务器,也可以自行设置独立模板样式。帐号:admin 密码:a
2016/02/26 QGcms 查看图3311
该软件是asp游戏发布站源码的文章采集插件。通过本软件,可以轻松实现网络文章采集的功能。使用方法:首先在数据库GQ_NEWsclass中添加字段一;链接字段二;TOPID字段三;. 为了方便大家不了解写规则,我写了5个采集规则方便采集文章。每个人都可以root
2016/02/02 98游戏GM基地图3621
安装中大智能云采集discuz插件后,在论坛发帖和传送门文章发帖时,顶部会出现一个采集控制面板,输入关键词或网址到智能云采集任何你想要的内容,技术架构类似于今日头条和一点新,是论坛新手站长和网站编辑必备的discuz插件。具有易学、易懂、易用、成熟稳定的特点,基于大数据分析感知最新最火的微信公众号文章及各类资讯,还可以伪原创 一键查看内容。插件实现的功能如下: 1. 最新最火的微信公众号
2015/11/30 查看图表 1673
在建站的过程中,数据是非常重要的一块。一开始网站80%以上的数据都来自互联网(原创很少)对于大公司或者大团队来说,他们有足够的人力来处理,但是不太可能大中小企业数量过多 这一项投资太多了。因此,我们专门开发了一个小插件功能,方便数据填充。特别说明:本插件功能简单。如果需要更强大的数据采集功能,推荐使用优采云采集器
2015/11/04 查看图表 1534
远程获取并实时显示网站的Favicon.ico文件,美化网站外部链接的显示效果。适用于网站导航网站、网站友好链接展示美化等。
2015/10/16 5Z5D 查看图 1277
程序介绍:网站界面简洁美观,内容丰富,主题新颖,可读性比较高。网站更新速度很快,几乎每天更新,图片基本没有水印。·人气高,回头率高。尊重劳动成果,免费版,请自觉保存作者链接。·如果你想拥有自己的*敏*感*词*主题网站,又懒得自己更新和维护,这个程序绝对是优采云和菜鸟打造的最佳选择!程序特点: · 占地面积小,建站成本低,无需等待,即刻拥有海量网站数据;· 免费更新免维护,易管理,易操作
2015/09/21 UZcms镜像系统视图图6907
百度知道小偷程序年久失修,最近一直闲置。. . 全部更新。!v2.0更新1.百度知道规则调整更新2.全站正常采集更新3.全站升级为伪静态4.SEO优化
2015/09/14 凯旋网络视图图 2549
网站界面简洁美观,内容丰富,主题新颖,可读性和观赏性高。网站更新速度很快,几乎每天更新,图片基本没有水印。很受欢迎,回报率很高。尊重劳动成果,免费版,请自觉保存作者链接。如果你想拥有自己的*敏*感*词*主题网站,又懒得自己更新和维护,这个程序绝对是优采云和菜鸟网站的最佳选择!程序特点:占用空间小,建站成本低,无需等待,即刻拥有海量网站数据;无需更新维护,管理方便,操作简单,实现全站后台管理。
2015/09/14 凯旋科技查看图5153
Easy View Video是以影视为核心,借鉴现有市场上的各类影视节目。具有采集、小偷、存储等特性。semi采集 模式视频系统。程序特点: 1.免维护,自动采集,主动触发采集或被动自动采集 2.程序小巧精致,使用我们最新的一目了然的DB文本存储数据库,效率高,负载低,兼容性好
2015/09/14 易见官方查看地图2542
程序介绍:本程序用于镜像自己的网站镜像!可以用来做几十万个排水管!通过修改主页上的 关键词 将流量引流到您的最终 网站!达到几十万个首页却只有一个网站框架效果!所有内部链接都将链接到您要推广的主要 网站!!比如,无论你在我们测试的站点中放哪个域名,内部链接都会指向我们提倡的网站原则,入口千千万,只有一个家!!每个人都明白!排水效果非常好!而且操作非常简单,只需要输入网址!每个人的变化
2015/09/11 UZcms 查看图 3348