Chinaunix

标题: 【大话IT】我们为什么要自主开发监控系统?(获奖名单已公布) [打印本页]

作者: 王楠w_n    时间: 2016-09-19 15:49
标题: 【大话IT】我们为什么要自主开发监控系统?(获奖名单已公布)
在本次话题讨论活动中,获得精选图书网友有:
@o枫叶o飘零
@znsk07
@laputa73
@_nosay


请以上获奖者在2016年11月15日前将姓名,公司,职务,行业,电话,邮箱,QQ,地址,所选纪念品,站内短信发送给王楠w_n以便及时给您快递奖品。

发不了站短的,请在原帖下方跟帖留言。

至于QQ现因两个编辑轮番值班登陆,可能会有遗漏的情况,有任何问题请尽量在原帖下方跟帖留言或在站务版块反馈,谢谢!

:因特殊原因,每次活动的获奖者我都会通知各位,如果大家在截止日期之前还未联系到管理员,那么本次活动的得奖资格将被取消,所以请大家及时的与管理员取得联系,谢谢合作!

==============================================================

话题背景:

最近,知乎上偶然看到一贴,有楼主问起,我们为什么要单独开发监控系统?觉得此话题很有意思,援引到咱们论坛,讨论一番。

网上开源的监控系统cacti、Nagios、zabbix和其他商业系统,有什么方面不满足公司的需求?


引用2楼董伟明的回复:

几年前做运维开发的时候, 曾经主导或参与过大概30多个运维自动化的项目, 我觉得自己还算业界人.

你觉得换工作的时候说, xxx我用的挺好和我写了个yyy代替了xxx更能让hr, 领导认可你?

简单地说就是有钱有人有时间. 不自己搞什么是KPI? 不自己搞留着那些什么神奇的运维架构师有什么用? 什么都用开源的, 那些领导们, 架构师们面子多过不去, HR, boss会觉得你有什么用?看人家的tutorial/manual??

美其名曰 1. 这是和我们的业务接轨; 2. 我们自己的东西我们完全可控; 3. 说不定以后还能开源.

为什么这么多公司都有自己号称xxx的项目, 但是基本没有开源? 我想除了知识产权, 怕竞争对手知道自己并会鄙视自己. 还有2个重要的问题, 怕太low放出来被吐槽, 怕被人说抄袭了xxx的思想

额 说的再清楚点, 是他们读不了nagios的源码(运维达到c精通的太少了)

其实放出来, 也没别人用
______________________________

以上纯属负能量, 说点实际的, 我来举例一些和监控有关的场景

1. 系统和公司的SSO(单点登录, 简单的理解就是用你公司的账号登录所有系统)怎么结合, 如何灵活的控制用户访问权限
2. 有很多业务项开源的项目没有给你准备, 你只能定制. 比如你想监控下服务器的负载趋势(好吧你可以让浏览器时常自动刷新nagios页面), 用户实时访问数据(你的一个业务新上线,作为领导你很想让大家让你的boss一起看你带来多大的流量增长吧?), 还有很多的你的业务指标, 而且最变态的, 可能这还和不同的产品线或者项目有关. 你给A项目的人顺便展示B项目的数据, 你觉得A的人愿意看?
3. 看过阿里双十一的销售额的大屏幕没? 好, 我们也可以做一个, 监控所有的想要监控指标, 放在一个监控室, 24个屏幕放一起的大屏. 效果特别好. 本来想放个图片, 想想还是算了. 没经过老东家授权.
4. 让你的监控和你其他的系统结合. 比如出现某种故障, 你就会报警. 当然发个邮件短信啥的就算走自己的sms平台也就是个用nagios的被动检查调接口的问题. 关键是, 有监控的时候要会让系统自己处理- 谁都不希望夜里2点收到报警短信, 然后必须起来看问题这种情况吧?1. 那好监控X出现了问题, 直接graceful的把它从负载均衡上移走. 早上再解决呗. 服务器那么多的, 闲的都生锈了. 2. 监控X出现了问题, 直接切换到一个正常的相同的备用系统上继续用. 还比如资产管理系统, 同步服务器数据.
5. 比如nagios监控, 我要用大量的被动检查脚本检查我的业务, 还经常变动, 有人得专门的负责改, 删脚本. 非常折磨人
6. 说道开源软件, 他的报警误报几率好高, 等你登陆服务器的时候可能问题早就过去了, 我们的监控系统会做系统截图(额 不知道用什么词了), 对相关的数据都收集起来
7. 说点好玩的, 比如你不在公司还没有网, 你想看看什么样的监控指标, 直接发一些暗号的短信给某些号码, 他就会返回给你当前数据
8. caicti的画图也太丑了, 你知道这个世界已经发展的很美好了么? 还是php, 几个运维喜欢php

