图书馆文献数据库运行状态自动监测系统的设计与实现*
熊拥军, 袁小一
中南大学图书馆 长沙 410083
通讯作者: 熊拥军 E-mail:yjxiong@csu.edu.cn

作者贡献声明:

熊拥军, 袁小一: 提出研究思路、设计, 研究过程的实施;

熊拥军: 程序开发实现;

袁小一: 数据获取, 数据分析;

熊拥军, 袁小一: 论文起草和最终版修订。

摘要

【目的】通过程序实现对图书馆文献数据库运行状态的自动监测。【应用背景】针对图书馆大量的文献数据库, 采用人工检测其运行状态, 效率低且故障发现不及时, 机器自动监测与分析更具优势。【方法】采用VB.NET语言在Win7环境下开发, 程序采取模拟读者访问数据库的方法, 获取文献数据库在访问、检索和阅读三方面的状态信息。【结果】实现文献数据库运行状态定期自动监测、故障信息邮件或QQ方式自动报警, 状态信息可视化多维分析等功能。【结论】在系统实际应用中故障的发现和处理更为及时。

关键词: 数字图书馆; 文献数据库; 运行状态; 自动监测
中图分类号:TP393
Design and Implementation of Automatic Monitoring System about Library Document Database Running State
Xiong Yongjun, Yuan Xiaoyi
Central South University Library, Changsha 410083,China
Abstract

[Objective] To realize automatic monitoring running state of library document database through the design of program. [Context] In view of the massive amount of document database, state inspection by artificial is inefficiency and fault discovery is not in time, automatic monitoring and analysis has more advantages. [Methods] The system is developed by VB.NET in the environment of Win7, and the method is to simulate the readers accessing database, to obtain status information in three aspects of access, retrieval and reading from document database. [Results] The detection of database running state regularly and automatically, the fault messages in Email or QQ alarm automatically, multi-dimensional analysis of status information visualization and other functions is implemented. [Conclusions] The discovery and treatment of fault messages more timely in practical application.

Keyword: Digital library; Document database; Running state; Automatic monitoring
1 引 言

随着图书馆电子文献数据库的数量日益增多, 随之而来的是管理难度增大, 在日常管理过程中, 经常遇到如下问题[ 1]: 数据库应用服务因数据、硬件或软件的更新容易导致数据库服务访问不正常; 在访问高峰时间段, 文献数据库不能响应更多读者的访问; 网络的不稳定或病毒, 导致数据库服务变慢或服务停止; 文献数据库内部功能不够完善, 检索效率低。图书馆需要保证各文献数据库对读者能正常使用, 所面临的是如何及时发现和处理这些问题。

在管理方面采取的方式为: 专人监控各数据库日常运行情况, 测试其是否访问正常; 在使用数据库时, 读者发现数据库访问不正常后, 通过电话或留言告知图书馆。这种管理方式使得监控人员日常工作量大, 且不能及时发现和处理故障。

针对电子资源软硬件平台方面问题, 刘翔等[ 2]基于SNMP协议监控服务进程的CPU和内存占用率, 服务进程的响应时间来判断服务是否正常。对应用服务方面的问题, 彭晓庆[ 3]以及庄纪林[ 4]结合J2EE技术进一步对资源服务平台的HTTP、IIS、Apache、SQL Server、Oracle和Z39.50等服务进行流量和可用性监测。以上监测技术是从应用服务的硬件环境和系统软件的性能和可用性方面出发, 更适合于本地镜像的数据库服务系统。

本研究从读者使用的角度出发, 来监测各数据库是否能被正常访问、检索和阅读。做到在最短时间内发现并通知相关技术人员解决服务中存在的故障。

2 监测系统需求分析

文献数据库运行状态自动监测系统主要是能监测文献数据库服务的实时运行状况, 对故障及时发现、报告和处理, 利用该系统帮助图书馆技术管理部门实现对文献数据库系统的7×24小时全天候监测, 保障各文献数据库的持续稳定运行。通过对监测数据进行深度分析, 实现快速定位故障根源、快速恢复服务和预防故障发生, 从而提升文献数据库服务的运行维护响应能力, 变被动式维护管理为主动式维护管理[ 5]

监测系统首先需提供文献数据库运行状态信息的采集功能, 能及时采集各数据库系统的运行状态信息, 包括是否可访问、能否有效检索、检索性能如何、是否能正常下载或阅读文献等, 并将信息记录下来; 其次监测系统需提供故障信息报警功能, 对数据库系统出现的问题通过QQ信息或邮件及时通知图书馆技术人员或数据库厂商技术人员, 提醒其进行故障处理; 第三是需提供运行状态信息的统计分析功能, 如哪些系统经常访问不正常、哪些系统检索性能差、哪些系统经常不能正常下载或阅读全文、不同时间段各数据库服务出现的故障情况等, 为文献数据库的维护管理提供决策支持。

