V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tsingke
V2EX  ›  程序员

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

  •  1
     
  •   tsingke · 2020-09-05 19:41:41 +08:00 · 5097 次点击
    这是一个创建于 1575 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • Elasticsearch 数据监控, 你只需要写一条查询就可以轻松搞定监控
    • 多种数值聚合类型监控(count,min,max,avg,sum,unique count,percentiles,standard deviation)
    • 数值同比监控
    • HTTP 数据监控, js 表达式判断是否报警
    • UI 功能,简单易用
    • 监控管理,测试,另存。执行日志,历史消息。
    • 灵活的报警消息 freemarker 模板定制,支持变量;消息模板管理
    • 多种报警消息发送方式(email,短信,钉钉(机器人),企业微信(机器人), HTTP 请求)
    • 多数据源(Elasticsearch 集群)支持
    • Elasticsearch 数据查询,分享,下载
    • 报警消息附带日志查询短链接,直达报警原因
    • 报警消息抑制功能,防止消息轰炸
    • 每个监控都是独立调度,互不影响
    • 自带账号,团队,部门信息管理模块,也可自己实现内部对接
    • 集成 LDAP 登录认证
    • 权限控制,数据隔离,各团队互不影响
    26 条回复    2020-09-07 12:27:06 +08:00
    tsingke
        1
    tsingke  
    OP
       2020-09-05 19:54:56 +08:00
    为啥没人用起来,问题出在哪里?
    fangyuanyoudu
        2
    fangyuanyoudu  
       2020-09-05 19:57:46 +08:00 via Android
    我觉得可能是需要用监控系统的自己就有实力搭建这种监控系统,没有实力的根本用不到这个级别的监控报警系统
    prenwang
        3
    prenwang  
       2020-09-05 20:55:42 +08:00
    功能太强,elasticsearch 太重, 运维成本过高
    tsingke
        4
    tsingke  
    OP
       2020-09-05 21:32:32 +08:00
    @fangyuanyoudu 嗯,可能适用范围有点窄
    tsingke
        5
    tsingke  
    OP
       2020-09-05 21:33:12 +08:00
    @prenwang 要是支持 mysql 数据监控呢?是不是就会轻一些了
    parser
        6
    parser  
       2020-09-05 21:46:53 +08:00
    数据量不大的话,可以选择在数据进入 Elasticsearch 之前就做分析监控
    chinvo
        7
    chinvo  
       2020-09-05 21:50:39 +08:00 via iPhone
    elastarlt
    chinvo
        8
    chinvo  
       2020-09-05 21:50:58 +08:00 via iPhone
    不过说实话,es 太笨重了
    wangyzj
        9
    wangyzj  
       2020-09-05 22:00:44 +08:00 via iPhone
    不是你的问题
    监控这个行当就是不好干
    oneapm 这类的活的也都不好
    tsingke
        10
    tsingke  
    OP
       2020-09-05 22:02:59 +08:00
    @chinvo 嗯,不知道除了 es,都用啥轻量一些的数据存储
    tomsun28
        11
    tomsun28  
       2020-09-05 22:24:46 +08:00
    @tsingke 可以考虑 influxdb 存储
    damngood
        12
    damngood  
       2020-09-05 23:30:12 +08:00 via iPhone   ❤️ 1
    监控不都 prometheus 和 grafana 搭配吗
    prenwang
        13
    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
        14
    aaa5838769  
       2020-09-06 12:11:57 +08:00
    尽量轻量化
    tsingke
        15
    tsingke  
    OP
       2020-09-06 12:42:26 +08:00 via iPhone
    我后面会考虑对接轻量一些的存储,比如 mysql,influxdb 。现在的方案确实对部分团队来说太重了。
    PUBG98k
        16
    PUBG98k  
       2020-09-06 14:14:05 +08:00
    我看了下,觉得还是不错的一个开源项目.希望楼主继续努力.
    foam
        17
    foam  
       2020-09-06 18:32:13 +08:00
    我觉得主要还是要看你的监控落地后给业务部门带来了什么收益,如果收益太少就不足以让业务部门花精力。
    tsingke
        18
    tsingke  
    OP
       2020-09-06 19:13:22 +08:00
    @PUBG98k 好的,多谢鼓励
    meinjoy
        19
    meinjoy  
       2020-09-06 21:22:05 +08:00 via iPhone
    没人用 netdata?
    cszchen
        20
    cszchen  
       2020-09-06 23:54:28 +08:00
    我们用 rancher 部署 k8s 应用,基本的监控就够用了,还有普罗米修斯等等,应用的监控报警,用日志 + grofana 搞定,可能轮子比较多。
    tsingke
        21
    tsingke  
    OP
       2020-09-07 09:11:23 +08:00 via iPhone
    大家都用的啥监控方案?
    tikazyq
        22
    tikazyq  
       2020-09-07 10:01:59 +08:00
    Chenamy2017
        23
    Chenamy2017  
       2020-09-07 10:11:44 +08:00
    要我用,我还是希望尽量轻量化,13#说的对, 越简单稳定的越好, 越不要自己折腾越好。
    ErwinCheung
        24
    ErwinCheung  
       2020-09-07 10:48:02 +08:00
    监控不都 prometheus 和 grafana 搭配吗🐶
    tsingke
        25
    tsingke  
    OP
       2020-09-07 12:26:22 +08:00
    @tikazyq 看了你的贴子,获益良多,感谢。
    tsingke
        26
    tsingke  
    OP
       2020-09-07 12:27:06 +08:00
    @ErwinCheung 应用日志监控,我这个项目应该会比 grafana 易用一些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:57 · PVG 09:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.