自动化监控系统(一)需求分析、架构设计

  你们好,我叫大倪,出来工做快两年了,如今从事运维工做。我接触python已经有一年多了(边上班边学习),python是门很不错的语言(我也只接触过这一门),能够作不少事情,而我接触它,是由于想往自动化运维方向发展,学了这么久,总得有拿的出手的做品才行,那就写个自动化监控系统吧,不过我没从事过开发,本身确定搞不定的,这里我就借鉴(抄)Alex老师的需求分析、架构设计、表结构设计等等,别的本身实现。html

  下面这个连接是我买的视频,用的是Django web框架,python

http://edu.51cto.com/course/course_id-6208.htmlmysql

 

 

 

1、监控的项目
网络层面:
网络流量、延迟、基本存活状态
系统层面:
cpu\disk\ram\load\...
应用层:
mysql、tomcat、nginx、redis、django、ha-proxy、squid。。。cdn。。
业务层面:
pv、uv、订单总量。。。。。。
硬件层面监控:
磁盘、温度。。。。。。


2、优劣点:
从服务器的角度来说
主动监控:是监控服务器 器主动向客户端索取数据
好处:
一、不须要装客户端。
二、简单
坏处:
一、当客户端过多的时候,就出现了瓶颈(解决方法:经过分布式,用代理服务器)
二、不易灵活的定制各类监控插件

被动监控:是客户端主动向服务 器汇报数据
好处:对服务器端的压力小,
灵活的定制各类监控插件
延迟小
坏处:
一、须要装客户端。



3、监控系统需求讨论
一、可监控经常使用系统服务、应用、网络设备等。
二、一台主机上可监控多个不一样服务、不一样服务的监控间隔可不一样
三、同一个服务在不一样主机上的监控间隔、报警阀值可不一样。
四、能够批量的给一批主机添加、删除、修改要监控的服务。
五、告警级别:
不一样的服务 由于业务重要程度不一样,若是出了问题能够设置不一样的报警
能够指定特定的服务或告警级别的事件通知给特定的用户
告警级别的升级设定
6.历史数据 的存储和优化
● 实现用最少的空间占用量存储最多的有效数据

● 如何作到1s中以内取出一台主机上全部服务的5年的监控数据?

7. 数据可视化,如何作出简洁美观的用户界面?

8.如何实现单机支持5000+机器监控需求?

9.采起何种通讯方式?主动、被动?

10.如何实现监控服务器的水平扩展?



4、采用什么架构?
•Mysql
•主动通讯? Snmp,wget…
•被动通讯?Agent ---how to communicate with the monitor server
•Socket server –> Sockect client
•可否用现成的c/s架构? Rabbit mq, redis 订阅发布, http ?

采用HTTP好处
1.接口设计简单
2.容易水平扩展作分布式
3.Socket稳定成熟,省去较多的通讯维护精力

5、设计架构图:

相关文章
相关标签/搜索