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

本节内容

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

一、为什么要做监控? 

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

二、常用监控系统设计讨论

成熟的监控

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

三、监控系统需求讨论

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

网络层

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

系统层

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

应用层

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

业务逻辑层

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

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

服务A:

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

服务B:

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

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

报警阀值:

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

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

监控模板

linuxservices

  1. cpu
  2. disk
  3. memory

5.告警级别:

  • 不同的服务 因为业务重要程度不同,如果出了问题可以设置不同的报警级别

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

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

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

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

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

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

监控数据的处理

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

  

 

  

时间越长,越失真

2、报警处理

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

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

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

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

1、server 主动 监控 客户端

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

2、server 被动 接收 客户端

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

3、主流的:混合式

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

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

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

1、采用什么架构?

•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 ?

2、采用HTTP好处

1.接口设计简单

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

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

3、Http特性:

1.短连接

2.无状态

3.安全认证

4.被动通信

五、监控系统架构设计

 

转载于:https://www.cnblogs.com/luoahong/p/7223580.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS:练习题中如何用技术去实现一个连线题

一、介绍 本人做的app涉及的是教育行业,所以关于练习题的开发肯定是家常便饭。例如,选择题、填空题、连线题、判断题等,每一种题型都需要技术去实现,没啥多大难度,这里呢,就给出实现连线题的核心代码吧。过…

18 Context与组合的应用场景与使用问题

contextType 指定context类型为创建的上下文,此时不需要用Consumer组件包裹,使用this.context即可访问会向上找最近的上下文并取值最适合的场景:杂乱无章的组件都需要同一些数据;若单纯为了不层层传递属性,使用contex…

http --- 共享加密(对称加密)的几个概念

使用互联网进行数据传输时,可能会产生以下四个问题: 1. 窃听: A向B发送的消息,有可能在传输过程中被X窃听到 2. 假冒: A收到来自B的消息有可能是X冒充的 3. 篡改: A确实收到来自B的消息,但是该消息有可能被X篡改了 4. 事后否认:B确实收到了来自A的消息,但是A是恶意用户,当A像B…

213. House Robber II 首尾相同的偷窃问题

[抄题]: You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are arranged in a circle. That means the first house is the neighbor of…

原型链

