随间互联网、云计算的飞速发展,愈来愈多的企业系统架构愈来愈复杂,且迭代的速度也为之迅速。随着业务量、流量的增加,庞大的业务系统架构即将面临一系列的问题,【14个Linux系统安全小妙招,总有一招用的上!】同时也是企业飞速发展所需解决的痛点。mysql
不只企业管理者面临的问题,同时也给企业的技术人员带来必定维护压力,一个行之有效监控体系迫在眉睫。ios
画外音:这也就解释了为何愈来愈多的企业都在使用监控系统。web
简单来讲,监控系统就是一套解决应用、服务或系统故障发现、故障预警、故障定位,运行状态展现等多种功能融合一体的一个解决文案。也能够称之为一套系统。面试
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,过后提供翔实的数据用于追查定位问题。监控系统做为一个成熟的运维产品,业界有不少开源的实现可供选择。redis
对于使用监控来讲,首先,得确立目标是什么,须要达到什么的效果,这才是重点。笔者根据实际工做经验总结以下:算法
一、收集数据sql
二、存储数据shell
三、展现数据数据库
四、故障报警segmentfault
五、告警处置
了解完监控的目标、流程以后,还须要了解到底监控哪些内容?也就是被监控的对象是哪些。通常实际环境中基本监控能够分为如下几种,以下。
一、CPU监控
二、磁盘监控
三、内存监控
四、网络监控
五、系统重要进程监控
六、应用服务监控
七、硬件设备监控
以往对设备监控这块,咱们单凭肉眼观察其状态灯的变化与变化频率来判断的时代一去不复返了,劣势你们都知道:重复、繁重、效率低下,并且还不适用于大规模设备集群。
八、安全监控
安全监控通常使用第三方接收较多,我的开发或开源产品很少。
九、API接口监控
复杂的、大型系统中API监控很是重要,主是针对监控API接口GET、POST、PUT等请求。
图片来源于网络
下面介绍下,目前平常实际环境中经常使用的一些监控工具。每一个工具的功能、特性都各有千秋,也因如此,都有着不一样的应用场景。目前,实际环境应用最多的无非两大类:开源产品、商用产品。
7.1 开源产品
一、Cacti
官方网站:http://www.cacti.net
发布于2001年, Cacti 是一款开源的基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。它经过snmpget来获取数据,使用 RRDtool绘画图形,它的界面很是漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。并且你彻底能够不须要了解RRDtool复杂的参数。它提供了很是强大的数据和用户管理功能,能够指定每个用户能查看树状结 构、host以及任何一张图,还能够与LDAP结合进行用户验证,同时也能本身增长模板,让你添加本身的snmp_query和script!功能很是强大完善,界面友好。
注:目前使用很少。
二、Nagios
Nagios是一款开源的企业级监控系统,可以实现对系统CPU、磁盘、网络等方面参数的基本系统监控,以及 SMTP,POP3,HTTP,NNTP等各类基本的服务类型。另外经过安装插件和编写监控脚本,用户能够实现应用监控,并针对大量的监控主机和多个对象 部署层次化监控架构。
注:Nagios配置灵活,能够自定义shell脚本,但配置复杂,学习时间、精力和成本比较大。
三、Grafana
官方网站:http://grafana.org/
Grafana目前使用比较普遍,它的数据可视化的展现功能很是强大,咱们能够经过influxdb监控,Prometheus采集的主机信息,并且还不须要安装任何绘图插件,只须要将须要的数据加入到它的数据源中便可,而后经过内置的插件来展现你所须要的数据。
注:图形化界面很是酷炫,配置稍复杂,须要了解其内部算法。
四、Zabbix
Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件,云智慧遇到的85%以上用户在使用Zabbix作监控解决方案。
Zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻平常管理的工做量,丰富的数据采集方式和API接口可让用户灵活进行数据采集,而分布式系统架构能够支持监控更多的设备。理论上,经过 Zabbix提供的插件式架构,能够知足企业的任何需求。
注:入门容易、上手简单、功能强大而且开源免费,特别是其自动发现功能很是强大。数据统计功能须要二次开发。
五、Open-falcon (小米开源产品)
Open-falcon是小米运维团队从互联网公司的需求出发,根据多年的运维经验,结合SRE、SA、DEVS的使用经验和反馈,开发的一套面向互联网的企业级开源监控产品。
六、Lepus(天兔)
官方网站:http://www.lepus.cc/
简洁、直观、强大的开源数据库监控系统。
Lepus监控系统部署配置:强大的开源企业级数据库监控利器Lepus
MySQL/Oracle/MongoDB/Redis一站式性能监控,企业级数据库监控工具首选。
注:中文开源软件,监控mysql和redis能够精确到sql语句,由于只有监控数据库和非关系数据库,监控项不能统一,不能结合其余监控平台,适用范围较小。
7.2 商用产品
一、听云
官方网站:http://www.tingyun.com
听云是帮助客户实时监控定位从崩溃报错、慢交互到网络环境出错等多维度复杂的性能问题。听云致力于用户视角的IT管理创新服务,为不一样行业提供最终用户端到端的完整应用链的性能管理解决方案,帮助客户不断优化系统性能及用户体验,提升用户满意度和企业竞争力。
二、监控宝
官方网站:http://www.jiankongbao.com
监控宝是云智慧为用户提供IT性能监控(IT Performance Monitoring)的SaaS产品,包含网站监控、服务器监控、中间件监控、数据库监控、应用监控、API监控和页面性能监控等功能。包含免费版、畅 享版和企业版,目前用户约40万,监控宝app也是国内惟一提供移动监控服务的产品。
注:监控宝经过遍及全球的300多个分布式监测节点,对网络进行稳定性和可用性的主动监控和实时分析,支持http(https)、ftp、ping、udp、tcp、smtp、traceroute等多种协议,测量CDN效果及DNS状态,全网全地域性能趋势分析。最大的缺点就是收费!
三、阿里云监控
官方网站:https://aliyun.com
阿里云监控是一款免费网站监控产品,可监控站点和服务器,并提供多种告警方式:短信,旺旺,邮件。
注:只限阿里产品。
8.总结(附思惟导图)
最终使用何种监控产品,监控方法,监控流程等,一切都须要以实际生产环境需求为主。
架构也是不断在演变的过程,随着业务系统的迭代而迭代。此文章不必定适合全部的企业架构,好比说:大数据量、大规模业务流量、对预警有较高要求的场景。
本文只是对监控体系作一个初步的宏观的基础介绍与认识,让你们知道一个监控体系或监控平台如何从0到1的一个演变过程。建设监控告警是一条持续且漫长的路,坑也不少,本文介绍的一些基本的方法和规律仍然是能够遵循的。
同时,也欢迎小伙伴们留言分享你的运维监控体系构建之路上的点点滴滴!
注:须要此图原版文件的可联系民工哥。
点击--> 民工哥技术之路 关注微信公众号,对话框回复关键字:1024 能够获取一份最新整理的 2048G 技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELK Stack、机器学习、BAT面试精讲视频等。