分布式监控系统开发【day37】:需求讨论(一)
本节内容
- 为什么要做监控?
- 常用监控系统设计讨论
- 监控需求讨论
- 如何实现监控服务器的水平扩展?
- 监控系统架构设计
一、为什么要做监控?
- 熟悉IT监控系统的设计原理
- 开发一个简版的类Zabbix监控系统
- 掌握自动化开发项目的程序设计思路及架构解藕原则
二、常用监控系统设计讨论
成熟的监控
- Zabbix
- Nagios/cacti
- ganglia
- openfalcon go
三、监控系统需求讨论
1.可监控常用系统服务、应用、网络设备等
网络层
- 网络质量
- 流量,丢包率、带宽
系统层
- cpu
- disk
- ram
- load
- port
应用层
- mysql 连接数
- nginx 并发数
- cdn 命中率
- 页面是否被篡改
业务逻辑层
- 每小时订单数
- 当前在线用户
2.一台主机上可监控多个不同服务、不同服务的监控间隔可不同
服务A:
- cpu 30
- disk 90
- load 120
服务B:
- cpu 45
- ram 60
- mysql 20
3.同一个服务在不同主机上的监控间隔、报警阈值可不同
报警阀值:
- 重要的服务 cpu使用率超过80%就报警,要抄送给CTO
- 不重要重要的服务 cpu使用率超过100%报警,给运维工程师
4.可以批量的给一批主机添加、删除、修改要监控的服务
监控模板
linuxservices
- cpu
- disk
- memory
5.告警级别:
不同的服务 因为业务重要程度不同,如果出了问题可以设置不同的报警级别
- 重要的服务,cup使用率打到80%,就报警
- 普通的服务,cup使用百分之98%,报警
可以指定特定的服务或告警级别的事件通知给特定的用户
- 重要的服务,抄送给CTO
- 不重要的只发送给运维工程师
告警的升级设定
- 发送给底层运维工程师没处理,就发送给运维经理
- 再过半个小时没处理,就发送给cto
报警合并
有一个报警池,有一个脚本对池的分析
6.历史数据 的存储和优化
- 实现用最少的空间占用量存储最多的有效数据
- 如何做到1s中之内取出一台主机上所有服务的5年的监控数据?
监控数据的处理
1、存下来,趋势图
大数据分析 ,视角越大,越失真
时间越长,越失真
2、报警处理
7. 数据可视化,如何做出简洁美观的用户界面?
8.如何实现单机支持5000+机器监控需求?
- 列式存储
- redis 支持集群,数据量大加机器就可以
9.采取何种通信方式?主动、被动?
1、server 主动 监控 客户端
- 好处:不用装客户端,使用所有的网络设备,snmp,配置简单
- 坏处:服务器压力大,不适合大型网络环境,不能监控复杂的指标
2、server 被动 接收 客户端
- 好处:大型网络环境、监控复杂的指标、扩展能力强
- 坏处:装客户端、网络设备不适用、维护起来相对复杂一点
3、主流的:混合式
1、客户端知道监控什么指标?
客户端主动去问服务器我要监控什么
2、客户端扫描本地所有服务,全部汇报给服务器
openfalcon把机器上所有能检测到的都抓上[2014年自动检测到(支持一千多项)]
四、如何实现监控服务器的水平扩展?
1、采用什么架构?
•Mysql
- 数据量太大,mysql超过1千万条查询起来就特别慢,
- 我在看趋势图时前端要查好几分钟,为什么zabbix的那么快?
- 他们是怎么做的?zabbix优秀是在2000-3000台还可以,要是上万台就会太慢
- 不要把你的监控数据存到mysql,因为会存在很多的问题
•主动通信? Snmp,wget…
server 主动 监控 客户端
- 好处:不用装客户端,使用所有的网络设备,snmp,配置简单
- 坏处:服务器压力大,不适合大型网络环境,不能监控复杂的指标
•被动通信?Agent ---how to communicate with the monitor server
server 被动 接收 客户端
- 好处:大型网络环境、监控复杂的指标、扩展能力强
- 坏处:装客户端、网络设备不适用、维护起来相对复杂一点
总结:主流的的还是混合模式好
•Socket server –> Sockect client
不可以,很多坑
•能否用现成的c/s架构? Rabbit mq, redis 订阅发布, http ?
2、采用HTTP好处
1.接口设计简单
2.容易水平扩展做分布式
3.Socket稳定成熟,省去较多的通信维护精力
3、Http特性:
1.短连接
2.无状态
3.安全认证
4.被动通信
五、监控系统架构设计
转载于:https://www.cnblogs.com/luoahong/p/7223580.html
分布式监控系统开发【day37】:需求讨论(一)相关推荐
- Python自动化开发基础 分布式监控系统开发实战 day8-李杰-专题视频课程
Python自动化开发基础 分布式监控系统开发实战 day8-10994人已学习 课程介绍 从0基础开始讲解Python语法.流程控制.函数式编程.面向对象开发等重要的Python开发 ...
- 分布式监控系统开发【day38】:监控trigger表结构设计(一)
一.需求讨论 1.zabbix触发器的模板截图 1.zabbix2.4.7 2.zabbix3.0 2.模板与触发器关联的好处 好处就是可以批量处理,比如我说我有1000机器都要监控cpu.内存.IO ...
- 分布式监控系统开发【day38】:报警阈值程序逻辑解析(三)
一.需求讨论 1.请问如何解决延迟问题 1000台机器,每1分钟循环一次但是刚好第一次循环第一秒刚处理完了,结果还没等到第二分钟又出问题,你那必须等到第二次循环,假如我这个服务很重要必须实时知道, 每 ...
- 分布式监控系统开发【day38】:监控数据如何画图(九)
一.画图代码 1.收集处理数据 class GraphGenerator(object):'''generate graphs'''def __init__(self,request,redis_ob ...
- 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯
DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...
- 华为吴晟:分布式监控系统的设计与实现
微服务架构其实就是将单一的应用程序划分成为一组小的服务,其中每个服务都是独立的业务单元,同时又能够被独立开发.运行.测试以及部署.简单来说,它的本质其实就是拆分和独立,这也决定了微服务的部署应该是分布 ...
- cat全链路监控_CAT分布式监控系统(一):CAT功能介绍 CAT监控系统是什么、能做什么?...
CAT分布式监控系统(一):CAT监控系统功能介绍 本文概要: 1.CAT监控系统是什么. 2.CAT监控系统能做什么,能监控些什么. 下面有些截图是CAT 2.0版本的,但和3.0版本没什么区别的. ...
- 智能农业大棚监控系统开发
近年来,我国农业温室大棚得到了迅速发展,但这些大棚的管理主要是由人工来完成的,管理的技术含量很低.随着温室种植面积的迅速增加,单纯依靠人工管理已经不能满足高效农业生产的需求.随着物联网技术的进一步发展 ...
- CAT分布式监控系统:CAT功能介绍,CAT监控系统是什么,能做什么?
CAT分布式监控系统(一):CAT监控系统功能介绍 本文概要: 1.CAT监控系统是什么. 2.CAT监控系统能做什么,能监控些什么 ...
最新文章
- 基于corosync+pacemaker实现主从高可用集群
- mac好用大java_2020 最后,搞个 Mac 玩玩
- 解决:Cannot read property ‘component‘ of undefined ( 即 vue-router 0.x 转化为 2.x)
- 信息学奥赛C++语言:求和4
- CentOS7 搭建基于DPDK的FD.io VPP环境-1
- oracle 的wecate函数,1.Oracle中decode()函数用法
- NBR100多IP出口解决方案的配置方法
- 如何修改以及删除数据库中的表
- hdu 3065 病毒侵袭持续中
- java开发规范-控制语句
- 移动智能终端之国产操作系统(笔记三)
- SpringBoot实现短信验证码校验
- C++ 小游戏 视频及资料集(3)
- vc++实现内核级进程保护
- VBA遍历字典对象中独门秘籍
- 一木禾网盘下载分析及批量获取下载地址的实现(上)
- Scrapy 实战之爬取妹子图
- 【内网安全】——CS操作指南(一)
- Java开源项目(备查)
- Cache、Cookie、Session、Token 傻傻分不清楚
热门文章
- ARM Cortex-M3相比于ARM其他系列微控制器的优势和特点
- adb devices无法找到魅族MX5的解决方法
- python3(八)sys模块
- phpfpm内存越来越高_硬件集成度越来越高 未来DIY玩法方向已定?
- asp.net mvc项目实例_降龙-第13章:MVC开发准备
- 状态机 python_Python状态机设计
- ajax刷新iframe页面,通过iframe实现简单的ajax表单提交
- telnet到设备里 php_PHP自动生成设备周检修计划
- python压缩文件不带根路径_python 压缩文件(解决压缩路径问题)
- 【caffe-Windows】cifar实例编译之model的使用