等等吧, 都想不起来了. 每当要做什么的时候, 我们都义愤填膺的, 因为他有特别多的原因让我们op不满意

那么,除了开源工具灵活性的诟病之外,还有哪些原因是我们自主开发监控系统的原因?


讨论话题:

结合您现有的业务,如何理解监控粒度和深度?



讨论时间:2016年9月19日—10月19日


话题奖励:

话题结束后,我们将选取4个优质回复,各赠送精选图书一本。


=========================================================


燃爆九月!最后折扣来袭!

作为国内最受欢迎的架构师盛会,一年一度的中国系统架构师大会将于10月27-29日在北京万达索菲特大饭店撼世来袭!
大会以"架构创新之路"为主题,云集了国内外顶尖专家,共同探讨云计算和大数据等技术背景下,如何通过架构创新及各种IT新技术来带动企业转型增效。本届大会共设置两个主场分享时段,24个技术交流专场时段;邀请来自互联网、电子商务、金融、电信、政府、行业协会等20多个领域,150多位技术专家及行业领袖来分享他们的经验;并将吸引4000多名系统运维、架构师、及各种企业的IT决策人士参会,为他们提供最具价值的交流平台


【大会详情】


官网链接:http://sacc.it168.com/

欢迎扫码关注SACC官方微信,获取最新信息!







作者: o枫叶o飘零    时间: 2016-09-19 23:50
本帖最后由 o枫叶o飘零 于 2016-10-09 15:41 编辑

先占坑,想好再发
第一  我们需要了解监控系统对于每个公司的重要性。
如果公司不重视监控这一块、那就只能用开源的监控系统或者甚至不做监控。(对于运维来讲,就算公司不重视、但是你还是必须得把自己的职责做好。)
如果用开源的监控系统(nagios、cacti、zabbix、ganglia)等等、只能做些基本监控:cpu、内存、硬盘... 如果想定制化监控,还得按照它们的格式要求、自己写监控插件。。
如果自己写监控插件,还不如直接写一个监控脚本放进服务器里面跑就行了。
而且用开源的监控系统就注定了对网络环境的限制。比如说  多机房多机器,用nagios就不辣麽好做分布式,而且nagios是没有自带proxy的。这时候用zabbix就比较方便....
所以针对特定的环境,只能用特定的开源监控系统

第二  个人觉得,在有条件的情况下,还是需要自主开发监控系统。自主开发监控系统可以结合公司的业务进行针对性的监控。
就比如有多个nginx、多个tomcat时,自主开发监控可以监控每一个节点
如果用开源的监控系统,一般就1-2个运维负责整个环境。
而自主开发监控系统把权限整合一下,就能把责任分摊到每一个运维上面,使得每一个步骤更详细,更流程化。

作者: znsk07    时间: 2016-09-20 10:23
先占个坑

首先如果仅仅是用于linux运维 也就是如果你的监控系统仅需要机器指标 那么开源产品随便用 反正就那么十几个到几十个指标 你就算有十万台服务器 分钟级监控 也还是可以毫无压力搞定的,但是吧,很多时候还有监控服务器上的进程,甚至还有些业务数据或者说是进程性能数据。这样现有开源就有点费劲了。之前我们用opentsdb,然后发现数据每天3.5g,查询聚合数据的时候很慢(因为opentsdb每次从磁盘捞数据)。实在忍不了了,重写。现在每天500g,查询秒级返回。各种报警自行支持。这就是我们写的目的。只因为已有的满足不了并且开源社区的发展速度跟不上公司需求的发展速度。

最后,文无第一的原则,程序员还是有点炫技倾向的。

当然,从私人角度讲,重头解决采集,聚合,存储,同步,报警甚至是智能化,这个过程本身就是一次非常好的学习经历。
作者: fenyun689    时间: 2016-09-20 11:15
没用过开源的监控,一般都是用公司整的。