3 监测系统的设计思路

系统采用运行状态信息采集、信息报警、故障维护和状态分析四位一体的监测模式[ 6, 7], 系统功能模型如图1所示。系统每隔一段时间从各文献数据库系统获取运行状态信息, 保存到状态信息库中。如出现异常运行状态信息, 则通过报警模块通知技术管理人员。技术管理人员收到故障信息后, 通过故障维护模块, 将处理结果填写到故障处理信息库中。系统可定期(如每周、每月或每年)对故障信息库中的数据进行多维分析, 方便技术管理人员了解文献数据库的运行服务情况。

图1 监测系统功能模型

信息采集模块对文献数据库服务系统采集的信息包括三个方面: 访问数据库服务系统检索页时间; 在数据库服务系统中输入关键词后进行信息检索的时间; 在数据库服务系统中打开(或下载)全文的时间。

如对文献数据库不能访问、检索和阅读, 或者请求超时, 则标识为异常。状态信息的监测过程是模拟读者对文献数据库系统进行访问、检索和阅读的过程。

报警模块对存在异常信息进行报警, 通知相关的技术管理人员, 报警方式为发送邮件或QQ信息。对所有的异常信息都通知图书馆技术人员, 对异常出现频率较高的数据库系统则通知厂商技术人员。通知的内容包含当前故障数据库系统名称和故障描述, 以及最近该数据库系统出现的故障描述、产生原因和解决方法, 方便技术人员迅速解决问题。

故障维护模块方便技术管理人员登记每个故障产生的原因、解决方法、故障处理人和处理时间, 为以后同类故障的处理提供参考。

数据分析模块采用多维数据分析技术对故障信息进行统计分析, 从多维的角度来了解数据库服务的运行状态, 维度如日期、数据库类型、故障类型等。

监测系统主要涉及4个数据表, 包括:

(1) 数据库参数表, 用于存储文献数据库系统的各参数, 包括数据库名称、数据库类型、认证参数、访问地址、检索地址和阅读地址;

(2) 运行状态信息表, 用来记录文献数据库系统的运行状态信息, 包括监测时间、是否可访问、访问时长、是否可检索、检索时长、是否可阅读和阅读打开时长;

(3) 维护人员表, 用来保存各数据库厂商技术维护人员及图书馆技术管理人员信息, 方便监测系统将故障信息通知给相关的技术人员;

(4) 故障处理表, 用于保存故障的处理信息, 对每个故障产生的原因和解决方法进行登记。

其数据结构及关系如图2所示:

图2 监测系统数据结构及关系图

4 监测系统功能实现

文献数据库服务系统运行状态自动监测系统实现对故障信息的采集、报警、处理和分析, 服务器系统环境采用Windows Server 2003, 数据库采用SQL Server 2005, 开发语言采用微软的Visual Studio 2010的VB.NET。

4.1 监测信息采集

文献数据库服务运行状态监测程序界面如图3所示。监测信息的采集可以设置监测的时间间隔(一般设置为每2小时监测1次)。监测采用模拟读者访问数据库的方法来测试数据库的可用性。根据所配置数据库系统的认证、访问、检索和阅读的URL地址参数, 程序对各文献数据库自动填写账号和密码进行认证、自动输入检索词进行检索和打开阅读页面, 并将这一过程的运行状态和时间记录下来。

图3 数据库服务运行状态监测信息采集

读者一般通过IP认证或账号认证的方式访问图书馆文献数据库。在这两种访问方式下, 程序模拟访问数据库的方法有所区别。对于IP认证方式, 程序可直接通过URL来访问、检索、阅读文献; 有少量数据库如“中外专利信息服务平台”、“远程知网”等, 程序模拟访问数据库前, 需要先进行账号认证。

因此, 监测数据库参数表中需要配置每个数据库的认证(账号认证模式配置)、访问、检索和阅读4种类型的参数, 以知网期刊数据库为例, 配置参数如表1所示。

表1 监测数据地址参数配置示例

程序对认证和检索需要在页面的文本框中输入账号、密码和检索词, 以及通过点击“登录”和“检索”按钮的操作, 来获取登录状态和检索结果, 其程序实现步骤如下:

①加载数据库认证页面, 并获取认证视窗

