提到日志系统最先想到的就是 ELK 。但是对于小团队或者个人使用,它的成本是否太高昂了???
如果只是针对 Go 语言的项目,或许还有另外一种比较低成本的解决方案。
额外成本只有 Mongodb, 就能做到快捷的 日志收集 /查看 /报警 /统计
Qelog https://github.com/bbdshow/qelog
关于写入性能:
1.取决于 Mongodb 的批量写入上限
2.不同的模块是写入到不同的分片集合,所以在容量索引建立都有极大的优势
3.客户端实现的 异步,日志批量压缩写入,节约 IO
PS: 不严谨测试 单点( 4C/8G 本地 Mongodb )可做到 13W+/s 日志写入
对于集群部署,写入能力取决于背后集群配置了多少 Mongodb 节点。理论可一直横向扩展
关于读取性能:
1.我们都知道 Mongodb 使用不当比较占用资源,特别是贪婪内存模型,导致吃了内存就不在下降了,通过存储使用优化,索引优化,查询限制优化,我们不必担心多用户查询导致 Mongodb 的内存上升。
2.因为时时写入,所以日志几乎没有读取延迟
关于管理后台:
1.部署 Admin 进程,就可直接使用。写入权限取决于是否创建模块名(内网没有过多的权限拦截)。
2.只有简单的登录权限,没有其他的权限限制,因为定位,所以没必要搞复杂的权限模型。
目前该项目已经有上百 TB 的写入数据了,稳定性是可以保证,即便日志服务异常挂掉,也不影响使用进程的运行状态,Client 端也会重新 Push 日志。
关于设计和功能和使用帮助请看 https://github.com/bbdshow/qelog 谢谢
如果您觉得对你的项目有帮助,可以收藏一下,在使用过程中有问题就可以提 Issue
极少发帖,有不足之处还请谅解
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.