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


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

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

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

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


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

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



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

    ● 如何做到1s中之内取出一台主机上所有服务的5年的监控数据?

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

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

    9.采取何种通信方式?主动、被动?

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



    四、采用什么架构?
    •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稳定成熟,省去较多的通信维护精力

    五、设计架构图:






  • 相关阅读:
    SprimgMVC学习笔记(五)—— Controller方法返回值
    SprimgMVC学习笔记(四)—— @RequestMapping
    SprimgMVC学习笔记(三)—— 参数绑定
    SprimgMVC学习笔记(二)—— 整合Mybatis
    SprimgMVC学习笔记(一)—— SpringMVC入门
    mysql
    进程与线程
    xml
    生成器
    并发多线程
  • 原文地址:https://www.cnblogs.com/laonicc/p/6682595.html
Copyright © 2020-2023  润新知