1:真正需要的指标很少。自己整的可以灵活的通知管理人员。
2:太复杂的话,要进行改动挺麻烦。
作者: laputa73    时间: 2016-09-21 08:53
本帖最后由 laputa73 于 2016-09-22 10:02 编辑

开源的缺点:
一类是自己整合一堆零散方案,比如mrtg/cacti/nagios/statsd/rrd/influxdb等,  整合复杂,运维工作量大。当然也有整合好的版本,比如小米的openfalcon.
一类是一站式打包的系统,比如zabbix/zenoss/ganglia, 功能繁杂,安装部署使用都麻烦,而且二次开发困难, 有门槛。

而且,开源方案,往往不能完全应付实际的需求。比如,对性能、存储、高可用,基本都很少考虑或者兼顾。
比如cacti,底层snmp采集调用系统的snmpget命令实现,这个一旦上量,真不能忍。
如果真的想用好,基本都会对其中的部分或者整个系统进行重构。

这时候,一些偏向底层采集的轻量级开源系统,看起来还是可以考虑整合的。
比如nagios, 默认页面完全无法接受。可以把数据导到mysql/pg,二次开发页面. 告警通知还是可以应付的。
还有collectd这类的主机采集agent.
可是你用过一阵可能就会觉得,好像真正用的都是我自己写的插件啊?

当然所谓自主开发,并不是一切从零开始。
至少操作系统,数据库,存储,webserver这些,还是有开源产品可以选的。
自主开发+整合一些开源组件,只是整合多少的问题。




作者: a790864251    时间: 2016-09-21 10:35
我们公司就有自己的监控产品,装好了卖给有钱的客户。


那些有钱的客户如银行、证券、通讯,谁在乎这些钱啊?变成成本然后转嫁到消费者身上去。关键是不出错误,不要让他们承担责任。

出了问题,义正严辞的叫系统公司来臭骂一顿,然后责任就是系统公司的。系统公司能接到这些垄断企业业务的,也都是赫赫有名的大公司,这些大公司扯皮和化解问题都有专家团队的。

所以成本不是需要首先考虑的,出错谁来负责才是最重要的。大公司和政府部门一样,四平八稳的干部才能升上去。

反正大公司垄断的是整个社会,为什么要开源,垄断有什么不好啊?这些问题垄断企业里的人是不想知道的。

这里开源的方案我们都不敢提,万一出了问题怎么办?叫John Smith来骂一顿?John Smith有个gmail,他不要你的钱当然也不帮你承担责任高兴回答一下你,不高兴就不理你了 l。没人承担责任的时候,责任就是你的了。

1、绝对是偷工减料造成了系统质量出了问题!
2、负责人是不是拿了红包?
3、一定是贪污了。
4、这和豆腐渣工程不是一样么?
垄断企业的上面都是国家行政机构啊,用OSS,不是找死么?


作者: _nosay    时间: 2016-09-21 13:34
不管用开源还是自己开发的模块,用到一定阶段,就会发现有需要改进或扩展的地方。
我自己觉得,有把握自己开发出来的尽量不要用开源,否则坑出来了,连坑在哪可能都不知道,自己开发前期可能慢一点,后期维护会得心应手的多(不过要保证自己不是坑货才行)。
对于小公司来说,成本有限,又不知道你的深浅,而且你也总有离开的一天,所以往往更偏向直接用开源的东西;财大气粗的大公司,才更有可能选择从头开发,但最终的效果往往也一般,因为大公司人多,关系也比小公司更复杂,开发出来的东西,思想不够凝聚,似马非马。
一流的软件,肯定是几个惺惺相惜的人做出来的,在公司很难找到这样的几个人,要看缘分
作者: 蓝色虫    时间: 2016-09-21 17:49
这软件系统,就是一个坑
作者: gyd1    时间: 2016-09-23 11:18
看了大神的回复 我们纯运维 不会写代码的运维人员无可奈何啊
作者: chenyx    时间: 2016-09-26 19:14
众口难调,虽然已经有很多开源的监控系统,比如cacti、Nagios、zabbix,但是,工具都有适用的问题,不能说一套系统能适应所有系统监控任务。

作者: action08    时间: 2016-09-29 20:29
众口难调


