我从自动报警系统设置场所里没找着报警设置

【推荐】艺龙十万级服务器监控系统开发的架构和心得&&
1、 监控系统架构 (http://www.yixiin.com/quote/)
经历了许多公司,监控系统大概都是从无到有,该经历的也都经历了。所谓监控系统,大概的架构如下:http://www.yixiin.com/news/
◆在服务器布置一个Agent,它负责采集数据;
◆由网上转发到一个分布式管道再转接,就像搭积木一样;
◆进行汇总;之后把监控数据分两个部分&http://www.258sww.com
●一是数据库存储,主要做监控数据展示和后续排查问题。
●二是制定很多的监控的报警项。
做一些简单的,像CPU超过90%就会报警;还有一些复杂的,像60秒之内超过两次。后来也会支持一些集群类的报警监控。这个模块也是很简单,它主要就是在若干的文件的公式,然后进行监控数据的判断,判断之后发现了异常,就会产生一些消息,然后上一个模块。我们只是进行判断,不进行报警。之后会有一个模块进行各种后端的报警,像现在一些公司 有微信报警、短信报警等等的,都在这部分支持。
◆存储部分&http://www.wlchinahc.com/
豆瓣、百度、360等等,后端琐碎的事比较多,但是也有用MySQL的。实际上这部分也很简单,可以认为是一个分布式的Linux,就是把一些数据往文件数据库里传,上面是一个WEB端。以上是大概架构。
2、 设计思路
◆每一个模块就干一件事,把这件事干得精细和优秀。
●之后会细化一下模块里的具体内容。
●要scalable,flexible,可以任意横向扩展,适应各种防火墙ACL。
●在360的时候机房比较多,各种防火墙的ACL非常多,360下还有很多子公司,会出现各种访问的现象。要适应各种系统,就会通过一些模块来适应。
◆注重代码复用。
一套系统除去网络框架,每个模块的代码都在100行,而且是C语言写的。我们最后把这个网络框架都做在了一个网络库,这个是多线程的。
3、 这个系统面临什么难点?
就艺龙而言现在系统规模较小,每天产生160GB,360是500GB/天,百度离开太久了就不清楚了。这个数据量还是稍微比较大的,就是这个系统是人为造的DDoS系统,每个监控端采集项目,我们在艺龙比较少,这种比较少,每个服务器上监控项大概二百多个,默认的频率是5秒钟一次的采集点。可以说每秒钟大概有40多条数据的采集。:http://www.miehc.com/
这个系统基本上不能做Cache,必须实时运算。因为服务器监控系统,我们做服务端应该都知道,延迟报警,还不如不报。报警一旦出了问题,就要尽可能快的把这个东西报出来。除非是一些不可控的因素,如短信网关,或者运营商短信发送延迟等。结论是,90%都要在15秒之内保证大家手机能收到。这对我们在各种环节下尽量减少各种各样的延迟什么的提出较高的要求,换言之,高可用。这种监测系统作为一种服务器的基础架构存在,可用性必须比线上高,因为它发挥最大作用的时候都是公司出了大问题的时候,这个时候必须要扛的住各种各样的网络情况,把真实的情况反馈过来。对于这种线上的可用性要求高于线上服务至少一个数量级。像CPU连续5次90%不报警,如果我们这个数据里有任何丢点,可能会导致报警报不出来。因而对于数据的完整性要求也是比较高的。就是在任何一个模块宕机或者网络隔离,这种情况下也不允许出现任何的丢失。
因为这个系统是典型的写的比较多,读非常非常随机的过程。读取决于大家对数据项的查看,汇总,画图的需求。所以基本上一个月之内的数据需要随时的调出来。高吞吐也是我们面临的主要问题。
百度用的是Linux,Windows用的比较少。百度的挑战在于机器比较多,像千分之一的情况在百度基本每天能出个一百台。之前我们同事做过一个分享,就是说一些经验。在服务器吞吐量特别大的时候,千分之一的情况也要考虑。360是FreeBSD。艺龙是Windows,大约占服务器的一半。
4、解决方案
针对数据量,HBase,自定义协议减少Overhead。数据量这个问题不大,用的技术在于说,监控数据的传输,根据一些私有的协议,也是一些历史原因,当时用Json很多。也尝试过用别的,但是对监控系统有时候,比如出丢点,像追的时候Json可以,用别的就追不上了。:http://www.niujiaojianli.com/
高实时。对等多线程异步非阻塞、实时计算、长连接。我们这个系统不能用一些很高延迟的东西,比如说卡罗普你想都不用想了,还有像现在比较火的流式系统,所以也没有采用。
高可用。我们这个系统不能有单点,而且有一个要求,你是同一个机房,不能降级。就是如果这个机房停电了,这个机房不监控也罢,但是你得知道它停电了。但是剩下的机房必须保证监控没有受到任何影响,而且还要保证15秒这个事。这是我发明的词,“惰性智能选路”这个其实也很简单,什么叫惰性呢?像网络挂了,连不上了,我们Agent可以连到别的上,这个很简单,就是我们想办法让Agent让它知道有这个的存在,我们不用DS传统方式。我们启动的时候,或者哪儿出了问题,我们拿到另外一个连,这个策略非常简单,但是这个东西作为一个接口,以前的Agent,由于网络断了会试下一个,就是最终会迁移到离它最近的,网络状况最好的,就是很默契的达到智能,而不用考虑它跟谁连接。同样的,下游往上游发的时候也是用的相应策略。还有高可用,我们要保证这个数据不能丢。就是有一点必须要保证,就是这个监控数据由于第一手拿到的都是本机的一些Agent,这个Agent必须保证数据到了让报警的那个模块拿到。我们这个就是Agent拿到这个数据之后,翻译的这个模块只会进行转发,上面的收到确认之后传过去,最后再给。保证这个数据一定到了上游。由于这种东西的强保证,所以说也会导致性能上的困境,就是说我们要保证数据不丢,又要保证高性能,这后面我们再说这个是怎么做的。
高吞吐。cache,还是cache。没有什么好说的,觉得一般cache能解决的高并发都不是难点。
多平台。当时我们做这个的时候golang还没出来,所以都是用的C++。时间计数器一出问题什么都出了问题,时钟不好了,定时器到计算性能全都完蛋,Windows是一个非常坑的平台,后来幸亏有了golang,避免了Agent只能找非常厉害的人写的局限。
5、 如何优化性能?
◆zlib流式压缩
这个写起来没那么好弄,但是听起来挺简单的。
◆pipeline滑动窗口
●之前说从Agent采集到数据,经过层层模块转发,这样就会导致请求和回应的延迟会非常大,在大延迟的情况下怎么保证高吞吐量,于是发数据的时候,比如在翻译模块都是进行批量转发,那边回一个Ok。工程师说,在应用层又造了一个TTP,这个东西比较无聊。
◆协议改造,Protobuf
◆数据合并
◆function-filter优化,当时优化也走了很多弯路:
●profiler,现在CPU行为不是教科书里说的那些东西,现在CPU的架构体系不是常人能理解的了。我们的想法是各种都去尝试,最终选择好用的。
●分布式改造,这个容易降低速度,最终没有再尝试。
6、走过弯路的感想
所谓简洁即可靠,我们曾经做这种东西的时候,就是关于数据转发和怎么弄曾经做了一些版本,也走了一些弯路,慢慢发现搞的越复杂坑越多,特别是在限制要求特别高的情况下,最后返璞归真,不断优化,出来的就是每个模块极其简单,感觉就是分布式管道,都可以在linux系统里找到影子。做到简洁,因为有的模块,我们写代码都知道,从产品来看,就是从这儿到那儿。写代码如果在设计上复杂化,很多东西都绕,加班加点也不一定能搞明白。因此现在艺龙考虑的就是从简洁出发,不要搞复杂的东西。
结语:十万级服务器监控系统开发架构尚可继续完善,愿来日更上一层楼。
关于作者:
王鹏程艺龙技术架构总监曾于实习期间加入豆瓣,后在Baidu从事自动化运维开发,参与了Baidu运维自动化从无到有的过程。后加入360,负责过360运维自动化平台的架构设计及框架开发,从零开始负责构建了360天机、360流量卫士等移动端产品。擅长服务端、Android底层、分布式系统开发。
被转藏 : 0次
被转藏 : 0次2596人阅读
Telemetry Mitaka(5)
从2015年5月份左右开始接触telemetry,一直期待能够有一张图描述清楚我工作中要面对的整个项目,始终没有找到,经过这段时间的摸爬滚打,也积累了一点点东西,既然网上找不到,我就腆着脸皮做一张,可能有理解不到位甚至错误的地方,还望大家批评指正(图片如果看不清可以右键点击“查看图片”或者类似操作)
telemetry在设计上遵循着一些基本规则,包括:
可扩展,基于插件的系统架构
内部服务之间通过消息队列进行通信
向外提供RESTful API来访问数据
telemetry大大小小包括了不下10个服务,每个服务都有自己的责任,他们中的部分服务一起协调完成一个功能;也有一些是独立于其他服务存在的,下面是telemetry的服务列表
ceilometer-agent-compute
ceilometer.cmd.polling:main_compute
从计算节点上采集虚拟机的使用情况相关的信息,例如:已使用内存、cpu利用率等
ceilometer-agent-central
ceilometer.cmd.polling:main_central
通过openstack 其他server的RESTful API获取相关资源的信息,例如:image.size从glance api获取镜像的size
ceilometer-agent-ipmi
ceilometer.cmd.polling:main_ipmi
获取当前宿主机的相关信息
ceilometer-agent-notification
ceilometer.cmd.agent_notification:main
从消息队列中获取其他服务发送的通知消息并转换成sample或者event
ceilometer-collector
ceilometer.cmd.collector:main
从消息队列中收集前四个服务采集到的数据持久存储
ceilometer-dbsync
ceilometer.cmd.storage:dbsync
主要负责数据库的管理,例如升级、降级
ceilometer-expirer
ceilometer.cmd.storage:expirer
跟crontab结合定期清理数据库中过期的数据,需要结合配置文件中的:metering_time_to_live,event_time_to_live,默认都是-1,永不过期
ceilometer-api
ceilometer.cmd.api:main
对外提供的RESTful API,访问telemetry采集到数据的唯一入口
ceilometer-alarm-evaluator
ceilometer.cmd.alarm:evaluator
根据ceilometer-api中alarms设置的监控策略和采样数据的统计结果进行评估,评估结果又三种:数据不足、正常、告警
ceilometer-alarm-notifier
ceilometer.cmd.alarm:notifier
当告警评估状态变化时,会忘消息队列中发送一条消息,有ceilometer-alarm-notifier接收处理
记得大学时候学习计算机科学时,给计算机系统分类,他们真是一群不厚道的人,竟然能搞出好多个分类,按照A标准分A1、A2、A3几种,按照B标准分B1、B2、B3、B4几种,这对那时候的我们真的有用吗?也许是有用的,但也可能没用,反正对我是没用,因为我连计算机是什么都搞不清楚,你跟我讲分类?
telemetry的目标在前一篇《 》中提到:“为收集openstack关心的信息提供基础设施;成为一种采集数据的标准方法,而不管使用数据的目的”,那数据采集是少不了的了,但有句话说:“酒足饭饱思淫”,在数据采集做到比较完善之后,总会想着往上层做一些事情,监控告警就是telemetry在比较完善之后的一个向上扩充
数据采集有两种方式:由telemetry的服务主动发起的轮询和被动监听消息队列。在Kilo版本中对于轮询部分的服务做了一个合并,可以从ceilometer-polling服务启动,根据传输的参数不同而成为较旧版本的ceilometer-agent-compute、ceilometer-agent-central或者ceilometer-agent-ipmi,轮询的服务的流程大致是:
扫描指定命名空间下包含的pollster,ceilometer-agent-compute的命名空间为:ceilometer.poll.compute,ceilometer-agent-central的命名空间为:ceilometer.poll.central,ceilometer-agent-ipmi的命名空间为:ceilometer.poll.ipmi,在setup.cfg中可以看到个命名空间下的pollster
每个pollster都有一个default_discover,在setup.cfg的ceilometer.discover命名空间下可以找到每个discover的定义,discover负责指定pollster要轮询的资源。比如ceilometer-agent-compute的default_discover为local_instances,通过host获取指定节点上的虚拟机
采集到的数据根据meter_name放到指定的pipeline,pipeline的transformer负责转换数据,publisher负责将转换后的数据发布到消息队列
到此,轮询的工作结束。轮询的几个服务的区别在于采集数据的对象不同,可以参照上表中的主要责任列
除了主动轮询外,openstack系统中其他服务可能会有各种各样的数据上报,他们的做法是将数据(带有event_type)发送到消息队列,ceilometer-agent-notification服务一直监听消息队列,碰到感兴趣的event_type(例如:compute.instance.*)时用对应的类(例如:memory = ceilometer.compute.notifications.instance:Memory)对该消息处理转换为sample或者event
数据采集中的服务,将sample经过pipeline的处理转换然后通过publisher发布到消息队列,ceilometer-collector将消息队列中的数据进行永久存储到指定的存储设备(dispatcher)上,例如默认的database = ceilometer.dispatcher.database:DatabaseDispatcher,当然还可以是file = ceilometer.dispatcher.file:FileDispatcher或者http = ceilometer.dispatcher.http:HttpDispatcher
ceilometer-api作为外部访问telemetry采集数据的唯一接口,满足RESTful
在数据库之上,有两个服务负责数据库的维护工作
ceilometer-dbsync,负责数据库的升降级
ceilometer-expirer,需要根据配置文件中的time_to_live配置项做处理,time_to_live是指记录在持久存储中保留的时间,一般ceilometer-expirer需要跟crontab配合,定期清理掉超过time_to_live指定期限的记录
在telemetry中,有一个使用ceilometer-api的实例—告警系统,告警系统由两个服务组成:
- ceilometer-alarm-evaluator,负责告警的评估,在ceilometer-api中提供了创建基于阈值的Alarm(Threshold)和组合Alarm(Combination),在Kilo版本里面还有其他的几种Alarm,ceilometer-alarm-evalutor根据设置的规则,通过ceilometer-api获取统计数据跟阈值进行对比得出评估的结果:数据不足、正常或者告警,触发状态变化时将本次状态变化的信息发送到消息队列
- ceilometer-alarm-notifier,一直监听消息队列,接收到ceilometer-alarm-evaluator发送的消息之后进行解析根据消息的指示(scheme)将消息分发到具体的notifier,例如:log = ceilometer.alarm.notifier.log:LogAlarmNotifier;http = ceilometer.alarm.notifier.rest:RestAlarmNotifier等大家都在搜:
扫描二维码安装房天下APP
手机浏览器访问房天下
> > 问题详情
上午去牙科看牙工作人员给排了半小时又换了一位牙医从新排,牙医出来让我下午再看牙,我没同意所以直接等。我等了好常时间比我后来的人都看上牙了我还再等。大厅就剩我一人,我就提出疑问,工作人员承认却实排错了但态度非常不好,我要找她们领导投诉她不离我。我生气之下就拿他桌上的报纸往椅子上砸但碰到她腿了,我们又争执着最后双方骂起来,我在一气之下就拽工作人员的衣领要找她们领导投诉,旁边的人拉开后我就看牙,但她们领导是她叔叔,报警说我打人了,并说她们的服务一点问题都没有,我说没打人,并提出看监控,到了派出所,我和对方胳膊都有划伤,没提到别的,但派出所当时没做笔录,对方说难受去医院住院了,她的家人在派出所七八位,两次要打我并威胁我,而且还给我单位领导打电话说我是黑社会已经被拘留,她们从医院开回来的诊断说脖子,耳朵后面,和胳膊有伤,没做法衣医监定,但我没打她,监控是我摔报纸碰到他腿一点,其次就是我拽她脖领子要找他们领导
上午去牙科看牙工作人员给排了半小时又换了一位牙医从新排,牙医出来让我下午再看牙,我没同意所以直接等。我等了好常时间比我后来的人都看上牙了我还再等。大厅就剩我一人,我就提出疑问,工作人员承认却实排错了但态度非常不好,我要找她们领导投诉她不离我。我生气之下就拿他桌上的报纸往椅子上砸但碰到她腿了,我们又争执着最后双方骂起来,我在一...
上午去牙科看牙工作人员给排了半小时又换了一位牙医从新排,牙医出来让我下午再看牙,我没同意所以直接等。我等了好常时间比我后来的人都看上牙了我还再等。大厅就剩我一人,我就提出疑问,工作人员承认却实排错了但态度非常不好,我要找她们领导投诉她不离我。我生气之下就拿他桌上的报纸往椅子上砸但碰到她腿了,我们又争执着最后双方骂起来,我在一气之下就拽工作人员的衣领要找她们领导投诉,旁边的人拉开后我就看牙,但她们领导是她叔叔,报警说我打人了,并说她们的服务一点问题都没有,我说没打人,并提出看监控,到了派出所,我和对方胳膊都有划伤,没提到别的,但派出所当时没做笔录,对方说难受去医院住院了,她的家人在派出所七八位,两次要打我并威胁我,而且还给我单位领导打电话说我是黑社会已经被拘留,她们从医院开回来的诊断说脖子,耳朵后面,和胳膊有伤,没做法衣医监定,但我没打她,监控是我摔报纸碰到他腿一点,其次就是我拽她脖领子要找他们领导
浏览次数:0
请选择房屋所在省份
装修总预算0万元
卫生间:0元
扫一扫下载房天下装修
扫码即获10000套家居设计案例
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
没有房天下通行证,
ask:4,asku:5,askr:206,askz:22,askzx0:2601,ask0:0,RedisW:0askR:1,askD:2843 mz:nohit,askU:0,askT:0askA:2845
Copyright &
北京拓世宏业科技发展有限公司
Beijing Tuo Shi Hong Ye Science&Technology Development Co.,Ltd 版权所有
违法信息举报邮箱:1, You can UPLOAD any files, but there is 20Mb limit per file. 2,
VirSCAN supports Rar/Zip decompression, but it must be less than 20 files. 3, VirSCAN can scan compressed files with password 'infected' or 'virus'.
Portuguese Brazil
Русский
укра?нська
Nederlands
Espa?ol (Latin America)
Server load
About VirSCAN
VirSCAN.org is a FREE on-line scan service, which checks uploaded files for malware, using antivirus engines, indicated in the VirSCAN list. On uploading files you want to be checked, you can see the result of scanning and how dangerous and harmful/harmless for your computer those files are. VirSCAN.org cannot replace antivirus software on your computer. VirSCAN is not supposed and able to protect your computer from malware. VirSCAN only scans files, which may contain viruses, trojans, backdoors, spyware, dialers. However, VirSCAN does not bear responsibilty for the results of scanning. Even if all the AV engines, included to VirSCAN fail to detect any kind of malware in the file you upload, it does not guarantee its being clean and safe for your computer. Some anti-virus engines may define the files you will upload as malware, but it may turn out to be a false positive. Due to the platform and the engine version, the scan report can't show the actual abilities of antivirus vendors. There are possible situations when VirSCAN fails to detect a real malware, but AV vendor, indicated in the test is capable of finding malware, or on the contrary, VirSCAN detects malware, but the AV engine fails to do it. All the examples, mentioned above may occur, so VirSCAN does not bear any responsibilty for the results of scanning.
Scanner Information
Engine Ver
Last update(CST)
Korea-South
AVL SDK 2.0
9.0.0.4799
9.0.0.4799
4.1.3.52192
bitdefender
5.0.2.3300
1.000, 56.894, 56.829, 56.853
6.5.1.5418
Korea-South
V1.32.31.0
9.500-1005
3.9.2671.2
3.9.2671.2
Korea-South
17.47.17308
1.0.2.2108
3.12.29.5 beta
3.12.29.5 beta
virusbuster
15.0.985.0
Last Scanned File List
File Name (File Size)
Scan results (Suspicious degree)
Found nothing
Found nothing
Found nothing
File upload
Please not close this windows,
If you do not have to upload response time, make sure you upload files less than 20M
You can view the results of the last scan or rescan}

我要回帖

更多关于 自动报警系统设置场所 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信