论文部分内容阅读
摘要:该文针对吐哈油田数据中心现状,提出并研究了一套基于B/S模式的集监控、警告、日志分析于一身的监控系统架构。目的是为了给数据中心监控系统的建设提供思路和方案。此架构主要分为三个大的功能模块:监控,日志分析及告警模块。监控模块又分为主机监控及数据库监控两个方面。主机系统信息的获取主要通过代理程序完成,数据库信息的获取主要通过同步技术完成。监控信息的显示通过图表工具完成,可为管理人员的调试和维护提供直观的参考;告警闽值的设置及告警功能可通过设置特殊参数加以监控并通过多种形式随时通知维护人员实现快速响应;日志分析通过大数据分析平台完成对系统,应用及数据库日志的分析,筛选等功能。
关键字:B/S模式;监控系统;日志分析;代理程序;OGG技术;数据仓库。
吐哈油田数据中心经过多年发展已经颇具规模,但由于人力资源有限,管理模式自动化水平低,给数据中心的维护工作带来了较大的麻烦。因此设想通过一套可实时监控系统及数据库性能,实时分析系统各类日志并可实时告警的数据中心监控系统协助运维人员更有效率地掌控数据中心运行情况。
1.现状分析
经过调研统计,吐哈油田数据中心数据库,服务器数量众多,类型多样。现有物理服务器百余台,类型包括PC机,刀片机,机架式服务器,存储,交换机等,型号更是囊括了各大厂商各个时期的服务器,并且分布在哈密与鄯善两个数据中心内;虚拟化集群若干,划出虚拟服务器两百余套。数据库包括Oracle数据库、Mysql数据、Sqlserver数据库、sybase数据库及实时数据库等多种类型,并搭建有几套数据库集群。
巡检服务器需要进入机房查看硬件告警,并逐台登录查看系统运行情况,巡检数据库更是要输人命令对数据库连接数,数据库性能,最耗性能的语句等逐一进行查询,数据中心维护工作量大。然而由于管理人员有限,日常巡检工作就会耗去他们大量的时间和精力,有时还会出现巡检不到位,问题发现不及时等问题。给数据中心的维护工作带来了较大的麻烦。管理人员虽然实现了精细化的管理,为数据中心的稳定运行,对服务器,数据库都做了参数的优化和阈值的限制等,但由于没有监控系统的辅助,出现问题时,只能人工排查,没有足够详细的信息为问题的诊断和决策提供帮助,也往往会忽视这些限制。
由于油田对信息安全的重视程度普遍较高,有专门的机构对漏洞进行排查,最新发现的漏洞都无处遁形。因此维护人员对各个服务器都做了安全设置,关闭了威胁端口及服务,修补了几乎所有的漏洞,这其中就包括SNMP及ICMP协议及端口,然而现流行的监控系统架构普遍采用的是SNMP协议通信,ICMP协议以及代理方式获取服务器陛能参数。这些端口的开启不可避免的带来了新的威胁。
为了满足数据中心需求,系统必须集监控、日志分析,报警功能于一身,且界面整洁,交互友好。因此需要解决以下问题:
1)服务器信息的自动收集;
2)数据库信息的自动收集;
3)信息的远程查看;
4)异于传统的更安全的系统架构;
5)收集信息整理和显示;
6)提供更多数据中心运行的性能信息;
7)对异常情况随时反应。
2.研究过程
2.1自动收集服务器信息
服务器信息主要包括操作系统信息,CPU信息,内存信息,磁盘信息,网络接口信息等,不仅包括了他们的静态固有信息,也包括他们的动态使用情况。获取信息的方法基本上包括脚本获取,C#语言应用McutagementObjectCollection对象获取及Java环境使用Sigar工具获取等。
脚本获取需要为Windows系统及Linux系统分别编写脚本,无法跨平台,但算法简单,编写方便,放到定时任务中循环执行;C#写程序只能获取本地机器的系统信息,且必须在每个服务器上都搭建相应的平台,工作繁琐,资源占用过多,系统冗赘,无法发挥B/S模式语言的优势;JAVA程序的最大优势就是跨平台,不管在什么系统上,只要搭建Java平台即可运行,且平台搭建方便快捷,同时Sigar已发展为成熟的开源工具,通过提供接口来收集系统信息,包括内存,cpu,进程,文件系统,网络,路由信息等,调用方便,程序可读性高。
通过对各个方法的测试,研究和比对,最终采用了Sigar工具完成对服务器信息的采集。
2.2自动收集数据库信息
数据库信息主要包括,数据库基本信息,服务名,实例信息,状态信息,链接数,读写统计,操作统计,及最占资源操作等。信息的获取基本是通过数据库读取数据库系统表,方法基本有两种。
一种是通过编程平台编写程序连接数据库调取数据库相关信息可以达到收集数据库信息的目的,然而由于数据库类型多样,连接方法各有不同,此方法可行,但并不是最优的方式。
另一种方法以数据库同步技术OGG为工具,对数据库信息进行有选择同步已达到信息获取的目的。OGG技术全名为(Oracle GoldenGate),是一种基于日志的结构化数据复制技术,通过解析源数据库在线日志或归档日志获得数据的变化,再将这些变化应用到目标数据库,以实现源数据库与目标数据库的同步。如图1所示,此技术适用于大部分数据库,满足油田现有数据库应用要求,因此最终采用此技术,通过新建所需信息统计数据表,并通过筛选,有选择性的同步到另一数据库中,达到了数据收集的目的。
2.3设计B/S模式系统,方便维护人员查看
监控系统设计模式基本可以分为B/S及C/S两种模式。这两种模式均可以实现维护人员对数据中心的远程监控。但维护人员在通过C/S模式查看时只能通過搭有平台,装有客户端软件的终端才能完成,而B/S模式则可以实现维护人员在任何可连接内网的终端上进行数据中心的监控。J~B/S模式已经成为了系统开发的趋势,因此通过对C/S模式和B/S模式的比对,最终确定系统采用JAVA环境下的B/S模式开发。 2.4采用代理模式主动发送数据
通过对传统监控系统架构的研究,发现大部分监控系统采用SNMP协议与服务器进行通信完成对数据的采集及传输,采用ICMP协议完成对服务器状态信息的确认。此方式虽然可以完成系统所需功能,同时实现了对信息搜集的随机、随时性。然而却要求所有受监控服务器必须开放SNMP协议及ICMP协议。这就给数据中心带来了不必要的威胁。
根据防火墙“管进不管出的特性”,最终决定采用代理模式主动发送收集到的数据。通过编写代理程序,定时将收集到的数据发送到监控数据库中。如图2所示,虽然舍弃了随机性,但是避免了通信带来的威胁,也避免了数据中心安全性的降低。
2.5显示收集到的信息
收集到的信息主要分为了静态信息及动态信息两类,以行数据的方式存储在数据库中。数据更新周期短,数据量大,无法直接使用,因此需要把这些信息友好直观的展示在维护人员面前。
经过Finereport及Eeharts,Jfreechan等工具的研究和比对最终决定:静态数据采用表格及报表的方式显示,所用工具为Finereport,此工具界面友好,技术成熟,主要以模板的方式进行数据的展示;动态数据采用Echarts图表的方式显示,此工具为百度开源图表工具,不但实现了动态折线图,饼状图等,还可配以不同风格,为动态数据的展示增色不少。
2.6搭建日志分析平台
通过对油田数据中心监控模式的研究发现,指示灯、网络连通性和数据库运行状态成为了判断服务器、操作系统和数据库是否正常运行的全部依据,基本忽略了对日志的关注。虽然系统中日志种类多,数量大,但它往往能详细反映系统、数据库及应用的运行情况。能够协助运维人员在出现问题的时候查出问题所在,并提供详细的障碍信息。
因此决定在系统中集成一套日志分析平台,平台以Sark架构为基础,Scala语言为开发工具,建立一套日志的分析模型,收集并分析数据库,系统,及应用平台的日志并将分析结果反馈并显示在系统中,以供运维人员参考。
2.7构建阈值模型,采用多种方式告警
为了保证数据中心安全性并且实现精细化管理,管理人员为数据中心服务器及数据库设置了多项限制及监控点,包括网络连通状况,磁盘运行状况,服务运行情况,epu使用率,内存占有率,磁盘使用率以及数据库运行情况,数据库连接数限制等。但查看这些限制参数操作复杂繁复,人工比对,工作量大。
为了实现对这些特定参数的监控,为了实现故障的预警,即时监控,为了实现故障的即时处理,系统将构建阈值模型,对每个参数的阈值进行设定,超过阈值则即刻告警。同时,当日志存在警告信息时也进行告警。
系统出现告警时将采用三种方式进行告警:
1)系统提示:出现告警信息后会在系统告警栏以及界面前方弹出条幅显示告警信息。
2)小鸽子:通过调用小鸽子服务器接口,通过小鸽子服务器将信息发送到管理员。(小鸽子为油田内部通信工具)
3)短信:通过短信平台发短信提示维护人员。
3.系统总体架构
通过研究设计,最终确定系统架构如图3所示。
系统JAVA编写的B/S模式系统,共分为三个主要模块:监控模块,告警模块,日志分析模块。
监控模块:主要完成对数据库及服务器性能信息及静态信息的收集及显示。服务器信息收集采用代理模式主动发送至数据库,代理程序由JAVA语言编写;数据库信息的收集采用OGG技术自动同步获取。信息则通过JAVASCRIPT引入FineRepor及Echart插件,分别显示静态及动态信息。
告警模块:主要完成对特殊参数阈值的设定判断和对故障信息的告警。通过构建开放式阈值模型可设置参数阈值并随时添加新的阈值。之后编写监听程序,随时关注参数变化,一旦出现故障信息,即刻产生告警。告警信息通过系统推送,小鸽子以及短信的方式实时提醒。
日志分析模块:主要完成对系统、数据库,应用平台日志的收集分析及对分析结果的显示。日志收集采用脚本传送的方式,并同时进行整合。分析平台采用Spark平台,通过scala语言进行分析模型的编写。完成对日志的分析工作,最终将分析结果呈现在系统之中。
4.预期应用效果
通过此架构构建的系统,可实现对服务器及数据库的静态数据的采集,动态性能的监控,日志的收集分析,以及故障的告警等功能。不但能实现数据中心的实时监控,即时告警,故障的即时发现及时处理,提高工作效率,提升用户体验。还将极大地减少维护人员的工作量,解放维护人员在基础工作上花费的时间,去完成更多更意义的研究及工作。
5.结束语
本文主要阐述的是基于吐哈油田数据中心现状研究设计的一套监控系统,包括研究过程以及设计结果。并分模块描述了系统的各个功能及所用技術。它摒弃了传统监控软件的系统架构,以开放性思维,结合不同技术,形成了一套完整的系统架构。
本文介绍的系统为针对性设计系统,只能用于自开发数据中心监控,由于信息的采集方式比较特殊,并不具备普遍性。
关键字:B/S模式;监控系统;日志分析;代理程序;OGG技术;数据仓库。
吐哈油田数据中心经过多年发展已经颇具规模,但由于人力资源有限,管理模式自动化水平低,给数据中心的维护工作带来了较大的麻烦。因此设想通过一套可实时监控系统及数据库性能,实时分析系统各类日志并可实时告警的数据中心监控系统协助运维人员更有效率地掌控数据中心运行情况。
1.现状分析
经过调研统计,吐哈油田数据中心数据库,服务器数量众多,类型多样。现有物理服务器百余台,类型包括PC机,刀片机,机架式服务器,存储,交换机等,型号更是囊括了各大厂商各个时期的服务器,并且分布在哈密与鄯善两个数据中心内;虚拟化集群若干,划出虚拟服务器两百余套。数据库包括Oracle数据库、Mysql数据、Sqlserver数据库、sybase数据库及实时数据库等多种类型,并搭建有几套数据库集群。
巡检服务器需要进入机房查看硬件告警,并逐台登录查看系统运行情况,巡检数据库更是要输人命令对数据库连接数,数据库性能,最耗性能的语句等逐一进行查询,数据中心维护工作量大。然而由于管理人员有限,日常巡检工作就会耗去他们大量的时间和精力,有时还会出现巡检不到位,问题发现不及时等问题。给数据中心的维护工作带来了较大的麻烦。管理人员虽然实现了精细化的管理,为数据中心的稳定运行,对服务器,数据库都做了参数的优化和阈值的限制等,但由于没有监控系统的辅助,出现问题时,只能人工排查,没有足够详细的信息为问题的诊断和决策提供帮助,也往往会忽视这些限制。
由于油田对信息安全的重视程度普遍较高,有专门的机构对漏洞进行排查,最新发现的漏洞都无处遁形。因此维护人员对各个服务器都做了安全设置,关闭了威胁端口及服务,修补了几乎所有的漏洞,这其中就包括SNMP及ICMP协议及端口,然而现流行的监控系统架构普遍采用的是SNMP协议通信,ICMP协议以及代理方式获取服务器陛能参数。这些端口的开启不可避免的带来了新的威胁。
为了满足数据中心需求,系统必须集监控、日志分析,报警功能于一身,且界面整洁,交互友好。因此需要解决以下问题:
1)服务器信息的自动收集;
2)数据库信息的自动收集;
3)信息的远程查看;
4)异于传统的更安全的系统架构;
5)收集信息整理和显示;
6)提供更多数据中心运行的性能信息;
7)对异常情况随时反应。
2.研究过程
2.1自动收集服务器信息
服务器信息主要包括操作系统信息,CPU信息,内存信息,磁盘信息,网络接口信息等,不仅包括了他们的静态固有信息,也包括他们的动态使用情况。获取信息的方法基本上包括脚本获取,C#语言应用McutagementObjectCollection对象获取及Java环境使用Sigar工具获取等。
脚本获取需要为Windows系统及Linux系统分别编写脚本,无法跨平台,但算法简单,编写方便,放到定时任务中循环执行;C#写程序只能获取本地机器的系统信息,且必须在每个服务器上都搭建相应的平台,工作繁琐,资源占用过多,系统冗赘,无法发挥B/S模式语言的优势;JAVA程序的最大优势就是跨平台,不管在什么系统上,只要搭建Java平台即可运行,且平台搭建方便快捷,同时Sigar已发展为成熟的开源工具,通过提供接口来收集系统信息,包括内存,cpu,进程,文件系统,网络,路由信息等,调用方便,程序可读性高。
通过对各个方法的测试,研究和比对,最终采用了Sigar工具完成对服务器信息的采集。
2.2自动收集数据库信息
数据库信息主要包括,数据库基本信息,服务名,实例信息,状态信息,链接数,读写统计,操作统计,及最占资源操作等。信息的获取基本是通过数据库读取数据库系统表,方法基本有两种。
一种是通过编程平台编写程序连接数据库调取数据库相关信息可以达到收集数据库信息的目的,然而由于数据库类型多样,连接方法各有不同,此方法可行,但并不是最优的方式。
另一种方法以数据库同步技术OGG为工具,对数据库信息进行有选择同步已达到信息获取的目的。OGG技术全名为(Oracle GoldenGate),是一种基于日志的结构化数据复制技术,通过解析源数据库在线日志或归档日志获得数据的变化,再将这些变化应用到目标数据库,以实现源数据库与目标数据库的同步。如图1所示,此技术适用于大部分数据库,满足油田现有数据库应用要求,因此最终采用此技术,通过新建所需信息统计数据表,并通过筛选,有选择性的同步到另一数据库中,达到了数据收集的目的。
2.3设计B/S模式系统,方便维护人员查看
监控系统设计模式基本可以分为B/S及C/S两种模式。这两种模式均可以实现维护人员对数据中心的远程监控。但维护人员在通过C/S模式查看时只能通過搭有平台,装有客户端软件的终端才能完成,而B/S模式则可以实现维护人员在任何可连接内网的终端上进行数据中心的监控。J~B/S模式已经成为了系统开发的趋势,因此通过对C/S模式和B/S模式的比对,最终确定系统采用JAVA环境下的B/S模式开发。 2.4采用代理模式主动发送数据
通过对传统监控系统架构的研究,发现大部分监控系统采用SNMP协议与服务器进行通信完成对数据的采集及传输,采用ICMP协议完成对服务器状态信息的确认。此方式虽然可以完成系统所需功能,同时实现了对信息搜集的随机、随时性。然而却要求所有受监控服务器必须开放SNMP协议及ICMP协议。这就给数据中心带来了不必要的威胁。
根据防火墙“管进不管出的特性”,最终决定采用代理模式主动发送收集到的数据。通过编写代理程序,定时将收集到的数据发送到监控数据库中。如图2所示,虽然舍弃了随机性,但是避免了通信带来的威胁,也避免了数据中心安全性的降低。
2.5显示收集到的信息
收集到的信息主要分为了静态信息及动态信息两类,以行数据的方式存储在数据库中。数据更新周期短,数据量大,无法直接使用,因此需要把这些信息友好直观的展示在维护人员面前。
经过Finereport及Eeharts,Jfreechan等工具的研究和比对最终决定:静态数据采用表格及报表的方式显示,所用工具为Finereport,此工具界面友好,技术成熟,主要以模板的方式进行数据的展示;动态数据采用Echarts图表的方式显示,此工具为百度开源图表工具,不但实现了动态折线图,饼状图等,还可配以不同风格,为动态数据的展示增色不少。
2.6搭建日志分析平台
通过对油田数据中心监控模式的研究发现,指示灯、网络连通性和数据库运行状态成为了判断服务器、操作系统和数据库是否正常运行的全部依据,基本忽略了对日志的关注。虽然系统中日志种类多,数量大,但它往往能详细反映系统、数据库及应用的运行情况。能够协助运维人员在出现问题的时候查出问题所在,并提供详细的障碍信息。
因此决定在系统中集成一套日志分析平台,平台以Sark架构为基础,Scala语言为开发工具,建立一套日志的分析模型,收集并分析数据库,系统,及应用平台的日志并将分析结果反馈并显示在系统中,以供运维人员参考。
2.7构建阈值模型,采用多种方式告警
为了保证数据中心安全性并且实现精细化管理,管理人员为数据中心服务器及数据库设置了多项限制及监控点,包括网络连通状况,磁盘运行状况,服务运行情况,epu使用率,内存占有率,磁盘使用率以及数据库运行情况,数据库连接数限制等。但查看这些限制参数操作复杂繁复,人工比对,工作量大。
为了实现对这些特定参数的监控,为了实现故障的预警,即时监控,为了实现故障的即时处理,系统将构建阈值模型,对每个参数的阈值进行设定,超过阈值则即刻告警。同时,当日志存在警告信息时也进行告警。
系统出现告警时将采用三种方式进行告警:
1)系统提示:出现告警信息后会在系统告警栏以及界面前方弹出条幅显示告警信息。
2)小鸽子:通过调用小鸽子服务器接口,通过小鸽子服务器将信息发送到管理员。(小鸽子为油田内部通信工具)
3)短信:通过短信平台发短信提示维护人员。
3.系统总体架构
通过研究设计,最终确定系统架构如图3所示。
系统JAVA编写的B/S模式系统,共分为三个主要模块:监控模块,告警模块,日志分析模块。
监控模块:主要完成对数据库及服务器性能信息及静态信息的收集及显示。服务器信息收集采用代理模式主动发送至数据库,代理程序由JAVA语言编写;数据库信息的收集采用OGG技术自动同步获取。信息则通过JAVASCRIPT引入FineRepor及Echart插件,分别显示静态及动态信息。
告警模块:主要完成对特殊参数阈值的设定判断和对故障信息的告警。通过构建开放式阈值模型可设置参数阈值并随时添加新的阈值。之后编写监听程序,随时关注参数变化,一旦出现故障信息,即刻产生告警。告警信息通过系统推送,小鸽子以及短信的方式实时提醒。
日志分析模块:主要完成对系统、数据库,应用平台日志的收集分析及对分析结果的显示。日志收集采用脚本传送的方式,并同时进行整合。分析平台采用Spark平台,通过scala语言进行分析模型的编写。完成对日志的分析工作,最终将分析结果呈现在系统之中。
4.预期应用效果
通过此架构构建的系统,可实现对服务器及数据库的静态数据的采集,动态性能的监控,日志的收集分析,以及故障的告警等功能。不但能实现数据中心的实时监控,即时告警,故障的即时发现及时处理,提高工作效率,提升用户体验。还将极大地减少维护人员的工作量,解放维护人员在基础工作上花费的时间,去完成更多更意义的研究及工作。
5.结束语
本文主要阐述的是基于吐哈油田数据中心现状研究设计的一套监控系统,包括研究过程以及设计结果。并分模块描述了系统的各个功能及所用技術。它摒弃了传统监控软件的系统架构,以开放性思维,结合不同技术,形成了一套完整的系统架构。
本文介绍的系统为针对性设计系统,只能用于自开发数据中心监控,由于信息的采集方式比较特殊,并不具备普遍性。