分布式监控系统开发【day37】:需求讨论(一)

本节内容

  1. 为何要作监控? 
  2. 经常使用监控系统设计讨论
  3. 监控需求讨论
  4. 如何实现监控服务器的水平扩展?
  5. 监控系统架构设计

1、为何要作监控? 

  1. 熟悉IT监控系统的设计原理
  2. 开发一个简版的类Zabbix监控系统
  3. 掌握自动化开发项目的程序设计思路及架构解藕原则

2、经常使用监控系统设计讨论

成熟的监控前端

  1. Zabbix
  2. Nagios/cacti
  3. ganglia
  4. openfalcon go

3、监控系统需求讨论

1.可监控经常使用系统服务、应用、网络设备等mysql

网络层

  1. 网络质量
  2. 流量,丢包率、带宽

系统层

  1. cpu
  2. disk
  3. ram
  4. load
  5. port

应用层

  1. mysql 链接数
  2. nginx 并发数
  3. cdn 命中率
  4. 页面是否被篡改

业务逻辑层

  1. 每小时订单数
  2. 当前在线用户

2.一台主机上可监控多个不一样服务、不一样服务的监控间隔可不一样linux

服务A:

  1. cpu 30
  2. disk 90
  3. load 120

服务B:

  1. cpu 45
  2. ram 60
  3. mysql 20

3.同一个服务在不一样主机上的监控间隔、报警阈值可不一样ios

报警阀值:

  1. 重要的服务 cpu使用率超过80%就报警,要抄送给CTO
  2. 不重要重要的服务 cpu使用率超过100%报警,给运维工程师

4.能够批量的给一批主机添加、删除、修改要监控的服务nginx

监控模板redis

linuxservicessql

  1. cpu
  2. disk
  3. memory

5.告警级别:安全

  • 不一样的服务 由于业务重要程度不一样,若是出了问题能够设置不一样的报警级别

    1. 重要的服务,cup使用率打到80%,就报警
    2. 普通的服务,cup使用百分之98%,报警
  • 能够指定特定的服务或告警级别的事件通知给特定的用户

    1. 重要的服务,抄送给CTO
    2. 不重要的只发送给运维工程师
  • 告警的升级设定

  • 发送给底层运维工程师没处理,就发送给运维经理
  • 再过半个小时没处理,就发送给cto
  • 报警合并

                   有一个报警池,有一个脚本对池的分析服务器

6.历史数据 的存储和优化网络

  1. 实现用最少的空间占用量存储最多的有效数据
  2. 如何作到1s中以内取出一台主机上全部服务的5年的监控数据?

监控数据的处理

一、存下来,趋势图
大数据分析 ,视角越大,越失真

  

 

  

时间越长,越失真

二、报警处理

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

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

  1. 列式存储
  2. redis 支持集群,数据量大加机器就能够

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

一、server 主动 监控 客户端

  1. 好处:不用装客户端,使用全部的网络设备,snmp,配置简单
  2. 坏处:服务器压力大,不适合大型网络环境,不能监控复杂的指标

二、server 被动 接收 客户端

  1. 好处:大型网络环境、监控复杂的指标、扩展能力强
  2. 坏处:装客户端、网络设备不适用、维护起来相对复杂一点

三、主流的:混合式

一、客户端知道监控什么指标?
客户端主动去问服务器我要监控什么

二、客户端扫描本地全部服务,所有汇报给服务器
openfalcon把机器上全部能检测到的都抓上[2014年自动检测到(支持一千多项)]

4、如何实现监控服务器的水平扩展?

一、采用什么架构?

•Mysql

  1. 数据量太大,mysql超过1千万条查询起来就特别慢,
  2. 我在看趋势图时前端要查好几分钟,为何zabbix的那么快?
  3. 他们是怎么作的?zabbix优秀是在2000-3000台还能够,要是上万台就会太慢
  4. 不要把你的监控数据存到mysql,由于会存在不少的问题

•主动通讯? Snmp,wget…

server 主动 监控 客户端

  1. 好处:不用装客户端,使用全部的网络设备,snmp,配置简单
  2. 坏处:服务器压力大,不适合大型网络环境,不能监控复杂的指标

•被动通讯?Agent ---how to communicate with the monitor server

server 被动 接收 客户端

  1. 好处:大型网络环境、监控复杂的指标、扩展能力强
  2. 坏处:装客户端、网络设备不适用、维护起来相对复杂一点

总结:主流的的仍是混合模式好

•Socket server –>  Sockect client

不能够,不少坑

•可否用现成的c/s架构? Rabbit mq, redis 订阅发布, http ?

二、采用HTTP好处

1.接口设计简单

2.容易水平扩展作分布式

3.Socket稳定成熟,省去较多的通讯维护精力

三、Http特性:

1.短链接

2.无状态

3.安全认证

4.被动通讯

5、监控系统架构设计

 

相关文章
相关标签/搜索