是否应该把程序日志写入到 Mysql 数据库中

2024-04-02 10:45:42 +08:00
 Mianmiss

RT 我发现我司很多开发以及一些外采的系统 都很喜欢把程序日志写入到数据库中。

数据库压力、性能开销等都会受到影响

6283 次点击
所在节点    程序员
49 条回复
cnsdytedison
2024-04-02 10:48:17 +08:00
我认为应该,压力,性能开销花钱可以解决。持久化的日志没有的话锅就会在你身上。
ewpui
2024-04-02 10:49:39 +08:00
@cnsdytedison 中肯!
isno
2024-04-02 10:53:30 +08:00
日志如果要持久化,选择 es 、Loki 或者 Clickhouse 。选择 MySQL 肯定不合适。

https://www.thebyte.com.cn/Observability/logging.htm
Ayanokouji
2024-04-02 10:57:44 +08:00
关键是有给提供其他选择吗
sakilascott
2024-04-02 11:00:51 +08:00
@isno 小系统用不着这么复杂的架构。
lstz
2024-04-02 11:03:52 +08:00
过早的性能优化是万恶之源
lstz
2024-04-02 11:04:15 +08:00
不过我不建议 db 存日志,听起来挺奇怪的,sftp 加文件更合理点
adoal
2024-04-02 11:04:39 +08:00
用 syslog 协议写到专门的日志服务器去,那边再怎么处理归专人负责
beneo
2024-04-02 11:10:49 +08:00
1. 看需求,如果你只有存的需求,MySQL 只要能抗住有空间,也无妨
2. 有能力有时间就折腾 ELK 那套,毕竟用户可能提需求说要做分析
idontnowhat2say
2024-04-02 11:13:24 +08:00
我只见过审计和操作日志需要写 db 的,程序日志写 db 那也太奇葩了吧。日志这种顺序写的东西,存 db 还不如直接写磁盘吧。
nuk
2024-04-02 11:15:24 +08:00
还行吧,得看日志多少,主要是如果要在页面查询会比较方便
nqlair
2024-04-02 11:30:26 +08:00
量少无所谓 大的话存 s3 然后 es 加对应的索引用来查询
hui9000
2024-04-02 11:38:34 +08:00
存是肯定得存,选择什么也有个先后顺序,工作是干不完的,不要一次解决,持续优化。
不关你的事情别管。自己知道应该存哪就好。
potatowish
2024-04-02 12:24:35 +08:00
@isno MongoDB 适合吗
isno
2024-04-02 12:44:19 +08:00
@potatowish

如果是标准化的日志系统(有分析、检索、告警),用传统的数据库不论是 MongoDB, 还是 MySQL 都不合适,索引太占内存,副本机制太占存储。

看看 Loki 吧,有报警插件,有视图 Grafana ,搞出一套也不复杂。
YaD2x
2024-04-02 12:57:38 +08:00
这是你考虑的吗,日志收集转换不是运维的工作吗
Garphy
2024-04-02 12:59:43 +08:00
把日志结构化,插入数据库更合适
potatowish
2024-04-02 13:04:47 +08:00
@isno 谢谢
jiangzm
2024-04-02 13:15:49 +08:00
操作日志可以写数据库, 系统日志还是不要存数据库。
FawkesV
2024-04-02 13:19:09 +08:00
需要追溯的可以写,不需要的临时日志不用了

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

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

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

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

© 2021 V2EX