WebBrowser1.Navigate("http://epub.cnki.net/kns/logindigital.aspx ")

Dim htmlwin As HtmlWindow = WebBrowser1.Document

②填写账号和密码, 并触发登录按钮

htmlwin.Document.All("username").SetAttribute("value", username)

htmlwin.Document.All("password").SetAttribute("value", password)

htmlwin.Document.All("submittext").InvokeMember("click")

③判断登录是否成功, 并记录登录时间长度

④加载检索页面

WebBrowser1.Navigate("http://www.cnki.net/index.aspx ")

⑤填写检索词, 并触发检索按钮

WebBrowser1.Document.All("txt_1_value1").SetAttribute("value", "图书馆")

WebBrowser1.Document.Forms(0).InvokeMember("btnSearch ")

⑥判断检索是否成功, 记录检索时间

strhtml = htmlwin.Document.Body.InnerHtml

如果strhtml中含有检索结果“找到XXXX条结果”, 则检索成功。

⑦加载阅读页面

WebBrowser1.Navigate("http://kreader.cnki.net/Kreader/CatalogViewPage.aspx?dbCode=CJFQ&filename=ZGTS200302006&tablename=CJFD2003")

⑧判断能否打开阅读页, 记录打开阅读页时间

4.2 故障的判断与报警

所检测运行状态不正常包括访问失败、访问超时、检索失败、检索超时、全文打不开和全文打开超时6种情况, 其故障判断条件如表2所示, 其中, 超时参数可根据具体情况调整。

表2 故障判断条件

要发送的故障信息包括异常数据库名称、出现异常时间和异常描述, 以及当前数据库最近几次出现的异常时间、描述、原因和解决方法。

发送方式有两种: 邮件方式, 一般对经常出现故障的远程数据库通过邮件方式通知厂商技术人员; QQ信息方式, 对所有故障信息, 均通过QQ信息方式通知图书馆技术人员。

故障信息QQ发送技术方法为: 预先在监测计算机上登录QQ, 并添加相关技术人员为好友, VB.NET实现方法如下:

'创建WScript.Shell对象, 激活待发送故障信息的目标好友

Dim ws = CreateObject("WScript.Shell")

ws.AppActivate("填写QQ群名或QQ号")

'将message变量中的报警信息写入好友QQ窗口, 并发送给对方

ws.SendKeys(message)

ws.SendKeys("{ENTER}")

4.3 运行状态故障分析

运行状态故障分析功能实现方法为使用Microsoft SQL Server Analysis Services的Cube Browser(多维数据集浏览器)工具来建立运行状态多维数据集, 然后对建立的多维数据集进行上卷、下钻、切片和切块等多维统计分析操作[ 8], 从多个角度对运行状态信息进行浏览与分析。分析维度包括监测时间、处理时间、数据库名称、数据库类型和故障类型, 度量值为故障次数。运行状态故障信息多维分析功能如图4所示:

图4 运行状态故障信息多维分析

切片分析是指在多维数据集的某一维上选定一个维成员的动作, 所得的多维数组的子集称为在该维上的一个切片。例如, 只研究数据库运行状态为“检索服务不正常”的运行状态数据这就是一个切片。

切块分析是指在多维数组的某一维上选取某一区间的维成员。对于数据库运行状态多维数据集, 若研究某一监测时间区间为“2014年1月到3月”的数据就是一个切块。

钻取分析是改变维的层次, 变换分析的粒度, 它包括上卷和下钻。上卷是在某一维上将低层次的细节数据概括到高层次的汇总数据或者减少维数; 而下钻则相反, 它从汇总数据深入到细节数据进行观察或增加新维[ 9]。如要了解数据类型为“中文数据库”的总体运行状态, 就可以在“数据类型”层次上采用上钻操作; 要了解数据库更详细的运行状态, 可以在某个具体数据库名称维度上采用下钻操作。

5 监测系统应用效果分析

该数据库服务运行状态监测系统于2013年9月投入使用, 对中南大学图书馆106个文献数据库进行自动监测, 半年来收集到运行状态信息7.6万多条, 其中监测到故障记录621条, 通过QQ消息或邮件及时向相关技术人员发送了报警信息。故障信息统计结果如表3所示:

表3 文献数据库运行故障信息统计表

可以看出, 数据库出现频率最高故障类型是“数据库打不开”和“数据库访问超时”, 合计故障比例达到84%, 这种现象以外文库尤为突出, 故障原因主要是网速问题, 其次是由于文献数据库系统本身的并发性不高或软硬件环境出现故障。“检索”和“打开全文”方面的故障出现频率相对较少, 合计为16%, 故障原因一方面是网速的问题, 另一方面是厂商数据库系统本身的程序功能或数据不完善。

