基于聚类分析的农业SCADA服务器预警阈值提取方法.docx
《基于聚类分析的农业SCADA服务器预警阈值提取方法.docx》由会员分享,可在线阅读,更多相关《基于聚类分析的农业SCADA服务器预警阈值提取方法.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第 33 卷 增刊 1 农 业 工 程 学 报 Vol.33 Supp.1 2017 年 2 月 Transactions of the Chinese Society of Agricultural Engineering Feb. 2017 293 基于聚类分析的农业 SCADA 服务器预警阈值提取方法 杨丽丽,吴春辉,张大卫,苏 娟 (中国农业大学信息与电气工程学院,北京 100083) 摘 要: 针对计算机服务器预警阈值人为设定不准确的问题,该文以某农业数据采集与监视控制系统( supervisory control and data acquisition, SCADA)中 Apa
2、che 服务器为研究对象,提出一种基于聚类分析提取服务器监控指标预警阈值的方 法。首先对服务器运行数据与某类异常发生前的预警信息进行特征选择。在数据分布形状未知的情况下,对特征选择结 果分别用 K-means 和 CURE( clustering using representative) 2 种聚类算法挖掘异常发生前服务器运行状态的普遍特征, 将聚类结果用于提取该类异常的预警阈值。试验表明:特征选择可提取出影响该 SCADA 系统中服务器性能的监控指标。 对比聚类结果, CURE 算法聚类质心与正常信息质心的距离范围为 0.020.05,而 K-means 算法聚类质心与正常信息质心 的距离
3、范围为 0.150.2, CURE 算法提取的预警阈值更加靠近预警发生时的服务器临界状态。在实际验证中, CURE 相较 于 K-means 预警时间至少提前 24 h,该文方法提取的服务器预警阈值相比人工方式能更早地发现系统潜在风险,可用于 动态更新预警阈值。 关键词: 服务器;预警系统;聚类分析;阈值;特征选择;动态提取;数据采集与监视控制系统;农业 doi: 10.11975/j.issn.1002-6819.2017.z1.044 中图分类号: TP391 文献标志码: A 文章编号: 1002-6819(2017)-Supp.1-0293-07 杨丽丽,吴春辉,张大卫,苏 娟 . 基
4、于聚类分析的农业 SCADA 服务器预警阈值提取方法 J. 农业工程学报, 2017, 33(增刊 1): 293 299. doi: 10.11975/j.issn.1002-6819.2017.z1.044 http:/www.tcsae.org Yang Lili, Wu Chunhui, Zhang Dawei, Su Juan. Early-warning threshold extraction method of agricultural SCADA server based on clustering analysisJ. Transactions of the Chinese
5、 Society of Agricultural Engineering (Transactions of the CSAE), 2017, 33(Supp.1): 293 299. (in Chinese with English abstract) doi: 10.11975/j.issn.1002-6819.2017.z1.044 http:/www.tcsae.org 0 引 言 随着智慧农业 1的发展,现代信息技术越来越多地融 入到了传统的农业生产中,出现了许多农业智能系统, 作为这些智能系统的支撑系统 SCADA2( supervisory control and data acq
6、uisition),即数据采集与监视控制系 统,也得到逐步的应用 。 在以计算机为中心建立起来的 农业 SCADA 系统中,计算机能否保持良好的运行状态, 关系到整个 SCADA 系统的健康运作。为保障系统正常运 行,目前已有很多软件支持 SCADA 系统中计算机的实时 监控以及预警功能,如 Cacti3, Zabbix4等。在这些监控 软件中,某一监控指标的预警阈值多为人工设定,当该 监控指标运行状态超过该阈值时,触发预警 5。这种方式 特点是实现简单,但有以下不足:仅凭经验难以准确确 定预警阈值;随着计算机使用年限的增长,固定的预警 阈值难以动态反映预警发生时的计算机临界状态;当监 控指标
7、多、计算机数量大时,人工方式耗时耗力。 在国内已有的类似研究中,柏晶晶等 6提出了一种基 于组合客观阈值与主观阈值的稳态电能质量预警阈值判 定方案,利用基于距离的聚类分析法和改进的最大类间 收稿日期: 2016-11-17 修订日期: 2016-12-17 基金项目: “ 十二五 ” 国家科技支撑计划课题( 2015BAK04B01) 作者简介:杨丽丽,女,内蒙古人,副教授,博士,研究方向为数据挖掘。 北京 中国农业大学信息与电气工程学院, 100083。 Email: 通信作者:苏娟,女,黑龙江人,副教授,博士,研究方向为电力系统自 动化。北京 中国农业大学信息与电气工程学院, 10008
8、3。 Email: 万方数据 方差法( Otsu)确定客观阈值,而主观阈值需由专家打分 决定;闫伟等 7利用基于加权算法 K-means 进行相似度阈 值的提取,用加权的方式来避免无关特征的影响,而特 征的权重仍需由专家打分确定;钱瑾等 8提出一种基于 K-means 聚类分析的锅炉运行参数基准值确定的新思路, 但对数据分析中的干扰因素考虑不足 。 在国外的类似研 究中, Carpenter 等 9提出基于地理信息系统( geographic information system, GIS)和分布式建模的山洪灾害预警 系统,利用回归分析方法,通过分析降雨量数据以及数 字地形数据,得出山洪径流
9、阈值 。 但是由于涉及的动态 数据较多,阈值的结果可靠性不稳定。 Zollo 等 10提出基 于密集型传感器网络的早期地震预警机制,通过对密集 网络周期性的探测数据进行回归分析得到早期地震波的 预警阈值 。 该方案对于区域性的预警阈值具有较好的效 果,但推广性不强。 本文针对相关研究中存在的不足,以农业 SCADA 系统中计算机的预警阈值为例,提出了一种基于聚类分 析 11-12的服务器预警阈值动态提取方法。利用系统中大量 的服务器运行信息与日志信息,采用 Relief 特征选择算法 对数据降维,找出影响服务器性能的主要因素;由于在 聚类分析前数据分布形状是未知的,因此分别用 K-means
10、算法与使用代表点的 ( clustering using representative, CURE) 算法对特征选择结果进行聚类分析,挖掘出该类预警发 生时数据的普遍特征;最后将聚类结 果用于计算机预警 阈值的分析提取;定期对系统新生成的运行数据进行分 析,更新系统阈值,保证阈值能动态反映系统运行状态。 min dist(ci , x)2 x xmin dist (xi i )2 294 农业工程学报( http:/www.tcsae.org) 2017 年 以该农业 SCADA 系统中 Apache13服务器为例对以上方 法进行验证,结果表明本文方法运行时间小,适合大数 据集,能够合理设定该
11、服务器监控指标的预警阈值,且 本文方案简单易行,具有一定普适性。 1 农业 SCADA 系统预警需求分析 为达到农业 SCADA 系统设备集中监控与管理的目的, 对系统中计算机 CPU 温度、风扇转速等指标进行采集, 并基于 Apache 服务器进行设备状态实时展示。在实际应 用中,采集的指标可达几十种以上,当采集数量较多时, 对这些数据进行并发访问容易造成后端 Apache 服务器的 访问压力。为保障用户正常访问,要求 Apache 服务器处 理前端用户并发访问请求的处理时间应控制在 0 1 s 的 范围内,超出该范围则表示服务器性能达不到要求,将 触发一个预警信号,以尽早进行干预。根据该需
12、求,对系 统中可能影响 Apache 服务器性能的指标进行监控,又因 服务器阈值随着系统环境的变化而改变,因此需对系统 新生成的运行数据定期采集并分析,动态调整预警阈值。 2 基于聚类分析的服务器预警阈值动态调整方法 2.1 基于 Relief 算法的相关特征筛选 本文研究涉及两部分数据:农业 SCADA 系统中 Apache 服务器的运行信息与日志中某类异常发生前对应 的预警信息 。在 对其进行数据挖掘前,需要对数据进行 时间的大小,数据可分为正常与异常 2 大类。通过观察 Apache 日志发现,在异常数据当中,还包含不同范围的 Apache 处理请求时间,即实际的数据分布可能如图 1 所
13、示。 注: N1 为正常数据; A1、 A2、 A3 为异常数据中范围更小的数据集。 Note: N1 is normal data; A1、 A2 and A3 are smaller dataset of abnormal data. 图 1 监控数据的分布 Fig.1 Monitored data distribution 在这种情况下,应提取类簇 A1 用于最后的阈值分析, 因为其最靠近正常数据,能更早的发现系统异常 。 根据 这种需求,要求聚类算法不仅能明显区分正常与异常数 据,还应能在异常数据中进行更进一步的聚类,即要求 算法能发现更小的类簇。 K-means 算法 24-26是典
14、型的基于距离的聚类算法,速 度快且实现简单,可以设定不同的 k 值来得到不同的聚类 结果。因此,可以通过改变 k 值来发现更小的类簇,但其 对干扰数据 、初 始点的选择比较敏感,算法的终止条件 是目标函数不变或者小于某一个给定的阈值 。 目标函数 如公式( 2)所示。 清洗并将两种信息依照时间建立关联,合并成一条信息 记录。数据清洗 14-15主要包括空值检查和无效值检查, k i1 xci ( 2) 本文对存在空值或无效值的数据进行删除处理 。 在数据 清洗和关联之后,由于数据各维度单位、数量级均不同, 需进行归一化。归一化公式如式( 1)所示。 y ( 1) xmax xmin 式中 x
15、为某一监控指标的样本值, xmax 和 xmin 分别为样本 的最大、最小值, y 为归一化结果。 归一化 后的数据 存在 无关特征 ,需 对其进一 步 “ 降 维 ” ,即特征选择 16-18。本文选择 Relief 算法,其核心思 想是:好的特征应使相似的样本相近,而不同的样本远 式中 ci 为第 i 个簇的质心, dist(ci, x)为簇 ci 中的样本 x 与 质心的距离, k 为设定的聚类个数。 CURE 算法 27-28是一种层次聚类算法,其用多个代 表点而不是质心来描述簇,相比较 K-means 实现复杂, 但其具有较好的抗干扰能力,且算法参数中代表点个数、 收缩因子 的设定可
16、利用现有的研究成果。考虑两个算 法各有优缺点,而且在聚类分析前数 据分布形状是未知 的,本文设立了 K-means 和 CURE 的对比试验。 这 2 种算法都以欧几里得距离作为样本相似性的度 量,欧几里得距离公式如下: 离,即当一个特征对分类的结果影响明显时,则增加该 特征的权重。算法直接利用数据的统计性能来选择特征, n i1 y ( 3) 速度较快且独立于后续算法 19,开销较小,适合大数据 集 。 算法的最后将计算出各个特征对应的权重,权重越 大,则表明该特征越相关 。在 算法中,可设定权重阈值 来过滤特征权重低于该阈值的特征,从而得到相关特征 子集 20-21。本文设定了不同特征权重
17、阈值,得到不同特 征子集用于后续的聚类分析,并比较了不同特征权重阈 值对聚类结果的影响。 2.2 聚类分析 在计算 机监控中 ,当 出现异常 预警 时,仅一 条异常 状态的预警信息难以准确体现异常发生前的计算机运行 特征 。 根据 “ 物 以类聚 ” 的思想,聚类算法能将具有相 似异常状态的数据聚合,用 “ 一类信息 ” 代替 “ 一条信息 ” , 从而反映出该异常发生前计算机运行的普遍特征 22-23。 在本文农业 SCADA 系统中,根据 Apache 处理请求 万方数据 式中 n 代表数据维度; xi, yi 分别代表样本 x, y 在第 i 维 度上的值。 dist 越小表明两样本越相
18、似,反之,则表示差 别越大。 2.3 预警阈值提取 聚类分析形成多个结果簇,为使预警阈值更加准确, 选取最能代表该异常发生前服务器运行特征的结果簇用 于预警阈值的分析 。 为避免随机误差,对该簇里的各个 维度的数 据进行平均值计算,用该簇的质心来表示各个 维度的预警阈值。 本文动态阈值的提取流程如图 2 所示。通过定时执 行脚本定期的采集系统运行数据,包括 Apache 日志信息 与服务器运行信息 。 采集的数据需要依照时间关联,并 清洗 、 归一化,以符合特征算法的输入要求 。 经过特征 选择算法处理后,剔除无关特征,减少了数据维度,这 3 增刊 1 杨丽丽等:基于聚类分析的农业 SCADA
19、 服务器预警阈值提取方法 295 有利于加快后续聚类算法的分析速度,同时减少算法分 析过程的干扰因素,提高聚类结果的准确性。同时采用 2 种算法进行聚类分析,比较聚类结果用于服务器预警阈 值的分析提 取。 定期对系统中新产生的数据执行以上流 程,可使预警阈值动态更新,及时准确地反映系统当前 运行状态。 3.1 特征选择 将归一化后的数据作为 Relief 算法的输入数据,重 复执行 Relief 算法 20 次,绘制每次计算获得的各项监控 指标的特征权重,如图 3 所示。 . 注: k 为聚类数; 为收缩因子; K-means 和 CURE 为聚类算法。 Note: k is pre-dete
20、rmined cluster number; is constriction factor; K-means and CURE are cluster algorithms. 图 2 预警阈值提取流程 Fig.2 Procedure of early-warning threshold extraction 3 算例仿真 对中国农业大学涿州农场的 SCADA 系统中的计算 机服务器进行算例仿真。连续一个月采集系统 Apache 服 务器的运行信息 、 数据库服务信息,采集脚本的执行频 率为每 5 min 一次,一个月的 Apache 运行日志数据大小 为 15 G,经过时间关联后得到的服务器运
21、行记录共 8 612 条,根据 Apache 处理请求时间对记录进行分类,将处理 请求时间小于 1 s 的记录定义为正常记录,共 7 207 条, 大于 1 s 的定义为异常记录,共 1 405 条。每一条记录包 括 CPU、内存、网络带宽、 Apache 服务以及数据库服务 5 大类信息,考虑影响 Apache 服务性能的可能因素,对 其中的 14 个基本指标进行监控采集,如表 1 所示。 表 1 基本监控指标 Table 1 Basic monitoring indicators 编号 No 监控项目 Monitoring items 1 CPU 空闲时间 CPU idle time 2
22、lo 带宽 Bandwidth of lo (Gps) 3 em1 带宽 Bandwidth of em1 (Gps) 4 Vrbr0 带宽 Bandwidth of Vrbr0 (Gps) 5 Vnet0 带宽 Bandwidth of Vnet0 (Gps) 6 vnet1 带宽 Bandwidth of vnet1 (Gps) 7 内存利用率 Memory used rate/% 8 Apache 连接数 Apache connections 9 Apache 并发数 Apache concurrencies 10 数据库打开文件数 Database open files 11 数据库打
23、开表数 Database open tables 12 数据库已打开文件数 Database opened files 13 数据库连接数 Database connections 14 数据库并发数 Database concurrencies 注: lo, em1, Vrbr0, Vnet0, vnet1 为该服务器上的网卡。 Note: lo, em1, Vbr0, Vnet0 and vnet1 are network interface cards on server. 万方数据 注:一条曲线代表 Relief 算法的一次运行结果。 Note: A line represents a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 聚类分析 农业 SCADA 服务器 预警 阈值 提取 方法
限制150内