mMonitor - 开源服务器监控 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Actrace
V2EX    分享创造

mMonitor - 开源服务器监控

  •  
  •   Actrace 2013 年 10 月 25 日 600 次点击
    这是一个创建于 4507 天前的主题,其中的信息可能已经有所发展或是发生改变。
    突然心血来潮写了个服务器监控.
    完全PHP实现,可以实现以下信息的记录.
    -CPU使用率
    -内存使用率
    -负载信息
    -网络状态
    -磁盘使用率

    老套路,由服务端主动采集监控点数据,然后画个图.
    用了SQLITE数据库,一年下来大概300M左右的数据,每分钟一条记录(5种状态信息)的频率.
    目的是简约,专注.
    支持实时模式和日志模式.

    设计师正在制作这个程序的安装界面,应该很快能出个内测版~
    第 1 条附言    2013 年 10 月 25 日
    给大家个体验地址吧.
    国际账号密码.
    http://test.maxfs.org/serm/
    43 条回复    1970-01-01 08:00:00 +08:00
    Actrace
        1
    Actrace  
    OP
       2013 年 10 月 25 日
    Actrace
        2
    Actrace  
    OP
       2013 年 10 月 25 日
    为毛我发不了图....
    mahone3297
        3
    mahone3297  
       2013 年 10 月 25 日
    服务器怎么主动采集?
    shiny
        4
    shiny  
    PRO
       2013 年 10 月 25 日
    有没有考虑基于 snmp 做数据采集? 很有兴趣。
    lanceli
        5
    lanceli  
       2013 年 10 月 25 日
    Actrace
        6
    Actrace  
    OP
       2013 年 10 月 25 日
    @shiny 我一开始的时候是用SNMP采集的,不过折腾了3天都搞不清楚怎么调用,最后用PHP直接调系统工具采集数据了...

    @mahone3297 crontab 啊,有写了一个多线程的采集程序.
    qiuai
        7
    qiuai  
    PRO
       2013 年 10 月 25 日
    @Actrace Q 39831817 希望可以马上拿到个版本玩.....
    mahone3297
        8
    mahone3297  
       2013 年 10 月 25 日
    @Actrace php调用系统工具集是什么意思? shell命令?比如 free?loadavg?
    服务端怎么采集各个服务器的数据?在各个服务器上都起了一个进程去监听等待服务器连接?
    mille
        9
    mille  
       2013 年 10 月 25 日
    这孩子....猴急猴急的....
    Actrace
        10
    Actrace  
    OP
       2013 年 10 月 25 日
    @qiuai 大家别急...这个版本还只是刚刚完成功能,,安装界面木有,源代码里面的注释什么的我都没写好呢....想要体验的话可以用国际通用账号密码登陆,登录页在http://test.maxfs.org/serm/


    @mahone3297 是的,用EXEC来调用IFCONFIG,TOP,DF,目前就用到这3个.监控点需要有HTTP服务器+PHP运行环境(apache+php之类的).然后放一个PHP探针.服务端会定时访问那个探针的地址来采集数据.
    Actrace
        11
    Actrace  
    OP
       2013 年 10 月 25 日
    顺路说一下 @mille 是mMonitor的UI设计师.
    mille
        12
    mille  
       2013 年 10 月 25 日
    @Actrace .....!!!!!挖个洞匿了...
    rrfeng
        13
    rrfeng  
       2013 年 10 月 25 日
    如此复杂……
    Actrace
        14
    Actrace  
    OP
       2013 年 10 月 25 日
    @rrfeng Centos系统可以很简单啊...yum install ...service httpd start....
    rrfeng
        15
    rrfeng  
       2013 年 10 月 25 日
    @Actrace
    为了被监控还需要安装 httpd ,php ,等等……

    类似的模式不如直接用 nagios 的 nrpe

    更好的当然是 snmp

    画的图不错~
    xmbaozi
        16
    xmbaozi  
       2013 年 10 月 25 日 via iPhone
    snmp吧,像监控宝那样。严重建议!
    qiuai
        17
    qiuai  
    PRO
       2013 年 10 月 25 日
    @Actrace 国际通用账户?是啥
    Actrace
        18
    Actrace  
    OP
       2013 年 10 月 25 日 via iPhone
    @xmbaozi 可以加入snmp模块,很容易就能添加其它的数据采集模式,关键是我一直没搞懂snmp怎么收数据,大神你来做?
    Actrace
        19
    Actrace  
    OP
       2013 年 10 月 25 日 via iPhone
    @qiuai admin,,,
    qiuai
        20
    qiuai  
    PRO
       2013 年 10 月 25 日   1
    @Actrace admin/admin登录不进去?
    richiefans
        21
    richiefans  
       2013 年 10 月 25 日
    @qiual
    admin/123456
    Actrace
        22
    Actrace  
    OP
       2013 年 10 月 25 日 via iPhone
    @qiuai 你可以趁这个机会提升一下猜密码的能力,
    xmbaozi
        23
    xmbaozi  
       2013 年 10 月 25 日   1
    @Actrace 如果需要,我倒是乐意,求企鹅号联系?
    Actrace
        24
    Actrace  
    OP
       2013 年 10 月 25 日
    @xmbaozi 605853742
    Actrace
        25
    Actrace  
    OP
       2013 年 10 月 25 日
    @rrfeng 可以让探针自身实现http服务,不过这个和snmp有啥差别吗?snmp也是需要安装...没有编译器你怎么编译,编译器也要装吧....实际上我认为偷懒的程序员才是好程序员......大多数服务器应该都有web环境吧...把探针上传就好了....
    做这个东西是因为之前折腾过各种监控软件,感觉都麻烦了....
    soli
        26
    soli  
       2013 年 10 月 25 日
    一般都用 snmp+rrdtools

    不过 rrdtools 画出来的图太丑了。
    rrfeng
        27
    rrfeng  
       2013 年 10 月 25 日
    @Actrace
    snmp 成熟可靠,哪个发行版都有现成的安装包吧。

    另外为了几个字节的数据就开一个 http + php 的环境,代价是否太大了?

    另外想想为何不客户端主动发送消息给采集服务器?一个 shell 脚本 + crontab 就搞定了……

    真正的运维环境,就算你的数据画的图再好再精确,也不会提倡你这种采集方式的。


    『大多数服务器应该都有web环境吧...把探针上传就好了....』
    业务和监控必然要分离啊!哪能随便上传东西
    liuhang0077
        28
    liuhang0077  
       2013 年 10 月 25 日
    关注一下
    coolair
        29
    coolair  
       2013 年 10 月 25 日 via Android
    开源的?最近我也在做这么一个东西,用snmp。楼主的代码在哪,学习下。
    Actrace
        30
    Actrace  
    OP
       2013 年 10 月 25 日
    @coolair 等所有准备就绪以后,就会发布.今天功能刚好完结,有点激动,就上来发大家看看~我的理念是:即使是开源产品,也不能给人一种粗制滥造的感觉,必须负起责任,提供优秀的产品.
    jingwentian
        31
    jingwentian  
       2013 年 10 月 26 日
    Sidney
        32
    Sidney  
       2013 年 10 月 26 日
    推荐一下collectl, 各种性能指标都有, CPU/IO/Network/NFS...
    可以ssh进去服务器跑collectl采集数据, 把结果传回. 这样不用配新的http端口, 直接利用现有的ssh通道.

    http://collectl.sourceforge.net
    leiz
        33
    leiz  
       2013 年 10 月 26 日
    请问画图用的是哪个库?最近也有类似的需求
    dreampuf
        34
    dreampuf  
       2013 年 10 月 26 日
    @leiz highchart

    和手头维护的工具早期架构类似。
    建议替换掉SQLite,无法在线迁移,维护麻烦,一般程度的优化性能低
    ms2008
        35
    ms2008  
       2013 年 10 月 26 日
    @leiz 同问?图画的不错
    Actrace
        36
    Actrace  
    OP
       2013 年 10 月 26 日
    @ms2008
    @leiz
    绘图用的是highcharts.com提供的JS插件.

    @dreampuf 考虑了很多才用SQLITE,因为我们打算做的是一个轻量化的监控,而不是一个复杂的系统,从界面上大家应该能看出来一直都是在针对单个对象的监控.这正是一开始的目的,专注,简单.


    @Sidney 实际上这套系统足够开放,通过添加新的数据接入模块就可以利用各种方法采集数据.不过目前的精力仅限于用PHP实现,对我来说.
    mille
        37
    mille  
       2013 年 10 月 26 日
    show下登录界面...轻喷...=.=!!
    zythum
        38
    zythum  
       2013 年 10 月 29 日
    @lanceli 抱歉朱一的id略难记....

    zythum 很久以前在埃及是一种酒的名称。 当初看柯南的后遗症,又想和自己名字扯上关系。就有了这个蹩脚的名字。
    mahone3297
        39
    mahone3297  
       2013 年 10 月 30 日
    @Actrace 日啊,这就是我想做的东西啊。。。只监控这几项。。。顶!
    另外,我觉得,设计策略是否可以换一下?
    比如,在server上起进程监听,然后client端,跑top,df等,收集数据,发请求到server端。
    这样,不用在client装各种东西了。。。比如php环境
    Actrace
        40
    Actrace  
    OP
       2013 年 10 月 30 日
    @mahone3297 大爷别日我~菊花早已残.....不好意思我只会PHP....centos下yum安装还是挺方便挺快的啊....发送数据这种方式我考虑过,不过这样不太好控制数据频率,对画监控图不利...
    mahone3297
        41
    mahone3297  
       2013 年 10 月 30 日
    @Actrace 频率的话,crontab跑。。。你服务器端发请求,假如你管理1000台服务器,你需要同时去开1000个进程去访问各个client端?如果client自己收集数据上报的话,就相当于服务器接收数据,应该是可以的。
    Actrace
        42
    Actrace  
    OP
       2013 年 11 月 5 日
    @mahone3297 其实是一样的,你1000台服务器的监控主动发送数据,负责收集数据的服务器也是需要那么多进程去处理的.另外如果有1000台服务器的话我想也不太适合用mmonitor这种轻量级的程序了吧. ...
    thinkxen
        43
    thinkxen  
       2013 年 11 月 18 日
    非常赞~~~~~~~~~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:21 PVG 06:21 LAX 14:21 JFK 17:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86