监控工程中无监控不运维之监控工程设计思路

有了好的监控工具,也需要一个好的监控工程的设计思路来实现,否则再好的监控工具也无法发挥出他的真实能力。

一、统一运维监控工程平台设计思路

运维监控工程平台不是简单的下载一个开源工具,然后搭建起来就行了,它需要根据监控的环境和特点进行各种整合和二次开发,以达到与自己的需求完全吻合的程度。那么下面就谈谈运维监控工程平台的设计思路。

构建一个智能的运维监控工程平台,必须以运行监控和故障报警这两个方面为重点,将所有业务系统中所涉及的网络资源、硬件资源、软件资源、数据库资源等纳入统一的运维监控工程平台中,并通过消除管理软件的差别,数据采集手段的差别,对各种不同的数据来源实现统一管理、统一规范、统一处理、统一展现、统一用户登录、统一权限控制,最终实现运维规范化、自动化、智能化的大运维管理。

智能的运维监控工程平台,设计架构从低到高可以分为6层,三大模块,如下图:

数据收集层:位于最底层,主要收集网络数据、业务系统数据、数据库数据、操作系统数据等,然后将收集到的数据进行规范化并进行存储。

数据展示层:位于第二层,是一个Web展示界面,主要是将数据收集层获取到的数据进行统一展示,展示的方式可以是曲线图、柱状图、饼状态等,通过将数据图形化,可以帮助运维人员了解一段时间内主机或网络的运行状态和运行趋势,并作为运维人员排查问题或解决问题的依据。数据提取层:位于第三层,主要是对从数据收集层获取到的数据进行规格化和过滤处理,提取需要的数据到监控报警模块,这个部分是监控和报警两个模块的衔接点。报警规则配置层:位于第四层,主要是根据第三层获取到的数据进行报警规则设置、报警阀值设置、报警联系人设置和报警方式设置等。报警事件生成层:位于第五层,主要是对报警事件进行实时记录,将报警结果存入数据库以备调用,并将报警结果形成分析报表,以统计一段时间内的故障率和故障发生趋势。用户展示管理层:位于最顶层,是一个Web展示界面,主要是将监控统计结果、报警故障结果进行统一展示,并实现多用户、多权限管理,实现统一用户和统一权限控制。

在这6层中,从功能实现划分,又分为三个模块,分别是数据收集模块、数据提取模块和监控报警模块,每个模块完成的功能如下:

数据收集模块:此模块主要完成基础数据的收集与图形展示。数据收集的方式有很多种,可以通过SNMP实现,也可以通过代理模块实现,还可以通过自定义脚本实现。常用的数据收集工具有Cacti、Ganglia等。

数据提取模块:此模板主要完成数据的筛选过滤和采集,将需要的数据从数据收集模块提取到监控报警模块中。可以通过数据收集模块提供的接口或自定义脚本实现数据的提取。监控报警模块:此模块主要完成监控脚本的设置、报警规则设置,报警阀值设置、报警联系人设置等,并将报警结果进行集中展现和历史记录。常见的监控报警工具有Nagios、Centreon等。

在了解了运维监控工程平台的一般设计思路之后,接下来详细介绍下如何通过软件实现这样一个智能运维监控系统。

下图是根据上图的设计思路形成的一个运维监控工程平台实现拓扑图,从图中可以看出,主要有三大部分组成,分别是数据收集模块、监控报警模块和数据提取模块,其中,数据提取模块用于其他两个模块之间的数据通信,而数据收集模块可以有一台或多台数据收集服务器组成,每个数据收集服务器可以直接从服务器群组收集各种数据指标,经过规范数据格式,最终将数据存储到数据收集服务器中。监控报警模块通过数据抽取模块从数据收集服务器获取需要的数据,然后设置报警阀值、报警联系人等,最终实现实时报警。报警方式支持手机短信报警、邮件报警等,另外,也可以通过插件或者自定义脚本来扩展报警方式。这样一整套监控报警平台就基本实现了。

监控工程中无监控不运维之监控工程设计思路_第1张图片

企业运维监控工程平台选型

1、中小企业监控工程平台选择Zabbix

