1。前言随着互联网和云计算的快速发展,越来越多的企业系统架构变得越来越复杂。而且迭代的速度也很快。随着业务量和流量的增长,庞大的业务系统架构即将面临一系列问题,【14个Linux系统安全小技巧,总有办法用!】同时,也是企业快速发展需要解决的痛点。复杂庞大的业务系统架构给运维增加了一定的难度和复杂度。需要监控大量业务应用和模块的API接口状态和运行情况。各种监测数据的采集、分析、整理费时费力,急需统一展示(可视化)。业务系统运行状态的周报、月报数据难以统计和导出。快速发现和定位故障点,降低业务中断率势在必行。不仅是企业管理者面临的问题,也给企业的技术人员带来了一定的维护压力。一个有效的监控系统迫在眉睫。画外音:这也解释了为什么越来越多的公司在使用监控系统。2、什么是监控系统?简单的说,监控系统就是集应用、服务或系统故障发现、故障预警、故障定位、运行状态显示等多种功能为一体的解决方案。也可以称为系统。监控系统是整个运维过程中,乃至整个产品生命周期中最重要的环节。事前提供故障预警和检测,事后提供详细数据,便于问题的跟踪和定位。监控系统作为成熟的运维产品,有很多开源实现可供选择。3.监控系统的目标对于监控的使用,首先要确定目标是什么,需要达到什么效果。笔者根据实际工作经验总结如下:实现对系统、服务或平台运行状态的实时不间断监控,持续提前响应系统、服务或平台的运行状态信息。快速定位故障原因,最终保障系统持续、稳定、安全运行数据可视化统计、导出、归档(历史数据可追溯)4、如何使用监控首先需要了解运维,被监控对象的工作原理和过程。监控对象的哪些指标,如:服务可用性、端口状态、网卡内外流量等,定义了监控阈值告警范围和告警级别,如:有多少内存可用,需要告警?需要报警多少磁盘空间使用率?建立完整的故障处理流程体系,如:紧急故障、非紧急故障、一般故障等处理方法和流程五、监控流程1、如何采集数据?收集什么数据?2、存储数据的介质,如:MySQL数据库存储数据的时间限制,如:历史数据的保留时间3、如何展示数据,如:web界面?开发应用程序?显示什么数据4.故障报警电话报警邮件报警(目前流行)微信报警(目前流行)短信报警钉钉报警(目前流行)5.报警处理按故障级别处理:紧急和非紧急故障处理方案6.监控对象了解监控的目标和过程后,应该监控哪些内容?即监控的对象是什么。总的来说,实际环境中的基础监控可以分为以下几种,具体如下。1、CPU监控整体CPU使用率:用户态和内核态、空闲率等单个CPU使用率。2.磁盘监控磁盘容量:分区使用情况(已用和可用容量)磁盘IO磁盘数据读写效率3.内存监控内存使用情况:已用,可用4.网络监控内部网卡进出流量外部网卡进出流量TCP状态5.系统重要进程监控系统进程状态系统服务进程开销6.应用服务监控应用进程状态应用端口状态一些个性化需求7.硬件设备监控以往的设备监控时代,我们只是通过观察来判断状态灯肉眼可见的变化和频率一去不复返了。缺点大家都知道:重复、笨重、效率低、不适合大型设备集群。路由器状态交换机状态服务器状态8.安全监控安全监控一般使用第三方接收器较多,个人开发或开源的产品不多。攻击漏洞9.API接口监控复杂,API监控在大型系统中非常重要,主要监控API接口GET、POST、PUT等请求。图片来自网络接口可用性接口正确性接口响应时间7.监控工具介绍下面介绍一些在日常实际环境中常用的监控工具。每种工具在功能和特点上都有自己的优势和劣势,也正因为如此,它的应用场景也不同。目前在实际环境中应用最广泛的无外乎两大类:开源产品和商业产品。7.1开源产品1.Cacti官网:http://www.cacti.netCacti于2001年发布,是一款基于PHP、MySQL、SNMP和RRDTool开发的开源网络流量监控图形分析工具。它通过snmpget获取数据,使用RRDtool绘制图形。它的界面非常漂亮,在不知道rrdtool参数的情况下也可以轻松画出漂亮的图形。而且你根本不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能。您可以指定每个用户可以查看树结构、主机和任何图片。它还可以与LDAP结合用于用户身份验证。同时,您可以自己添加模板,让您添加自己的snmp_query和脚本!功能非常强大完善,界面友好。注:目前用的不多。2、Nagios官网:https://www.nagios.org/Nagios是一个开源的企业级监控系统,可以实现对系统CPU、磁盘、网络等参数以及SMTP、POP3、HTTP、NNTP等基本服务类型。另外,通过安装插件和编写监控脚本,用户可以实现应用监控,对大量的监控主机和多个对象部署分层监控架构。注意:Nagios配置灵活,可以自定义shell脚本,但是配置比较复杂,学习时间、精力和成本都比较大。3、Grafana官网:http://grafana.org/相关文章:打造优质、可视化的Docker容器监控系统平台Grafana目前应用广泛,其数据可视化展示功能非常强大。我们可以通过Prometheus收集的主机信息influxdb对其进行监控,不需要安装任何绘图插件,只需要在它的数据源中添加需要的数据,然后通过内置的插件显示你需要的数据即可-插件。注意:图形界面很酷,但是配置有点复杂,需要了解其内部算法。4.Zabbix官网:https://www.zabbix.com/部署配置:Linux系统-zabbix监控软件安装部署Zabbix是一款基于WEB界面的企业级开源运行,提供分布式系统监控和网络监控功能。维度平台也是国内网民使用最广泛的监控软件。CloudWisdom遇到的超过85%的用户都在使用Zabbix作为监控解决方案。Zabbix易于管理和配置,可以生成漂亮的数据图。其自动发现功能大大降低了日常管理的工作量。丰富的数据采集方式和API接口,让用户可以灵活采集数据,分布式系统架构支持监控。更多设备。理论上,通过Zabbix提供的插件架构,可以满足企业的任何需求。注:上手容易,使用方便,功能强大,而且开源免费,尤其是它的自动发现功能非常强大。数据统计功能需要二次开发。5.Open-falcon(小米开源产品)官网:http://open-falcon.org/Open-falcon是小米运维团队从互联网企业需求出发,基于多年运维经验,DEVS结合SRE、SA,结合DEVS的经验和反馈,开发了一套面向互联网的企业级开源监控产品。自动发现,支持falcon-agent,snmp,支持用户主动推送,自定义插件支持每周期亿级数据采集,告警判断,历史数据存储和查询高效入口,支持策略模板,模板继承和Coverage,多种告警方式,支持回调调用,支持单机200万个metrics的上报、归档、存储使用rrdtool的数据归档策略,秒级返回数百个metrics一年的历史数据多维度数据展示,自定义Screen目前支持Linux、Windows、Mysql、Redis、Memache、RabbitMQ以及通过各种插件进行交换机监控。6.Lepus官网:http://www.lepus.cc/ 简单、直观、强大的开源数据库监控系统。Lepus监控系统部署配置:强大的开源企业级数据库监控工具LepusMySQL/Oracle/MongoDB/Redis一站式性能监控,企业级数据库监控工具首选。注意:中文开源软件,监控mysql和redis可以精确到sql语句,因为只监控数据库和非关系型数据库,监控项不能统一,不能和其他监控平台结合,适用范围小。7.2商用产品1.听云官网:http://www.tingyun.com听云是帮助客户实时监控和定位多维度、复杂的性能问题,从崩溃报告、交互缓慢到网络环境错误等。听云致力于从用户角度出发的IT管理创新服务,为不同行业提供终端用户端到端完整的应用链性能管理解决方案,帮助客户持续优化系统性能和用户体验,提升用户满意度和企业竞争力.2、监控宝官网:http://www.jiankongbao.com监控宝是云知微为用户提供IT性能监控(ITPerformanceMonitoring)的SaaS产品,包括网站监控、服务器监控、中间件监控、数据库监控、功能比如应用监控、API监控、页面性能监控等。包括免费版、畅享版和企业版,目前约有40万用户。监控宝app也是国内唯一提供移动监控服务的产品。注:监控宝通过全球300多个分布式监控节点主动监控分析网络的稳定性和可用性,支持http(https)、ftp、ping、udp、tcp、smtp、traceroute等协议、测量CDN效果和DNS状态,全网和区域性能趋势分析。最大的缺点是收费!3、阿里云监控官网:https://aliyun.com阿里云监控是一款免费的网站监控产品,可以监控站点和服务器,并提供多种报警方式:短信、旺旺、邮件。注:仅限阿里产品。8.总结(附思维导图)最终使用什么样的监控产品、监控方式、监控流程等,都需要根据实际生产环境需求。架构也是一个不断进化的过程,随着业务系统的迭代而迭代。本文可能不适合所有企业架构,比如数据量大、业务流量大、预警要求高的场景。本文只是对监控系统做一个初步宏观的介绍和了解,让大家了解一个监控系统或者监控平台是如何从0到1进化的。构建监控报警是一条漫长而连续的路,有很多坑。本文介绍的一些基本方法和规则仍然可以遵循。同时也欢迎小伙伴们留言分享自己在运维监控系统建设路上的点点滴滴!注:如需此图原文件,可联系移民哥。点击-->民工技术之路关注微信公众号,对话框回复关键词:1024即可获取最新2048G技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELKStack、机器学习、BAT面试精讲视频等。