<!DOCTYPE html><html><head lang"en"> <meta charset"UTF-8"> <title></title></head><body><script> /* 原型中的默认属性 原型链&#xff1a;当调用构造函数&#xff08;Fn()&a…

http --- 公开密钥加密(非对称加密)的几个概念

公开密钥加密: 公钥加密,私钥解密 公开密钥加密的处理流程: 1. A准备通过互联网向B发送数据 2. B生成公钥P和私钥S 3. B将P发送给A 4. A使用P进行加密,并将密文通过互联网发送给B 5. B使用S进行解密得到数据公钥加密的更具体的栗子: 1.B首先准备好公钥P和私钥S 2.B将公钥发布…

19、20 Context API

安装React Dev Tool Context对象.displayName 使用别名 不使用别名 React.createContext 创建指定的Context对象组件会找离自己最近的Provider&#xff0c;获取其value变量名都叫value的情况&#xff0c;就近取AContext变量名有所区分&#xff0c;两个value都可以获取可以…

01-spring配置详解

1 bean元素 <!--将User对象交给spring容器进行管理 --><!-- Bean元素:使用该元素描述需要spring容器管理的对象class属性:被管理对象的完整类名.name属性:给被管理的对象起个名字.获得对象时根据该名称获得对象. 可以重复.可以使用特殊字符.id属性: 与name属性一模一…

第八模块:算法设计模式、企业应用 第2章 企业应用工具学习

第八模块&#xff1a;算法&设计模式、企业应用 第2章 企业应用工具学习转载于:https://www.cnblogs.com/tqtl911/p/9131614.html

http --- 混合加密的具体过程

混合加密: 共享加密存在一个“共享密钥”无法安全告知服务端的问题.公开加密存在,加密、解密速度慢的问题.混合加密则同时使用了2种加密技术,具体过程如下: 1. B提前生成公钥P和私钥S,并将P发布到网上 2. A想(通过互联网)像B发送数据 3. A从互联网上获取B的公钥P,并使用P对共享…

Vite+Vue3页面空白、图标不显示问题解决

页面空白问题 由于项目部署在子文件夹下&#xff0c;因此需要配置vite.config.js const config {base: ./, }el-icon图标不显示、打包时mkdir无权限 在控制台Network看字体图标的请求&#xff0c;发现地址多了_assets&#xff0c;本以为需要重新配置publicDir&#xff0c;后…

在HTML打开已安装的App,未安装跳转到对应的下载链接

借鉴 HTML中判断手机是否安装某APP&#xff0c;跳转或下载该应用 function lookApp () {var ua navigator.userAgentvar isAndroid /(Android);?[\s/]([\d.])?/.test(ua)var isIpad /(iPad).*OS\s([\d_])/.test(ua)var isIpod /(iPod)(.*OS\s([\d_]))?/.test(ua)var is…

javascript --- 自定义数组的反序函数

想写一个自定义的_reverse函数,其作用是将传入的数组进行部分反序. 效果如下: 输入[1,2,3,4,5,6,7,8,9] 第一个将2~4个位置的数字反序 第二个将2~6个位置的数字反序. // js function _reverse(arr, s, e) {arr arr.join().slice(0,s) arr.join().slice(s,e).split().revers…

21 Fragment和短语法应用

React.Fragment jsx语法&#xff0c;相当于document.createDocumentFragment()创建文档碎片容器&#xff0c;优化渲染解决了没有根节点的问题<></>这种短语法也会声明React.Fragment但短语法不支持keyReact.Fragment只支持key属性&#xff0c;其余属性如事件等不支…

201521123004《软件工程》个人阅读作业1

task1Task2: 201521123004 林艺如 博客&#xff1a;https://www.cnblogs.com/dabaolyr/ 码云&#xff1a;https://gitee.com/dabao_lyr Task3&#xff1a;完成博客-阅读与思考 阅读参考材料&#xff0c;并回答下面几个问题&#xff1a; &#xff08;1&#xff09;回想一下你初入…

在sql当中为了让数据做缓存做with as的操作

今天看别人的代码&#xff0c;突然发现之前理解的sql的with as的用法有新的理解。 之前理解的with as只是想着做单表的union all 操作时才使用&#xff0c;今天发现在可以使用逗号做分割&#xff0c;做缓存不同的表数据。 下面的例子如下&#xff1a; WITH t1 AS (SELECT file_…

javascript --- 从数组中,找出比给定元素大一丁点的元素

目标如下: 从数组[1,3,2,4,5,6,7]中找到比第1个位置大一丁点的元素 function _findIndex(arr, j){let k -1;let key arr[j];for(let i j; i< arr.length; i) {if(arr[i] > key) {if( k ! -1){if(arr[i] < arr[k]) {k i;}} else {k i;}}}return k } let arr [1,…

22 React高阶组件

搭建服务端 yarn add express yarn add nodemon 在server目录下 npm init -y // 增加dev脚本"scripts": {"dev": "nodemon ./index.js"},引入 git HOC High Order Component 高阶组件&#xff0c;是组件的抽象HOC不是React提供的API&#xf…

PAT (Advanced Level) 1140~1143:1140模拟 1141模拟 1142暴力 1143 BST+LCA

1140 Look-and-say Sequence&#xff08;20 分&#xff09; 题意&#xff1a;观察序列D, D1, D111, D113, D11231, D112213111, ...&#xff0c;显然后一个串是对前一个串每一小段连续相同的字母及其个数的描述。例如&#xff0c;D112213111是对D11231的描述&#xff0c;原因是…

AngularJS:表达式

ylbtech-AngularJS&#xff1a;表达式1.返回顶部 1、AngularJS 表达式 AngularJS 使用 表达式 把数据绑定到 HTML。 AngularJS 表达式 AngularJS 表达式写在双大括号内&#xff1a;{{ expression }}。 AngularJS 表达式把数据绑定到 HTML&#xff0c;这与 ng-bind 指令有异曲同…