主要是一堆脑残需求闹事情,把一个本来就很简洁优雅大气的系统给活生生改改成一坨屎
作者: qgx2009    时间: 2016-10-08 09:26
未来的发展方向就是定制化,没有一模一样的系统,监控的内容不同,即使内容相同,侧重点也可能不同
所以监控系统也要定制化,不一定要自主开发,能改也可以
作者: lyhabc    时间: 2016-10-09 09:21
zabbix发展到3.0
这些开源系统不断升级,自己开发需要自己维护,运维每天都这麽忙,还要看代码,其实吃力不讨好,大公司除外
作者: 王楠w_n    时间: 2016-10-14 15:44
o枫叶o飘零 发表于 2016-09-19 23:50
先占坑,想好再发
第一  我们需要了解监控系统对于每个公司的重要性。
如果公司不重视监控这一块、那就 ...

游戏行业用的监控跟一般互联网公司有啥区别,很是好奇

作者: 王楠w_n    时间: 2016-10-14 15:45
回复 14# lyhabc

虽然不懂,但是论坛
zabbix方面的图书,还是很受欢迎的


作者: 王楠w_n    时间: 2016-10-14 15:46
回复 13# qgx2009

可不可以这样理解,根据业务需要找第三方公司进行系统订制,完了运维人员需求会变少
作者: 王楠w_n    时间: 2016-10-14 15:47
回复 6# laputa73

回答的比较详实,必须赞个
作者: 王楠w_n    时间: 2016-10-14 15:47
回复 12# action08

人多的地方就是江湖啊
作者: 王楠w_n    时间: 2016-10-14 15:49
回复 8# _nosay

你说的这种情况,如果之前维护的同学离职了,好系统也会慢慢被做烂,后来人会根据自己的理解,然后各种改,悲催啦
作者: 王楠w_n    时间: 2016-10-14 15:50
回复 7# a790864251

责任这事情,就像食物链,在哪都无法避免
作者: action08    时间: 2016-10-15 08:13
王楠w_n 发表于 2016-10-14 15:49
回复 8# _nosay

你说的这种情况,如果之前维护的同学离职了,好系统也会慢慢被做烂,后来人会根据自己 ...

是啊,人多的地方就是江湖啊

作者: proxydemo    时间: 2016-10-17 09:34
公司业务和规模比较小的时候,开源监控肯定是必要的。特别是服务器已经超过10台的,无论是展示还是。告警,都是运维必须要做的。在这个阶段,公司的业务也好,人员也好,都没有达到一个瓶颈。使用开源的监控已经足够了。
但是公司的业务量增长,技术的环境也日益复杂起来以后,重新造轮子肯定是必然的,监控肯定不能只做到最基本的硬件层面,必须要重新细化粒度了。当然想重新造个大轮子是很麻烦的,比如你去改一个zabbix?而且这个时候服务器应用增多以后,开源的一些问题也随之而来,比如zabbix的报警时间,展示界面等等。还有一些业务开源我发监控得到的。比如。集群在每个节点的响应时间,单点并发,多点并发;首屏时间,响应最慢的url与uri;
业务多,服务器多,需求多了,运维人员自然会增加,业务的要求也会更加细化,当开源监控已经满足不了业务的时候。自主开发监控系统是必然的趋势。
制定标准,设计需求,构架采集(接口?),触发机制,展示。
既造了轮子,技术也上升,工资也涨了。业务也满足了,何乐而不为呢?


作者: Fl_wolf    时间: 2016-10-17 10:08
一般都是 基于现有开源工具,然后再添加自己的监控项。不会自己完整开发一套。
因为zabbix来说,他已经有很好的扩展性和机动性,需要监控什么的只要写脚本去获取数值或者返回值即可,完全不需要自建。
作者: qgx2009    时间: 2016-10-17 14:23
回复 17# 王楠w_n

可以这么理解,只是运维人员的需求会更加专业化

作者: a790864251    时间: 2016-10-17 16:59
回复 21# 王楠w_n


对呀
作者: _nosay    时间: 2016-10-25 20:03
又中奖了,嘿嘿
作者: 王楠w_n    时间: 2016-10-26 09:07
_nosay 发表于 2016-10-25 20:03
又中奖了,嘿嘿

单独站短私信我吧

作者: 听海★蓝心梦    时间: 2017-02-03 09:30
新年快乐,万事如意。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2