监测中发现有些文献数据库系统故障频率较高, 具体对这些数据库的故障信息及故障处理信息进行分析发现, 这些数据库以镜像数据库较多, 往往在系统升级或更新数据后产生故障的频率较高, 且故障产生后, 恢复时间往往要好几天, 有的甚至需要重装系统或数据。

按周对故障频次进行统计发现, 近半年来, 出现的故障频次逐步降低, 并趋于稳定, 由原来的平均每周30条左右下降到现在每周10条左右, 原因在于: 一方面系统能及时检测并及时处理故障, 另一方面是通过对常见故障的分析, 技术人员提前进行了相关故障的预防处理操作。

6 结 语

采用程序模拟读者访问数据库的监测方法, 读者可访问到的数据库, 不管是本地镜像还是远程数据库都能被监测到。图书馆技术管理人员无需每天人工访问数据库进行测试, 便能随时掌握各文献数据库的运行状态。该系统在实践中取得了较好的应用效果, 使文献数据库在服务中存在的问题得到及早发现和解决, 为文献数据库的可靠运行提供了保障。

参考文献
[1] 陈芳, 高月. 军队医院图书馆电子数据库管理的几点建议[J]. 医疗卫生装备, 2013, 34(5): 106-107.
(Chen Fang, Gao Yue. Database Management in Military Hospital Library[J]. Chinese Medical Equipment Journal, 2013, 34(5): 106-107. ) [本文引用:1] [CJCR: 0.5784]
[2] 刘翔, 丁祖荣, 经渊. 基于SNMP协议的电子资源服务监控系统研究与设计[J]. 图书馆学研究, 2007(9): 8-10.
(Liu Xiang, Ding Zurong, Jin Yuan. Design and Research of the Service Monitoring System of Electrical Resource Based on SNMP[J]. Researches in Library Science, 2007(9): 8-10. ) [本文引用:1] [CJCR: 1.6079]
[3] 彭晓庆. 高校图书馆电子资源服务监控系统设计与实现[J]. 现代图书情报技术, 2011(4): 82-88.
(Peng Xiaoqing. Design and Realization of the Library Electronic Resources Service Monitoring System[J]. New Technology of Library and Information Service, 2011(4): 82-88. ) [本文引用:1] [CJCR: 1.073]
[4] 庄纪林. 数字图书馆服务管理系统的设计和实现[J]. 现代图书情报技术, 2008(8): 92-96.
(Zhuang Jilin. Design and Implementation of a Service Management System of the Digital Library[J]. New Technology of Library and Information Service, 2008(8): 92-96. ) [本文引用:1] [CJCR: 1.073]
[5] 温小兵. 高校图书馆数据库安全管理[J]. 图书馆论坛, 2006, 26(3): 126-128.
(Wen Xiaobing. Database Security Management in Academic Libraries[J]. Library Tribune, 2006, 26(3): 126-128. ) [本文引用:1] [CJCR: 2.213]
[6] 阎伟, 刘瑜, 郝达睿. 应用系统运行状态监管的设计与开发[J]. 计算机系统应用, 2012, 21(5): 126-129.
(Yan Wei, Liu Yu, Hao Darui. Application System Running Status Supervision Design and Development[J]. Computer Systems & Applications, 2012, 21(5): 126-129. ) [本文引用:1]
[7] 田相斋. 服务器远程监控的设计与实现[J]. 软件导刊, 2012, 11(6): 60-61.
(Tian Xiangzhai. Design and Implementation of Remote Monitoring Server[J]. Software Guide, 2012, 11(6): 60-61. ) [本文引用:1]
[8] 哈日那思, 菲尔格林, . SQL Server 2012 Analysis Services高级教程[M]. 杨小东, 彭明珍, 杨锦澎译. 北京: 清华大学出版社, 2013.
(Harinath S, Pihlgren R, et al. Professional Microsoft SQL Server 2012 Analysis Services with MDX and DAX[M]. Translated byYang Xiaodong, Peng Mingzhen, Yang Jinpeng. Beijing: Tsinghua University Press, 2013. ) [本文引用:1]
[9] 熊拥军, 陈春颖. 基于DW和OLAP技术的数字图书馆资源访问分析[J]. 现代情报, 2009, 29(11): 153-157.
(Xiong Yongjun, Chen Chunying. Digital Resources Service Analysis System Based on Data Warehouse and OLAP[J]. Journal of Modern Information, 2009, 29(11): 153-157. ) [本文引用:1]