这篇文章,我将对监控体系的基础知识、原理和架构做一次系统性整理,同时还会对几款最常用的开源监控产品做下介绍,以便大家选型时参考 。内容包括3部分:
必知必会的监控基础知识主流监控系统介绍监控系统的选型建议
一、必知必会的监控基础知识
我们可以理解监控系统就像我们古代打战的哨兵一样,哨兵的角色非常重要,敌人来了,哨兵会第一时间发出预警(吹笛、打鼓、放烟),让守城的战士能够最快的时间处理,应对 。
文章插图
那对于我们应用系统而言,监控系统就像我们第三只眼,如果有应用系统出现问题,我们可以通过监控系统看是哪里出现问题,是redis挂了,还是说服务器内存满了,有监控系统我们可以很轻松、快速的定位问题 。
甚至我们可以设置预警,对一些将要出现的问题进行提前预防处理,及时避免问题的发生 。
1、监控系统的作用
文章插图
1)帮助定位故障
在发生故障时,我们可以通过查看监控系统的各项指标数据,辅助故障分析和定位 。
2)预警减少故障率
对于即将可能产生的故障能够及时发出预警信息,做好提前预防处理 。
3)辅助容量规划
为服务器、中间件以及应用集群的容量规划提供数据支撑 。
4)辅助性能调优
JVM垃圾回收次数、接口响应时间、慢SQL等等都可以监控优化 。
2、常见的监控对象和指标都有哪些?
文章插图
1)服务器监控
CPU使用率、内存使用率、磁盘使用率、磁盘读写的吞吐量、网络出入流量等等 。
2)MySQL监控
TPS、QPS、数据库连接数、慢SQL、InnoDB缓冲池命中率等等 。
3)Redis监控
内存使用率、缓存命中率、key值总数、Redis响应请求时间、客户端连接数、持久性指标等等 。
4)MQ监控
连接数、队列数、生产速率、消费速率、消息堆积量等等 。
5)应用监控
- HTTP接口:URL存活、请求量、耗时、异常量 。
- JVM :GC次数、GC耗时、各个内存区域的大小、当前线程数、死锁线程数 。
- 线程池:活跃线程数、任务队列大小、任务执行耗时、拒绝任务数 。
文章插图
1)数据采集
采集的方式有很多种,包括日志埋点进行采集,JMX标准接口输出监控指标,被监控对象提供REST API进行数据采集(如Hadoop、ES),系统命令行,统一的SDK进行侵入式的埋点和上报等 。
2)数据传输
将采集的数据以TCP、UDP或者HTTP协议的形式上报给监控系统,有主动Push模式,也有被动Pull模式 。
3)数据存储
有使用MySQL、Oracle等关系数据库存储的,也有使用时序数据库RRDTool、OpentTSDB、InfluxDB存储的,还有使用HBase存储的 。
4)数据展示
数据指标的图形化展示 。
5)监控告警
灵活的告警设置,以及支持邮件、短信、IM等多种通知通道 。
二、市面上的一些常见监控系统比较
下面再来认识下主流的开源监控系统,由于篇幅有限,我挑选了3款使用最广泛的监控系统:Zabbix、Open-Falcon、Prometheus,会对它们的架构进行介绍,同时总结下各自的优劣势 。
1、Zabbix介绍
文章插图
Zabbix 1998年诞生,核心组件采用C语言开发,Web端采用php开发 。它属于老牌监控系统中的优秀代表,监控功能很全面,使用也很广泛,差不多有70%左右的互联网公司都曾使用过 Zabbix 作为监控解决方案 。
先来了解下Zabbix的架构设计:
文章插图
Zabbix Server
【一篇吃透监控系统:主流工具选型及落地场景参考】
推荐阅读
- 小狗学叫是一篇什么故事用了什么修辞手法?小狗学叫是一篇什么故事寓言还是童话_1
- 监控系统都是由哪些设备组成的 监控系统设备
- 小羊的儿童故事?写一篇聪明的小羊的童话故事
- 网友|一篇虎扑小作文 竟意外引发一场“寻爹之旅”
- 对孩子教育态度与方法写一篇论文 对孩子教育态度与方法
- 小学三年级作文场景描写作文?用场景描写和细节描写写一篇作文
- 小狗学叫是一篇什么故事用了什么修辞手法-小狗学叫是一篇什么故事作者用-
- 小狗学叫是一篇什么故事,作者用什么的修辞手法?小狗学叫是一篇什么故事用了什么修辞手法
- 分享一篇小学生心理健康案例 小学生心理咨询案例
- 一篇班主任学期工作总结 班主任学期工作总结