Zabbix是一款综合了数据收集、数据展示、数据提取、监控报警配置、用户展示等方面的一款综合运维监控工程平台。

Zabbix学习入门较快,功能也很强大,是一个可以迅速用起来的监控软件,能够满足中小企业的监控报警需求,因此是中小型企业运维监控的首选平台。但是,Zabbix当监控服务器数量较多时,会产生很多问题,如监控数据不准确、报警超时等等问题,这是因为Zabbix对服务器性能要求较高,当监控的服务器数量超过500台后,监控性能急剧下降,此时需要进行分布式监控部署,并且需要提升监控服务器的性能。

安全性方面,Zabbix客户端的agent如果故障,收集到的数据将丢失,同时Zabbix Server也是单点,可能还需要对Zabbix Server做HA保证数据的安全和监控的高可用。

2、互联网大企业监控工程平台选择Ganglia+Centreon

开源监控软件组合应用+二次开发是大型互联网企业构建监控工程平台的一个基本策略,对于有海量服务器、多业务系统的复杂监控,没有哪个软件能独立完成企业的所有监控需求,因此,多种开源监控软件组合应用+二次开发才是监控工程平台的最终方向。

推荐ganglia是因为ganglia客户端软件对服务资源占用非常低,并且扩展插件非常多,监控扩展也非常容易,同时结合专业的web监控工程平台centreon,可以实现在数据收集、数据展示、数据提取、监控报警配置、用户展示等方面的完美配合,因此这里对海量服务器进行监控我们推荐ganglia+centreon组合。

监控工程中无监控不运维之监控工程设计思路_第2张图片

二、说说我们监控运维平台的演变历程

这是一个经验和总结,我结合这么多年我们监控工程平台的演变,总结了一下不同阶段、不同机器数量,监控工程平台需要的构建思路和策略。

1、机器数量小于100台的阶段

这个时期由于机器数量较少,因此,对监控的需求也很简单,监控的用途可能主要用于通知问题、快速定位与解决问题,大致总结一下,此阶段监控工程平台的特点如下:

(1)部署简单,上手易用

(2)稳定运行,不出故障(3)可进行报警,以邮件、短信等形式

基于以上特点和需求,可以使用比较流行开源的监控软件Nagios,Cacti,Zabbix,Ganglia等等。流行的开源产品文档很多,可快速上手,并且有大量的前人使用经验,遇到问题也很容易解决。

2、机器数量200到1000的阶段

这个阶段,由于机器数量变多,监控需求也开始变得复杂,不过主要还是用于通知、告警,发现问题,并避免同样的问题再次发生,根据这个阶段的特点,我们在这个时期主要对监控工程平台做了以下工作:

(1)监控内容分类:由于要监控的机器很多,监控内容也随之增多,于是我们将监控根据用途不同,进行了分类,主要分为系统基础监控数据、网络监控数据和业务监控数据。

(2)全覆盖式监控:将所有机器均纳入监控中,主要包含软件监控和硬件监控,硬件监控主要是监控硬件性能和故障,软件监控除了第一步提到的各种基础监控数据外,还增加了业务逻辑监控,尽可能的覆盖业务流程,通过大量自定义监控减少和去除重复的问题,保障业务稳定运行。(3)多种告警方式,确保无漏报:将所有监控根据重要程度、紧急程度进行分类,分别用邮件,微信,短信,电话等不同级别的方式进行通知,每个监控对应到不同的人,确保每个监控都

3、机器数量超过1000台的阶段

由于业务持续增长,对服务器需求越来越多,当我们的服务器超过1000台以后,监控的情况发生了变化,或者说监控出现了很多奇怪的问题,主要有如下一些:

(1)告警不及时

(2)告警系统出现了单点故障

(3)告警需求监控系统无法满足

最后,运维监控工程平台是运维工作中不可或缺的一部分,如何构建适合自己的运维监控工程平台,每个公司的需求不一样,每个运维面对的痛点也不尽相同,但,不管有什么需求,多少需求,万变不离其宗,有了机器上的各种监控数据,运维就能做很多事情。

你可能感兴趣的:(监控工程中无监控不运维之监控工程设计思路)