想搞服务拆分,日志系统现在一般大厂是怎么做的?

168 天前
 LeeReamond
以前没啥经验,Python 现在,日志这部分如果想搞个大粒度的拆分,不知道是咋搞的,大厂也是单个项目内所有日志统一进 ES ?

寻思了一下,对日志好像没啥太细致的分析需求。大概就是能把握一下整体的网关信息,比如某时刻有多少个 Get ,多少个 Post 之类的,各个路由的访问率之类的。如果出问题要能看到完整 debug 信息,要能具体按时间查询日志,大概就这些需求。

Python 现在有什么比较成熟的解决方案吗?还是学着用 ELK ?感觉有点重就是。。。
1806 次点击
所在节点    Python
12 条回复
cndenis
168 天前
日志直接写硬盘, 部署日志同步程序上传到日志系统, 比如 ELK, 阿里云 SLS 之类
seedhk
168 天前
只是单纯的接口信息的话,前面接个 nginx ,nginx 来统计,日志记下来后接 ELK 分析查询
yyttrr
168 天前
一般分三种,gateway 日志,业务日志,运行时日志
vicalloy
168 天前
日志管理和具体语言没多大关系。
配置一个 SysLogHandler 的 handle ,将日志发给 syslog ,由 syslog 做多服务器的日志汇总。
如果要便于查询可以加个 Loki 。
wxw752
168 天前
之前问过朋友是解耦的,用 EFLK
zshineee
168 天前
@cndenis 写硬盘对性能影响大吗?比如说网关记录接口调用的日志,如果接口调用频繁,也是直接写硬盘吗?
zsj1029
168 天前
参看腾讯云的服务,都是独立收费服务,每个都可以看做组件,看看他们划分就行了
cndenis
168 天前
@zshineee 写硬盘是依赖最小的, 万一你的日志服务挂了也不至于直接崩掉业务.

你会在这里问这个问题的话, 估计业务量也大不到单纯日志就能写到硬盘性能不够的程度

网关可以用专门的网关, 比如 nginx, apisix, 或是云上的负载均衡服务之类, 它们都有标准化的日志.
cheng6563
168 天前
现在完善的开源方案应该就仨:
el(f)k: 功能全面,非常重
loki: 省资源,但他的 webui 是 grafana ,grafana 感觉用来看个图表还行,用来查日志太蛋疼了。
openobserve: 省资源,查日志也挺不错,我司现在就在用


然后日志最好还是写盘,然后用采集器收集,而不是直接传到日志服务去.
Fooooo0
168 天前
@cheng6563 你们 openobserve 多少数据量?根据我们的测试来看,openobserve 在大数据量的情况下性能严重不行
LeeReamond
167 天前
@cheng6563 听起来确实很合理,具体操作上有什么外部附加的采集工具吗?如果要先写盘,然后再通过推流的方式追加到某种数据存储,我想了一圈似乎只有`tail -f`适合用来把文档再转成流,自己写的话不太会处理截取,效率方面也不好说。。

其实现在想是不是不用搞专门的存储,需要分析的时候跑个现读现分析的软件是不是也行。。。因为毕竟像网关追踪这种都有专门工具,也没必要非得依赖日志
cheng6563
167 天前
@LeeReamond 采集器多的很,vector.dev, fluent bit, 甚至 filebeat 都可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043572

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX