基于应用系统构架监测的应用研究
2014-12-09徐澄宇王洪飞黄泽张超
徐澄宇 王洪飞 黄泽 张超
摘 要:业务系统的安全、稳定运行,依赖于软/硬件环境以及相关业务系统(接口)的安全、稳定,运维人员缺少相应的工具,能够以应用系统为视角,对应用系统涉及的软/硬件环境、外部接口进行监控、告警、分析。文章从业务系统逻辑构架层级化方面提出了基于应用系统构架监测的应用系统,解决了关键问题包含:(1)利用SOA构架模型,构建业务系统;(2)面向脚本语言的业务指标采集技术。利用该系统可以解决业务运维人员、设备运维人员、中间件运维人员、数据库运维人员对业务应用系统的监测和展示问题。
关键词:应用系统;构架;监测
1 概述
随着信息化的逐步深入,各单位/公司使用了越来越多的信息业务应用系统(简称:业务系统)。一方面业务系统的运行情况和企业部门业务的捆绑越来越紧密,其承担的责任越来越重;另一方面业务系统也越来越复杂,对网络环境、软/硬件系统、以及其他业务系统的依赖越来越高。这对公司的信息运行机制、管理水平、人员意识,尤其是技术保障提供了更高要求。尽管信息运维人员使用《北塔安全运维平台》(简称:北塔系统)、《网强安全运维平台》(简称:网强系统)来辅助日常运维工作,但仍面临如下问题。
1.1 缺少面向业务系统的系统/工具
业务系统的安全、稳定运行,依赖于软/硬件环境以及相关业务系统(接口)的安全、稳定。主机、中间件、数据库运维人员可以通过北塔等系统对相关软/硬件设备进行监控,但业务系统运维人员缺少相应的系统/工具,能够集中应用系统的软/硬件环境、外部接口的所有运行数据,对数据进行监控、告警、分析。
1.2 监控工具缺少灵活、渐进性
业务系统依赖的软/硬件资源,相关的其他业务系统的资源类型、数量是固定的,大多数监控系统的监控的方式、内容也是固定的。运行维护过程中,不能针对业务系统的特点,动态的增加/删除监控内容,缺少以灵活、渐进的方式持续集成的手段。
1.3 缺少个性化监控手段
运维人员通过北塔、网强等系统提高日常工作效率。但是,随着科技的进步以及技术的日新月异,硬件设备、网络环境、信息系统的多样性使得仅仅依靠标准接口(如SNMP协议)取得监控信息不能满足全部需求。现有监控系统,缺少对差异化的软/硬件设备进行监控的手段。
1.4 告警不能集中展示,并且告警信息不易共享
运维人员在日常的工作过程中,通常打开多个监控页面,来实施监控。每个页面通过颜色、声音的变化,来通知是否有告警。当告警信息同时出现在多个页面上是,运维人员很容易遗漏,造成工作失误。此外,共享告警信息的方式通常是直接访问数据库或调用WebService接口,安全性和实时性都不能得到保证。
1.5 缺少故障定位的手段
当业务系统出现问题时,业务系统运维人员依次检查相关软/硬件环境及相关的业务系统(接口),并依靠经验来处理问题并且定位故障发生位置,缺少技术措施辅助进行定位。此外,运维人员不能有效利用历史数据,以应用系统为视角,进行趋势分析、知识积累。基于应用系统构架监测的应用研究的设计研发旨在构建一个平台,通过该平台能够对应用系统安全稳定运行所依赖的软/硬件、外部接口等资源的进行定义、采集、告警、查询、分析。该平台具备灵活性、可扩展性,方便数据共享。有利于信息运维人员及时掌握应用系统的运行情况,便于发现问题、处理问题、解决问题,从而提高应用系统的安全性和稳定性。
2 技术方案及特点
基于应用系统构架监测的应用研究的主要建设内容是构建一个平台,通过该平台能够对应用系统安全稳定运行所依赖的软/硬件、外部接口等资源的进行定义、采集、告警、查询、分析。该平台具备灵活性、可扩展性,方便数据共享。有利于信息运维人员及时掌握应用系统的运行情况,便于发现问题、处理问题、解决问题,从而提高应用系统的安全性和稳定性。
2.1 基于SOA构架
SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用SOA,正好可以利用SOA的灵活性,把数据采集进行封装,并发布为服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。这样,假如客户有新需求,需要加入不同的功能,只需添加订阅的客户端就可以,不需要修改其他部分,从而使程序具有良好的可扩展性。
2.2 发布/订阅消息
在发布/订阅系统里,有的进程会订阅包含某些特定主题信息的消息,另外一些进程则会发布这样的消息。发布者向订阅者提供更新有多种不同的方式。在push-style notification(推送通知)这种方式里,订阅者将订阅消息发送给发布者,后者将发布的消息发给订阅者,这使用的是一种回调的方式。在pull-style notification(拽取通知)这种方式里,订阅者将订阅消息发送给发布者,后者将发布的消息发送到一个订阅者所知道的pull-point中,订阅者再从这里取得消息。在brokered notification(代理通知)里,订阅者将订阅消息发送给代理,后者接收从发布者发送的消息然后提供给订阅者。
2.3 遵循MVVM体系规范
软件完全基于C#(C Sharp)语言实现,安全性好,性能高,易于使用与扩展,软件展示界面基于Microsoft Silverlight技术实现,使用Silverlight4中的toolkit图形控件包等技术实现指标数据展示,软件框架采用MVVM(Model-View-ViewModel)模式,该框架立足于原有MVP框架并且把WPF的新特性揉合进去,以应对客户日益复杂的需求变化。endprint
2.4 基于IronPython技术开发插件
IronPython是一种在NET平台上实现的Python语言。IronPython即能使用NET平台类库,也能使用Python丰富和强大的类库。作为胶水语言,它能很轻松的把用其他语言制作的各种模块轻松的联接在一起。
3 系统结构
3.1 系统结构
应用系统构架监测的应用的核心是“监测”,依赖发布-订阅机制实现数据传递,数据采集平台负责采集并发布数据,综合数据展示平台订阅数据并展示数据:(1)数据采集平台,负责各相关业务系统数据采集与集成;(2)综合数据展示平台,用于预警,并对各业务系统业务数据进行有效利用,形成知识库。
3.2 逻辑结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了系统综合管理、业务数据采集管理、告警综合管理三个业务模块的业务逻辑结构。
3.3 硬件结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了如下的业务逻辑结构。
4 系统功能
4.1 系统综合管理
系统综合管理模块是对业务应用系统的构架模型、业务应用系统涉及的资源(软件、硬件、平台、系统)进行维护和管理,对业务系统资源进行标签进行维护管理,对业务系统的告警信息分类、等级进行管理。该模块的目的是为整个项目提供基础管理。
(1)系统综合管理模块主要包括:业务系统资源管理、业务系统管理、告警基础信息管理、登录人员管理、业务系统管理资源管理标签管理。(2)业务系统资源管理:对业务系统涉及的资源(软件、硬件、平台、系统),例如F5设备、服务器设备、数据库系统、中间件软件、进行定义和管理。(3)业务系统管理:对业务应用的构架进行维护管理,通过对业务应用系统涉及的资源进行层级化,形成业务系统的逻辑构架。(4)告警基础信息管理:对业务系统资源所产生的告警信息定义告警类型、告警等级。(5)资源标签管理:对业务系统涉及的资源进行主题定义,典型的主题可以按业务系统(如GIS)、数据库、中间件、服务器设备进行定义和管理,从而方便运维人员订阅相关主题。(6)登录人员管理:对登录人员进行基础信息、角色和使用权限进行维护、管理,对登录人员关心的主题进行配置,对使用过程中产生的操作行为和日志进行管理。
4.2 业务数据采集管理
业务数据采集管理模块是对已经配置业务系统资源(软件、硬件、平台、系统)进行采集策略的配置,包括采集指标定义、采集策略定义、采集节点定义。该模块的目的是为整个项目提供数据采集管理管理。(1)业务数据采集管理模块主要包括:采集指标管理、采集策略管理、采集节点管理。(2)采集指标管理:根据业务系统涉及资源(软件、硬件、平台、系统)的特点,定义资源涉及的采集指标,典型的指标包括F5服务检查、URL连通性检查、网络连通性检查、数据库连通性检查、中间件联通性检查、WebService服务检查等;与业务系统相关的指标如ArcGIS服务检查、拓扑服务检查、数据代理服务检查、矢量栅格服务检查等。(3)采集策略管理:对采集指标的采集周期和采集方式进行配置管理。采集周期基于Calendar-like调度的,提供了按照年、月、日、周、小时、分钟、秒的调度管理。采集方式可以按照业务系统的特点对所有的指标提供并行采集的方式,也可以按照业务系统的构架,按照层次关系,提供自上向下或自下向上的采集方式,采集可以按照周期来执行,也可以按照条件(如当检测出错误后执行)来执行。(4)采集节点管理:按照采集指标以及采集策略配置采集节点,进行数据采集。.Net环境最多同时并行5000左右的线程,如果超过并发限额,可以配置多台采集节点进行数据采集管理。
4.3 告警综合管理
告警综合管理模块是运维人员最常使用的功能,运维人员使用此模块监控业务系统的运行情况,处理业务系统产生的告警,对告警执行的有效操作记录的知识库中,提高应急响应速度,对告警数据进行统计、分析管理。
(1)告警综合管理模块主要包括:告警管理、知识库管理、统计分析管理、数据管理。(2)告警管理:通过图形、文字、声音等多种手段监控业务系统的整体、各部分运行状况,查看业务系统指标的运行情况。(3)知识库管理:记录应用系统恢复时所采取的措施,便于知识库的形成。(4)统计分析管理:通过对各资源利用率进行统计(日计、周计、月计、季计、年计),并生成各种表格,曲线图,全面掌握某个应用系统及其相关资源利用情况。通过对各种统计数据进行分析,可以知道是否需要新增硬件资源、网络带宽;可以了解每月哪几个工作日服务器资源利用率高、每周哪几个工作日资源利用率高、每日哪个时段资源利用率高,从而更好的安排人力、设施设备等资源情况。(5)数据管理:提供数据导出功能;可根据需要自由组合各元素,制作相关的报表。且可导成Excel表格或PDF文档格式。
5 结束语
该系统通过对应用系统所涉及资源(软件、硬件、平台、系统)之间的关系层次化,对资源的可访问性、正确性、使用率等关键指标进行监控,实现了对业务系统的系统架构的有效监测,进而发现业务系统运行过程中存在的故障,实现对应用系统的综合透明的运维管理。此外,通过对资源进行标签化管理,使系统运维人员、数据库运维人员、中间件运维人员等不同的运维人员能够关注一个或多个业务系统,一类或多类运维内容,实现了对业务系统的精细化管理。通过对记录应用系统恢复时所采取的措施,所形成的知识库,有利于运维人员快速恢复问题。该系统需进一步实现对告警数据和知识库的有效利用,利用SOA分布式构架的灵活性,在不改变或不大改变原有系统的前提下,对业务系统故障恢复自动化进行研究,研究业务系统故障的影响范围、程度,研究哪些类型的故障可以实现自动恢复,对可以自动恢复的故障进行自动处理,从而减少业务系统故障的人为干预度,提高业务系统运维管理的自动化管理水平,促进业务系统的安全、经济、稳定的运行。
参考文献
[1]蒋金楠.wcf全面解析(上、下)[M].北京:电子工业出版社,2012.endprint
2.4 基于IronPython技术开发插件
IronPython是一种在NET平台上实现的Python语言。IronPython即能使用NET平台类库,也能使用Python丰富和强大的类库。作为胶水语言,它能很轻松的把用其他语言制作的各种模块轻松的联接在一起。
3 系统结构
3.1 系统结构
应用系统构架监测的应用的核心是“监测”,依赖发布-订阅机制实现数据传递,数据采集平台负责采集并发布数据,综合数据展示平台订阅数据并展示数据:(1)数据采集平台,负责各相关业务系统数据采集与集成;(2)综合数据展示平台,用于预警,并对各业务系统业务数据进行有效利用,形成知识库。
3.2 逻辑结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了系统综合管理、业务数据采集管理、告警综合管理三个业务模块的业务逻辑结构。
3.3 硬件结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了如下的业务逻辑结构。
4 系统功能
4.1 系统综合管理
系统综合管理模块是对业务应用系统的构架模型、业务应用系统涉及的资源(软件、硬件、平台、系统)进行维护和管理,对业务系统资源进行标签进行维护管理,对业务系统的告警信息分类、等级进行管理。该模块的目的是为整个项目提供基础管理。
(1)系统综合管理模块主要包括:业务系统资源管理、业务系统管理、告警基础信息管理、登录人员管理、业务系统管理资源管理标签管理。(2)业务系统资源管理:对业务系统涉及的资源(软件、硬件、平台、系统),例如F5设备、服务器设备、数据库系统、中间件软件、进行定义和管理。(3)业务系统管理:对业务应用的构架进行维护管理,通过对业务应用系统涉及的资源进行层级化,形成业务系统的逻辑构架。(4)告警基础信息管理:对业务系统资源所产生的告警信息定义告警类型、告警等级。(5)资源标签管理:对业务系统涉及的资源进行主题定义,典型的主题可以按业务系统(如GIS)、数据库、中间件、服务器设备进行定义和管理,从而方便运维人员订阅相关主题。(6)登录人员管理:对登录人员进行基础信息、角色和使用权限进行维护、管理,对登录人员关心的主题进行配置,对使用过程中产生的操作行为和日志进行管理。
4.2 业务数据采集管理
业务数据采集管理模块是对已经配置业务系统资源(软件、硬件、平台、系统)进行采集策略的配置,包括采集指标定义、采集策略定义、采集节点定义。该模块的目的是为整个项目提供数据采集管理管理。(1)业务数据采集管理模块主要包括:采集指标管理、采集策略管理、采集节点管理。(2)采集指标管理:根据业务系统涉及资源(软件、硬件、平台、系统)的特点,定义资源涉及的采集指标,典型的指标包括F5服务检查、URL连通性检查、网络连通性检查、数据库连通性检查、中间件联通性检查、WebService服务检查等;与业务系统相关的指标如ArcGIS服务检查、拓扑服务检查、数据代理服务检查、矢量栅格服务检查等。(3)采集策略管理:对采集指标的采集周期和采集方式进行配置管理。采集周期基于Calendar-like调度的,提供了按照年、月、日、周、小时、分钟、秒的调度管理。采集方式可以按照业务系统的特点对所有的指标提供并行采集的方式,也可以按照业务系统的构架,按照层次关系,提供自上向下或自下向上的采集方式,采集可以按照周期来执行,也可以按照条件(如当检测出错误后执行)来执行。(4)采集节点管理:按照采集指标以及采集策略配置采集节点,进行数据采集。.Net环境最多同时并行5000左右的线程,如果超过并发限额,可以配置多台采集节点进行数据采集管理。
4.3 告警综合管理
告警综合管理模块是运维人员最常使用的功能,运维人员使用此模块监控业务系统的运行情况,处理业务系统产生的告警,对告警执行的有效操作记录的知识库中,提高应急响应速度,对告警数据进行统计、分析管理。
(1)告警综合管理模块主要包括:告警管理、知识库管理、统计分析管理、数据管理。(2)告警管理:通过图形、文字、声音等多种手段监控业务系统的整体、各部分运行状况,查看业务系统指标的运行情况。(3)知识库管理:记录应用系统恢复时所采取的措施,便于知识库的形成。(4)统计分析管理:通过对各资源利用率进行统计(日计、周计、月计、季计、年计),并生成各种表格,曲线图,全面掌握某个应用系统及其相关资源利用情况。通过对各种统计数据进行分析,可以知道是否需要新增硬件资源、网络带宽;可以了解每月哪几个工作日服务器资源利用率高、每周哪几个工作日资源利用率高、每日哪个时段资源利用率高,从而更好的安排人力、设施设备等资源情况。(5)数据管理:提供数据导出功能;可根据需要自由组合各元素,制作相关的报表。且可导成Excel表格或PDF文档格式。
5 结束语
该系统通过对应用系统所涉及资源(软件、硬件、平台、系统)之间的关系层次化,对资源的可访问性、正确性、使用率等关键指标进行监控,实现了对业务系统的系统架构的有效监测,进而发现业务系统运行过程中存在的故障,实现对应用系统的综合透明的运维管理。此外,通过对资源进行标签化管理,使系统运维人员、数据库运维人员、中间件运维人员等不同的运维人员能够关注一个或多个业务系统,一类或多类运维内容,实现了对业务系统的精细化管理。通过对记录应用系统恢复时所采取的措施,所形成的知识库,有利于运维人员快速恢复问题。该系统需进一步实现对告警数据和知识库的有效利用,利用SOA分布式构架的灵活性,在不改变或不大改变原有系统的前提下,对业务系统故障恢复自动化进行研究,研究业务系统故障的影响范围、程度,研究哪些类型的故障可以实现自动恢复,对可以自动恢复的故障进行自动处理,从而减少业务系统故障的人为干预度,提高业务系统运维管理的自动化管理水平,促进业务系统的安全、经济、稳定的运行。
参考文献
[1]蒋金楠.wcf全面解析(上、下)[M].北京:电子工业出版社,2012.endprint
2.4 基于IronPython技术开发插件
IronPython是一种在NET平台上实现的Python语言。IronPython即能使用NET平台类库,也能使用Python丰富和强大的类库。作为胶水语言,它能很轻松的把用其他语言制作的各种模块轻松的联接在一起。
3 系统结构
3.1 系统结构
应用系统构架监测的应用的核心是“监测”,依赖发布-订阅机制实现数据传递,数据采集平台负责采集并发布数据,综合数据展示平台订阅数据并展示数据:(1)数据采集平台,负责各相关业务系统数据采集与集成;(2)综合数据展示平台,用于预警,并对各业务系统业务数据进行有效利用,形成知识库。
3.2 逻辑结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了系统综合管理、业务数据采集管理、告警综合管理三个业务模块的业务逻辑结构。
3.3 硬件结构
基于应用系统构架监测的应用研究在数据采集平台的基础上,提供了如下的业务逻辑结构。
4 系统功能
4.1 系统综合管理
系统综合管理模块是对业务应用系统的构架模型、业务应用系统涉及的资源(软件、硬件、平台、系统)进行维护和管理,对业务系统资源进行标签进行维护管理,对业务系统的告警信息分类、等级进行管理。该模块的目的是为整个项目提供基础管理。
(1)系统综合管理模块主要包括:业务系统资源管理、业务系统管理、告警基础信息管理、登录人员管理、业务系统管理资源管理标签管理。(2)业务系统资源管理:对业务系统涉及的资源(软件、硬件、平台、系统),例如F5设备、服务器设备、数据库系统、中间件软件、进行定义和管理。(3)业务系统管理:对业务应用的构架进行维护管理,通过对业务应用系统涉及的资源进行层级化,形成业务系统的逻辑构架。(4)告警基础信息管理:对业务系统资源所产生的告警信息定义告警类型、告警等级。(5)资源标签管理:对业务系统涉及的资源进行主题定义,典型的主题可以按业务系统(如GIS)、数据库、中间件、服务器设备进行定义和管理,从而方便运维人员订阅相关主题。(6)登录人员管理:对登录人员进行基础信息、角色和使用权限进行维护、管理,对登录人员关心的主题进行配置,对使用过程中产生的操作行为和日志进行管理。
4.2 业务数据采集管理
业务数据采集管理模块是对已经配置业务系统资源(软件、硬件、平台、系统)进行采集策略的配置,包括采集指标定义、采集策略定义、采集节点定义。该模块的目的是为整个项目提供数据采集管理管理。(1)业务数据采集管理模块主要包括:采集指标管理、采集策略管理、采集节点管理。(2)采集指标管理:根据业务系统涉及资源(软件、硬件、平台、系统)的特点,定义资源涉及的采集指标,典型的指标包括F5服务检查、URL连通性检查、网络连通性检查、数据库连通性检查、中间件联通性检查、WebService服务检查等;与业务系统相关的指标如ArcGIS服务检查、拓扑服务检查、数据代理服务检查、矢量栅格服务检查等。(3)采集策略管理:对采集指标的采集周期和采集方式进行配置管理。采集周期基于Calendar-like调度的,提供了按照年、月、日、周、小时、分钟、秒的调度管理。采集方式可以按照业务系统的特点对所有的指标提供并行采集的方式,也可以按照业务系统的构架,按照层次关系,提供自上向下或自下向上的采集方式,采集可以按照周期来执行,也可以按照条件(如当检测出错误后执行)来执行。(4)采集节点管理:按照采集指标以及采集策略配置采集节点,进行数据采集。.Net环境最多同时并行5000左右的线程,如果超过并发限额,可以配置多台采集节点进行数据采集管理。
4.3 告警综合管理
告警综合管理模块是运维人员最常使用的功能,运维人员使用此模块监控业务系统的运行情况,处理业务系统产生的告警,对告警执行的有效操作记录的知识库中,提高应急响应速度,对告警数据进行统计、分析管理。
(1)告警综合管理模块主要包括:告警管理、知识库管理、统计分析管理、数据管理。(2)告警管理:通过图形、文字、声音等多种手段监控业务系统的整体、各部分运行状况,查看业务系统指标的运行情况。(3)知识库管理:记录应用系统恢复时所采取的措施,便于知识库的形成。(4)统计分析管理:通过对各资源利用率进行统计(日计、周计、月计、季计、年计),并生成各种表格,曲线图,全面掌握某个应用系统及其相关资源利用情况。通过对各种统计数据进行分析,可以知道是否需要新增硬件资源、网络带宽;可以了解每月哪几个工作日服务器资源利用率高、每周哪几个工作日资源利用率高、每日哪个时段资源利用率高,从而更好的安排人力、设施设备等资源情况。(5)数据管理:提供数据导出功能;可根据需要自由组合各元素,制作相关的报表。且可导成Excel表格或PDF文档格式。
5 结束语
该系统通过对应用系统所涉及资源(软件、硬件、平台、系统)之间的关系层次化,对资源的可访问性、正确性、使用率等关键指标进行监控,实现了对业务系统的系统架构的有效监测,进而发现业务系统运行过程中存在的故障,实现对应用系统的综合透明的运维管理。此外,通过对资源进行标签化管理,使系统运维人员、数据库运维人员、中间件运维人员等不同的运维人员能够关注一个或多个业务系统,一类或多类运维内容,实现了对业务系统的精细化管理。通过对记录应用系统恢复时所采取的措施,所形成的知识库,有利于运维人员快速恢复问题。该系统需进一步实现对告警数据和知识库的有效利用,利用SOA分布式构架的灵活性,在不改变或不大改变原有系统的前提下,对业务系统故障恢复自动化进行研究,研究业务系统故障的影响范围、程度,研究哪些类型的故障可以实现自动恢复,对可以自动恢复的故障进行自动处理,从而减少业务系统故障的人为干预度,提高业务系统运维管理的自动化管理水平,促进业务系统的安全、经济、稳定的运行。
参考文献
[1]蒋金楠.wcf全面解析(上、下)[M].北京:电子工业出版社,2012.endprint