V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
flowyi
V2EX  ›  程序员

求开源简单的监控系统 web 展现框架

  •  
  •   flowyi · 2015-01-17 18:02:00 +08:00 · 14680 次点击
    这是一个创建于 3601 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我需要做一个分布式服务监控系统,大概就是监控各种自定义的服务器参数是否正常,比如消息数量,队列长度,cache命中率等,还有顺便能看看机器的io,cpu,内存等信息。还要考虑到集群有多种服务,比如storm、kafka、zookeeper等。
    想问问各位,有没有认识比较简单的web框架,可以展现如表格、曲线图、柱状图、饼状图等。界面美观什么的不要求,关键是要容易使用,部署方便(下载即用无依赖最喜欢了),自定义比较方便。不会写前端的小码农伤不起……

    话说各位用什么监控这些东西的呢?jmx? >_<
    17 条回复    2019-07-05 14:07:03 +08:00
    kamil
        1
    kamil  
       2015-01-17 18:22:15 +08:00
    可以看下这些
    Zenoss
    OpenNMS
    Nagios
    介绍可以看看OSChina上的或者直接Google
    kamil
        2
    kamil  
       2015-01-17 18:24:27 +08:00
    差点忘了,有名的还有zabbix
    9hills
        3
    9hills  
       2015-01-17 19:04:34 +08:00
    influxdb + grafana
    前者存储,后者展现,效果如下
    http://grafana.org/
    Honwhy
        4
    Honwhy  
       2015-01-17 21:16:29 +08:00   ❤️ 1
    怕文不对题,提醒一句,先按照个人思路阐述一下。
    首先你得关注整体架构吧,前端的展现只要后台提供了数据接口问题就不大了,如果你搞不定前端就想办法了,找人帮忙指导啥的。
    分两部分看你的问题,一个是基本监控(性能信息:io, CPU, 内存),一个是扩展或者定制监控,消息数量,队列长度,cache命中率,然后才是数据输出(到前端)。
    楼上提到的开源的监控软件据我了解都能满足基本监控的需求。定制部分就要看这些开源软件的架构及你个人、团队对这个软件的掌握程度了。比如我了解到Nagios,是支持扩展的,把NRPE看作一阵通信机制的话,在agent端和client端都可以根据nagios提供的文档进行扩展。<del>Nagios的4.x明确支持分布式了,还支持热备.</del>删除线部分不保证什么正确,哈。
    然而,不得不说哪种软件适合自己还得从自身、团队的技术背景出发考虑。如Nagios是C语言写的,他本身也带了PHP前端,PHP和后台采用的是CGI通信方式,个人觉得定制Nagios难度不小,当然不能排除C语言大神的存在,我反正是放弃了的。另外,还需要考虑一点是否需要支持行业标准协议SNMP,如果需要支持的话,那有些开源软件你或许就不会选择了,如Nagios就是自己定义的协议,虽然可以通过扩展支持SNMP协议,但这种不直接让人觉得不够爽快。

    说了这么多,虽然有难度,但是能把监控做好的已经能做成一门大生意了,建议去偷师“监控宝”。

    虽然题主的问题是“求开源简单的监控系统 web 展现框架”,关心的是web框架,我上面都在谈监控。。。
    我凭印象提一下开源监控软件的的前端的情况,它们的前端大都很朴素的,并没有上升得到“框架”的层次。
    例如绘制流量图,使用标准协议SNMP的MRTG+RRDTool,现在zabbix, nagios, cactic都使用它。监控软件关注的实时性,而且尽量不对agent机器造成性能影响。如果是自己采集收集然后在前端输出的话,或许你需要一个数据库,opennms也使用到了postgresql。http://njulinq.blog.51cto.com/1257169/277754

    那么假设前面的问题都解决了,要绘制表格、曲线图、柱状图、饼状图等这些图例,可选用当然有大名鼎鼎的highcharts了,python作为运维中比较流行的语言,也有不少可以选择的,参考链接 http://django-china.cn/topic/75/

    最后再说点之前的实践好了,怕又泄露公司机密啥的,其实也没啥秘密可言的。提两个关键的地方,
    1. 采集数据采用的是异步方式
    2. 适时地对大数据进行统计汇总
    3. 漂亮的绘图框架怕是影响性能的
    4. 。。。
    Frannk
        5
    Frannk  
       2015-01-17 23:34:54 +08:00
    自己写监控客户端往 监控服务器回传数据


    https://github.com/etsy/statsd
    http://graphite.wikidot.com/
    你只要负责数据上 报就行了 图形和数据存储交给 graphite
    learnshare
        6
    learnshare  
       2015-01-17 23:41:22 +08:00
    你是要找监控系统,还是数据呈现框架?
    flowyi
        7
    flowyi  
    OP
       2015-01-18 00:14:35 +08:00
    @Honwhy 写的好详细啊!谢谢你提供思路。我现在的情况是写一个公司内部使用的监控页面,可以查看各个机器、服务的运行状况就ok了。数据方面我打算就放mysql,毕竟量不多,也可以定时清掉。然后用一个进程(或者多个)不停的采集写入数据,要展现的时候就用另外一个进程查出来丢给前端。
    现在主要的问题是前端展示的页面,一是我不会,二是想用最小成本最快方式搞定,所以琢磨着如果已经有个“框架”,我只需要提供数据,写些配置,就哇啦出来了,想必是极好的!

    @kamil 这些貌似都是现成的监控软件,而且没提供我想要的功能,不是我想要的哦

    @9hills @Frannk 看起来挺不错,研究一下!

    @learnshare 数据呈现框架。当然如果已经有现成的监控以上服务的监控系统,并且是开源免费,也是挺好的,可惜找了一圈没找到。
    learnshare
        8
    learnshare  
       2015-01-18 10:01:16 +08:00
    @flowyi 数据呈现的有 D3.js C3.js Echarts.js HighCharts.js 等等,监控的我就不了解了
    wgzhao
        9
    wgzhao  
       2015-01-18 11:16:05 +08:00
    我们现在一直都用Zabbix(http://www.zabbix.com)他的好处是在有灵活的展现方式,无论是图表还是数据。
    jamiesun
        10
    jamiesun  
       2015-01-18 22:48:13 +08:00
    @flowyi 我和你一样也遇到过这个问题,我比较喜欢用nagios来做监控,但是nagios自带的那个web让我没法接受,php+apache+一堆三方插件,所以我自己就写了个简单地web管理界面,用mongodb存储性能数据,用python写个性能数据采集插件,前台用js图表直接搞定,暂时只做了磁盘,内存,cpu负载几个图。另外用了pynag这个模块,这个模块非常不错,我用这个模块实现了纯手工界面的配置,然后丢给其他懒人用。

    https://github.com/talkincode/ToughNag
    flowyi
        11
    flowyi  
    OP
       2015-02-05 11:39:14 +08:00   ❤️ 1
    感谢大家的建议,我现在暂时用的方案是Influxdb+Grafana+自己写的java数据采集进程。
    由于我们已经在用Zabbix了,系统的情况都可以通过它来监控,这套系统解决的是一些自定义的指标数据、统计数据。数据的采集其实都好办,就是前端呈现有点麻烦(不会前端T_T),各位推荐的数据呈现框架都挺好,只是需要一定前端基础和编码时间,所以就用了偷懒的Grafana。
    选择他们的原因纯粹是部署配置简单,上手快。
    现在勉强能用,就是Grafana有几点不爽:
    1. 这货没有table,要显示大量当前信息很蛋疼,目前是用字符串打印成表格的形式……
    2. 由于纯界面配置,可定制化还是没有直接编码来的爽,还是得搞前端啊
    sichuyoudang312
        12
    sichuyoudang312  
       2015-09-29 11:45:09 +08:00
    为什么不用现成的监控工具
    flowyi
        13
    flowyi  
    OP
       2015-10-02 12:09:40 +08:00
    还有人关注这个帖子,那我就贴下我们现在的方案吧,就是自己写一个,大家可以试试: https://github.com/shunfei/DCMonitor
    homu
        14
    homu  
       2016-03-25 15:56:15 +08:00
    为什么都要自己搭呢 何不考虑一下免费的第三方工具 比如 cloud insight 这样的 支持 20 多种平台 可视化做的非常好 还可以自定义上传数据 包括业务数据 集中展现 http://docs-ci.oneapm.com/
    situs
        15
    situs  
       2016-06-30 14:03:26 +08:00
    用小米的 open-falcon 吧
    Dempe
        16
    Dempe  
       2017-01-06 16:25:13 +08:00
    之前也是在找一个轻量监控放方案,客户端上报不同维度数据,然后就能看到报表。报表不要太丑。
    网上搜到小米的,大众点评的,还有其他的 n 多方案,虽然灵活,但是感觉都太重了。
    找了很久也没有找到理想的方案,只好自己撸一个
    https://github.com/dempeZheng/forest-metrics
    页面基于 adminLTE ,报表基于 highchart ,
    evenno
        17
    evenno  
       2019-07-05 14:07:03 +08:00
    @jamiesun 你的开源平台账号密码哪里看,是多少啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.