Linux运维:智能运维监控报警平台概述

Posted 计算机与网络安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维:智能运维监控报警平台概述相关的知识,希望对你有一定的参考价值。

一次性付费进群,长期免费索取教程,没有付费教程。

 教程列表  见微信公众号底部菜单 |   本文底部有推荐书籍 

ID:Computer-network


一、智能运维监控报警平台的组成


随着的来临,工作的难度越来越大,每名人员都要面临不计其数的和海量的数据,如何保证众多和业务系统稳定高效地运行并尽量减少死机时间,成为考核工作的重要指标,而要实现大规模的,必须有一套行之有效的智能监控管理系统。


的核心工作可以分为运行监控和故障处理两个方面,对业务系统进行精确、完善的监控,保证能够在第一时间发现故障并迅速通知人员处理故障是监控系统要实现的基础功能;一个功能完善的智能监控系统,不但可以自动处理一些简单故障,减少运维工作量,还应该在应用可能出现故障时预先发出报警,预防故障发生。因此,构建一个智能的监控平台,必须以运行监控和故障报警这两个方面为重点,将所有业务系统中涉及的网络资源、硬件资源、软件资源、资源等纳入统一的监控平台中,并通过消除管理软件的差别、数据采集手段的差别,对各种不同的数据来源实现统一管理、统一规范、统一处理、统一展现、统一用户登录、统一权限控制,最终实现规范化、自动化、智能化的大管理。


一个智能的监控平台一般的设计架构从低到高可以分为6层,如图1所示。

图1  智能运维监控平台的一般设计架构


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


数据展示层:位于第二层,是一个展示界面,主要是将数据收集层获取的数据进行统一展示,展示的方式可以是曲线图、柱状图、饼状态等,通过将数据图形化,可以帮助人员了解一段时间内或网络的运行状态和运行趋势,并作为人员排查问题或解决问题的依据。


数据提取层:位于第三层,主要是对从数据收集层获取的数据进行规格化和过滤处理,提取需要的数据到监控报警模块,这个部分是监控和报警两个模块的衔接点。


报警规则配置层:位于第四层,主要是根据第三层获取到的数据进行报警规则设置、报警阈值设置、报警联系人设置和报警方式设置等。


报警事件生成层:位于第五层,主要是对报警事件进行实时记录,将报警结果存入以备调用,并将报警结果形成分析报表,以统计一段时间内的故障率和故障发生趋势。


用户展示管理层:位于最顶层,是一个展示界面,主要是将监控统计结果、报警故障结果进行统一展示,并实现多用户、多权限管理,实现统一用户和统一权限控制。


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


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


数据提取模块:此模板主要完成数据的筛选过滤和采集,将需要的数据从数据收集模块提取到监控报警模块中。可以通过数据收集模块提供的接口或自定义脚本实现数据的提取。


监控报警模块:此模块主要完成监控脚本的设置、报警规则设置、报警阈值设置、报警联系人设置等,并将报警结果进行集中展现和历史记录。常见的监控报警工具有nagios、Centreon等。

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


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

图2  常见运维监控平台拓扑结构


二、Ganglia作为数据收集模块


Ganglia作为监控报警平台的数据收集模块,主要基于以下几方面的原因:


1)灵活的分布式、分层体系结构,使Ganglia支持上万个监控节点的数据收集,并且性能表现稳定,同时,Ganglia也可以根据地域环境、网络结构的不同,分地域、分层次灵活部署Ganglia数据收集点,而对于数据收集节点可以动态添加或删除,对Ganglia整体监控不产生任何影响,因此,可以灵活扩展Ganglia数据收集节点。


2)收集数据更加精确,不但可以收集实时数据,以图表的形式展示出来,而且允许用户查看历史统计数据,因此,用户可以通过这些数据,做出性能调整、升级、扩容等决策,从而保证应用系统能够满足不断增长的业务需求。


3)可以通过多播、单播的方式收集数据。在监控的节点较多时通过多播方式收集数据可以大大降低数据收集的负载,提高监控和数据收集性能。而对于不能使用多播收集数据的网络环境,还可以通过单播的方式收集数据,因此Ganglia在数据收集方式上非常灵活。


4)可收集各种度量的数据。Ganglia默认可收集CPU、内存、磁盘、IO、处理、网络6大方面的数据,同时还提供了或者接口,用户通过这个接口可以自定义数据收集模块,并且这些模块可以被直接插入Ganglia中以监控用户自定义的应用。


基于以上这些优点,Ganglia非常适合作为监控报警平台的数据收集模块。虽然Cacti也可以实现数据的收集和图形报表的展示,但是当监控节点增多时,Cacti的缺点就慢慢暴露出来,数据收集的准确性、实时性很难得到保障。因此,要构建一个高性能的监控报警平台,Ganglia是首选的数据收集模块。


三、Centreon作为监控报警模块


有了Ganglia收集数据还是不够的,人员不可能天天盯着数据报表,因此,还需要对收集到的数据进行监控和报警:对每台需要监控的或服务,设置一个报警阈值,当收集到的数据超过这个阈值时,在第一时间能自动报警并通知人员,而在收集到的数据没有超过指定的报警阈值时,人员就可以去做别的事情,而不用时刻盯着数据报表,这是构建智能监控报警平台必须实现的一个功能。


对或服务的状态值进行监控,当达到指定阈值时进行报警,要实现这个功能并不是什么难的事情,写个简单的脚本就能实现,但是这样太原始了,没有层次,维护性差,并且当需要监控报警的或服务越来越多时,脚本的性能就变得很差,管理也非常不方便,更别说有什么可视化效果了,因此,需要有一个专业的监控报警工具来实现这个功能。


Centreon就是这样一个专业的分布式监控、报警工具,它通过第三方组件可以实现对网络、和应用程序的监控与报警。在底层,Centreon通过nagios作为监控软件;在数据层,Centreon通过ndoutil模块将监控到的数据定时写入中;在展示层,Centreon提供了界面来配置、管理需要监控的或服务,并提供多种报警通知方式,同时还可以展现监控数据和报警状态,并且可查询历史报警记录。


通过对Centreon的使用可知,Centreon无论在配置、管理、可视化等方面都做得非常专业和完善,并且在多、多服务监控的环境下,性能表现也非常稳定,因此,将Centreon作为智能监控报警平台的监控报警模块非常适合。


ID:Computer-network


【推荐书籍】