以下内容已屏蔽图片优化访问速度 |
---|
[IMG] 1.前言 随间互联网、云计算的飞速发展,越来越多的企业系统架构越来越复杂,且迭代的速度也为之迅速。随着业务量、流量的增长,庞大的业务系统架构即将面临一系列的问题,同时也是企业飞速发展所需解决的痛点。 复杂庞大的业务系统架构,给运行维护增加一定的难度与复杂度。 大量服务应用、模块的API接口的状态运行情况需要监测。 各类监控数据的收集、分析、整理耗时、费力,统一展示(可视化)需求迫切。 业务系统运行状态周报、月报数据难以统计、导出。 故障点的快速发现与定位,减少业务中断率势在必行。 不仅企业管理者面临的问题,同时也给企业的技术人员带来一定维护压力,一个行之有效监控体系迫在眉睫。 画外音:这也就解释了为什么越来越多的企业都在使用监控系统。 2.什么是监控系统 简单来说,监控系统就是一套解决应用、服务或系统故障发现、故障预警、故障定位,运行状态展示等多种功能融合一体的一个解决文案。也可以称之为一套系统。 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。 3.监控系统的目标 对于使用监控来说,首先,得确立目标是什么,需要达到什么的效果,这才是重点。笔者根据实际工作经验总结如下: 对系统、服务或平台的运行状态实行实时不间断监控 不间断实时反应系统、服务或平台的运行状态信息 提前预知可能存在的故障风险 实现故障预警报警功能 通过监控数据快速定位故障原因 最终保证系统持续、稳定、安全运行 状态数据可视化与统计、导出、归档(历史数据可追溯) 4.如何使用监控 首先需要了解被监控对象的运行、工作原理与过程 确立需要监控被监控对象的哪些指标,如:服务的可用性、端口状态,网卡的内外流量等 定义监控阀值报警范围、报警等级,如:内存可用剩余多少需要报警?磁盘空间使用率达到多少需要报警? 建立完善的故障处理流程体系,如:紧急故障、非紧急故障、一般故障等处理方法与流程 5.监控流程 1、收集数据 通过什么方式收集数据? 收集哪些数据? 2、存储数据 存储数据的介质,如:MySQL数据库 存储数据的时限,如:历史数据的保留时长 3、展示数据 以何种方式展示,如:web界面?开发APP? 展示哪些数据 4、故障报警 电话报警 邮件报警(目前流行) 微信报警(目前流行) 短信报警 钉钉报警(目前流行) 5、告警处置 根据故障等级处理:紧急、非紧急 设定的故障处理预案 6.监控对象 了解完监控的目标、流程之后,还需要了解到底监控哪些内容?也就是被监控的对象是哪些。一般实际环境中基本监控可以分为以下几种,如下。 1、CPU监控 CPU整体使用情况:用户态与内核态,空闲率等 单个CPU的使用情况 2、磁盘监控 磁盘容量:分区使用量(已用与可用容量) 磁盘IO 磁盘的数据读写效率 3、内存监控 内存使用量:已用、可用 4、网络监控 内网卡出入流量 外网卡出入流量 TCP状态 [IMG] 5、系统重要进程监控 系统进程状态 系统服务进程开销 6、应用服务监控 应用的进程状态 应用端口状态 一些个性化的需求 7、硬件设备监控 以往对设备监控这块,我们单凭肉眼观察其状态灯的变化与变化频率来判断的时代一去不复返了,劣势大家都知道:重复、繁重、效率低下,而且还不适用于大规模设备集群。 路由器状态 交换机状态 服务器状态 8、安全监控 安全监控一般使用第三方接收较多,个人开发或开源产品不多。 攻击 漏洞 9、API接口监控 复杂的、大型系统中API监控非常重要,主是针对监控API接口GET、POST、PUT等请求。 [IMG] 图片来源于网络 接口可用性 接口的正确性 接口的响应时间 7.监控工具介绍 下面介绍下,目前日常实际环境中常用的一些监控工具。每个工具的功能、特性都各有千秋,也因如此,都有着不同的应用场景。目前,实际环境应用最多的无非两大类:开源产品、商用产品。 7.1 开源产品 1、Cacti 官方网站:[IMG]Cacti 是一款开源的基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,让你添加自己的snmp_query和script!功能非常强大完善,界面友好。 [IMG] 注:目前使用不多。 2、Nagios 官方网站:[IMG]SMTP,POP3,HTTP,NNTP等各种基本的服务类型。另外通过安装插件和编写监控脚本,用户可以实现应用监控,并针对大量的监控主机和多个对象 部署层次化监控架构。 [IMG] 注:Nagios配置灵活,可以自定义shell脚本,但配置复杂,学习时间、精力和成本比较大。 3、Grafana 官方网站:[IMG]Zabbix提供的插件式架构,可以满足企业的任何需求。 注:入门容易、上手简单、功能强大并且开源免费,特别是其自动发现功能非常强大。数据统计功能需要二次开发。 5、Open-falcon (小米开源产品) 官方网站:[IMG]商用产品 1、听云 官方网站:[IMG]Performance Monitoring)的SaaS产品,包含网站监控、服务器监控、中间件监控、数据库监控、应用监控、API监控和页面性能监控等功能。包含免费版、畅 享版和企业版,目前用户约40万,监控宝app也是国内唯一提供移动监控服务的产品。 [IMG] 注:监控宝通过遍布全球的300多个分布式监测节点,对网络进行稳定性和可用性的主动监控和实时分析,支持[IMG]个实战及面试常用 Shell 脚本编写 一组漫画完美总结互联网人生 ·end· —写文不易,你的转发就是对我最大的支持— 我们一起愉快的玩耍吧 [IMG] 目前40000+人已关注加入我们 [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] 关注公众号点击菜单“微信群” 入群与小伙伴一起交流吧! [IMG] 喜欢,就扫码关注给它增加一个读者吧! 点击【阅读原文】公众号所有的精华都在这里! |