我写的开源监控项目,有用吗?

2020-09-05 19:41:41 +08:00
 tsingke

项目地址: https://github.com/AutohomeCorp/frostmourne

4847 次点击
所在节点    程序员
26 条回复
tsingke
2020-09-05 19:54:56 +08:00
为啥没人用起来,问题出在哪里?
fangyuanyoudu
2020-09-05 19:57:46 +08:00
我觉得可能是需要用监控系统的自己就有实力搭建这种监控系统,没有实力的根本用不到这个级别的监控报警系统
prenwang
2020-09-05 20:55:42 +08:00
功能太强,elasticsearch 太重, 运维成本过高
tsingke
2020-09-05 21:32:32 +08:00
@fangyuanyoudu 嗯,可能适用范围有点窄
tsingke
2020-09-05 21:33:12 +08:00
@prenwang 要是支持 mysql 数据监控呢?是不是就会轻一些了
parser
2020-09-05 21:46:53 +08:00
数据量不大的话,可以选择在数据进入 Elasticsearch 之前就做分析监控
chinvo
2020-09-05 21:50:39 +08:00
elastarlt
chinvo
2020-09-05 21:50:58 +08:00
不过说实话,es 太笨重了
wangyzj
2020-09-05 22:00:44 +08:00
不是你的问题
监控这个行当就是不好干
oneapm 这类的活的也都不好
tsingke
2020-09-05 22:02:59 +08:00
@chinvo 嗯,不知道除了 es,都用啥轻量一些的数据存储
tomsun28
2020-09-05 22:24:46 +08:00
@tsingke 可以考虑 influxdb 存储
damngood
2020-09-05 23:30:12 +08:00
监控不都 prometheus 和 grafana 搭配吗
prenwang
2020-09-06 11:38:50 +08:00
@tsingke 我之前也是使用 elasticsearch 做监控,用起来很爽, 但是 es 是真的重, 不是每个项目都能给你 4 核 32g 的服务器让你爽, 这种情况下 ES 特别尴尬, 所以我觉得 ES 至少不适合小型项目使用, 还不如直接用 zabbix 。

但是如果要自己来撸监控系统,又要在一定范围内用起来,覆盖到大部分场景,就是选择 mysql, 原因就是学习成本低, 百分之 80 的人可以轻松搭建配置 mysql,并且都有自己熟悉的一套维护方法。

而其他的比如 mongodb,pg 系的 timescale,influxdb 等可能更合适做这个事情, 但是有个重要的原因, 他需要使用者去多学习一项额外的技能, 而这项技能即使比 mysql 简单也不一定能被认可, 这个是一种惰性, 就是不想学, 不想用, 我们自己或许可以突破,但是很多人还是不愿意, 比如我自己,能用 mysql 解决的我就不碰 MongoDB, 我就是不想维护两个数据库,哪天让另一个人去维护, 他先来一句“为啥用 mongodb 啊”, 那时你就想抽他一巴掌,再抽自己一巴掌。

我总结了一下,这叫心智负担, 大部分比较喜欢技术和钻研技术的人,不会在意多用几种技术, 但是面向长期的使用场景, 越简单稳定的越好, 越不要自己折腾越好。

如果有便宜的云 elasticsearch,mongodb,timescale 可以随便用, 因为云平台解决了基础维护, 不会给使用者太多心智负担。


所以,总结下来, 其实 mysql 就很好, 也许有人说 mysql 真不适合存储日志类数据, 但是别忘了 MySQL 内置有 archive 存储引擎,那是专喂日志的, 压缩存储量只有 20%, 又不会有 CPU 压力,写入并发高的不得了, 虽然不能删除,没有索引支持, 但是通过按日期、月份分表就可以很轻松解决了, 程序里自动建表,控制单表数据量, 删除数据就直接删除历史表, 这也是符合日志型数据的管理方法的, 备份迁移直接拷贝数据文件, 不能再简单了,

至于聚合,可以对固定类型的做预先聚合存储, 比如对秒级实时数据做分钟间隔,小时间隔的聚合计算后存储, 前端对实时数据就小范围查询, 大范围数据就去查询分钟间隔,小时间隔的统计数据, 这样就很快, 实际上工业物联网不少领域就是这么存储和处理数据的。

前端可视化的可以输出到一些第三方系统, 比如 grafana, 或者直接使用 mapreduce,linq 、ReactiveX,echart 等方式输出。

很多小型的项目, 数据量不大, 基于 mysql archive (甚至都不用),是最合适的, 最后顺便鄙视开口闭口就是 mysql 绝对不适合存日志的, 很多连百万级的量都没有碰过, 几十万的数据优化都不会。
aaa5838769
2020-09-06 12:11:57 +08:00
尽量轻量化
tsingke
2020-09-06 12:42:26 +08:00
我后面会考虑对接轻量一些的存储,比如 mysql,influxdb 。现在的方案确实对部分团队来说太重了。
PUBG98k
2020-09-06 14:14:05 +08:00
我看了下,觉得还是不错的一个开源项目.希望楼主继续努力.
foam
2020-09-06 18:32:13 +08:00
我觉得主要还是要看你的监控落地后给业务部门带来了什么收益,如果收益太少就不足以让业务部门花精力。
tsingke
2020-09-06 19:13:22 +08:00
@PUBG98k 好的,多谢鼓励
meinjoy
2020-09-06 21:22:05 +08:00
没人用 netdata?
cszchen
2020-09-06 23:54:28 +08:00
我们用 rancher 部署 k8s 应用,基本的监控就够用了,还有普罗米修斯等等,应用的监控报警,用日志 + grofana 搞定,可能轮子比较多。

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

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

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

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

© 2021 V2EX