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

2024-05-24 14:11:52 +08:00
 LeeReamond
以前没啥经验,Python 现在,日志这部分如果想搞个大粒度的拆分,不知道是咋搞的,大厂也是单个项目内所有日志统一进 ES ?

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

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

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

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


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

其实现在想是不是不用搞专门的存储,需要分析的时候跑个现读现分析的软件是不是也行。。。因为毕竟像网关追踪这种都有专门工具,也没必要非得依赖日志
cheng6563
2024-05-25 13:01:44 +08:00
@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