论文部分内容阅读
[摘 要]利用PHP搭建一个BS架构的告警信息推送平台,对网络内原有软件的Access数据库进行分析,通过二次开发实现告警信息向手机上的推送,已提升工作效率,促进办公移动化。
[关键词]动环监控 PHP Access 二次开发
中图分类号:TN929.5;TP277 文献标识码:A 文章编号:1009-914X(2017)20-0133-02
一、系统设计背景
本地局点动力环境监控自2002年引入沈阳某厂家监控系统,截止目前,共监测局点43个,通过4条电话线进行轮询监测,提取局点交、直流电压、温度、红外、烟雾门禁等状况并形成声光告警界面,在十几年的运行中,为本地局点动力环境安全起到了积极的作用。本地网络维护人员较少,维护界面兼顾室内外,网管监控、设备扩容、集团专线故障、开局调测等,都由维护中心仅有的3个人负责,在工作人员外出施工的间隙中,部分局点的动环告警难以被监控、发现、告知一线人员,极易导致局点故障时出动速度慢的后果。客观上来说,并非所有疏漏都是工作人员意识问题,兼顾太多的工作,在网络监控中确实存在不可避免的疏忽,这就需要更多的人来参与监控,共同做好网络维护工作,这是系统设计的初衷。
二、系统实现效果
如何让更多的人参与监控?搭建一个B/S框架的动力环境告警推送系统,简称推送系统,通过查询沈阳厂家软件的数据库变动,并将相关告警信息短信发送至一线员工手机。
三、系统实现步骤
3.1 首先分析出该厂家的软件数据库采用Access,其系统结构如图1:
3.2 既有系统只具备收集告警至网管,需专人盯控,不具备告警推送功能,需在既有基础上进行二次开发,目前信息推送至手机的方式很多,如直接呼叫、短信通知、微信、QQ、阿里等手机APP都可以将信息在手机上展现。二次开发可利用硬件或软件接口等方式进行推送,相比较复杂和收费的APP接口,新系统直接向手机邮箱发送邮件,利用手机邮箱和手机的短信关联实现推送,不失为一种简便且经济的办法。(图2)
3.3 系统结构描述:
1、硬件环境搭建:任意能够上网主机一台做WEB服务器,配置双网卡,一个网卡上网,一个网卡连接动环监控主机,确保能和监控系统正常通信。2.服务器软件环境搭建:PHP/APACHE/ACCESS数据库.3、数据库连接通过ODBC中转$constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath('data1.mdb');
$link=odbc_connect($constr,'','psw',SQL_CUR_USE_ODBC) or die(odbc_error());。4、人机接口前台页面展现通过HTML+CSS实现。
3.4 拟定系统工作流程如下:
1、保证推送服务器能够同时和原动环监控服务器、互联网通信畅通,且在动环监控主机上安装IIS服务,启动FTP服务并建立相关用户,权限为读取(不能为写入或完全)。2、推送平台建立告警表,主要字段有局点地址编号addr、时间time、类型type、内容content;一线员工手机号码数据表主要字段有局点编码addr、对应员工手机号码tel、其他如局点名称数据表、告警级别数据表、总告警数据表等表项。3、推送系统平台定时从动环监控服务器内FTP下载其Access数据库,并与前一时刻的数据表形成对比。4、按时间索引查询数据,发现有新增告警条目后,根据告警信息的内容,对比其他表项,分析出该告警源自哪个局点;告警级别是紧急还是非紧急;应不应该发送给员工;应该发送给哪位员工,确定需要发送后,再进行邮件发送。5、员工手机邮箱接收到邮件后,因邮箱设置短信提醒的关联,员工手机上会出现短信提示。
四、系统主要代码分析:
4.1 推送服务器定时提取监控主机中的data.mdb文件,代码如下:
<?php
$conn=ftp_connect(‘192.168.100.89’);
ftp_login($conn,“ftpuser”,“ftppw”);
ftp_systype($conn);
$filelist=ftp_nlist($conn,“.”);
ftp_get($conn,“data.mdb”,“data.mdb”,FTP_BINARY);
ftp_quit($conn);
?>
4.2 PHP分析data.mdb数据库关联。
if($row !== $row1){ //比较两表是否相同,如果不同则将记录写入附表
$subtract=$row-$row1;
$sqldifferen="select top ".$subtract." * from alarm order by time desc"; //找出差別
$resultdifferen=odbc_exec($link, $sqldifferen); //从主表中找出不同的
while($rowdifferen=odbc_fetch_array($resultdifferen)){
$sqlsyn="insertinto alarm(`Addr`,`time`,`type`,`Content`)values('".$rowdifferen['Addr']."','".$rowdifferen['time']."','".$rowdifferen['type']."','".$rowdifferen['Content']."')"; odbc_exec($link1,$sqlsyn) or die (odbc_error());}
4.3 建立数据库对应关系,将不同局点对应不同联系手机
$rowmailto=odbc_fetch_array($resultmailto);
$smtpemailto=$rowmailto['tel'].'@139.com';
$mailsubject = $addr.' '.$rowdifferen['time'].' '.$rowdifferen['Content'];
//发送邮件内容
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);//发送邮件
echo '已发送信息';(图3)
五、注意事项
1、与SQL、MYSQL不同,access为平面文件,不能远程访问,因此需要在服务器上利用FTP工具或者在监控主机上利用同步软件,做到数据库文件的实时更新。
2、PHP配置FTP操作时间要大于下载文件的时间,本地数据库文件同步时长90秒。
3、一定要注意监控主机中给FTP用户分配的权限,只能给读取权限,WEB服务器不能对动环数据库只能复制,不能有任何读写操作。
4、该系统只是修改了动环告警系统的通知方式,不占用既有系统TW语音板资源,不影响监控主机负荷。
5、该系统实现重点利用PHP的两个函数,fopen()、mail()、以及对ACCESS数据库的处理。
6、该系统提供一个思路,首先,所有涉及数据库的系统,都可以转换为B/S方式为人们提供更随时随地自由的服务,例如PSTN交换系统、城域网告警系统。其次,既有的外围科技发展,已经为我们提供了很多资源,协调利用这些资源,可以节约不少支出,如本案例中,移动手机邮箱代替短信机。
7、在本实例中,较CS结构具备一定优点,通过利用本机既有的TW8ID提供接口做二次开发,会和既有动环监控系统资源冲突,若用CS直接读写数据库,一方面增加电脑负荷,再一方面安全性较低。
六、總结
传统盯控网管的工作方法耗时耗力,随着办公移动化、通信个人化的发展,人们的碎片时间被利用的越来越多,目前已具备随时随地办公的能力。推送服务器分析数据库变动,向多个手机邮箱发送邮件,实现短信通知功能,该套简单且经济的方案,在提高网络安全的基础上,也提升了工作效率,有助于办公移动化发展。
[关键词]动环监控 PHP Access 二次开发
中图分类号:TN929.5;TP277 文献标识码:A 文章编号:1009-914X(2017)20-0133-02
一、系统设计背景
本地局点动力环境监控自2002年引入沈阳某厂家监控系统,截止目前,共监测局点43个,通过4条电话线进行轮询监测,提取局点交、直流电压、温度、红外、烟雾门禁等状况并形成声光告警界面,在十几年的运行中,为本地局点动力环境安全起到了积极的作用。本地网络维护人员较少,维护界面兼顾室内外,网管监控、设备扩容、集团专线故障、开局调测等,都由维护中心仅有的3个人负责,在工作人员外出施工的间隙中,部分局点的动环告警难以被监控、发现、告知一线人员,极易导致局点故障时出动速度慢的后果。客观上来说,并非所有疏漏都是工作人员意识问题,兼顾太多的工作,在网络监控中确实存在不可避免的疏忽,这就需要更多的人来参与监控,共同做好网络维护工作,这是系统设计的初衷。
二、系统实现效果
如何让更多的人参与监控?搭建一个B/S框架的动力环境告警推送系统,简称推送系统,通过查询沈阳厂家软件的数据库变动,并将相关告警信息短信发送至一线员工手机。
三、系统实现步骤
3.1 首先分析出该厂家的软件数据库采用Access,其系统结构如图1:
3.2 既有系统只具备收集告警至网管,需专人盯控,不具备告警推送功能,需在既有基础上进行二次开发,目前信息推送至手机的方式很多,如直接呼叫、短信通知、微信、QQ、阿里等手机APP都可以将信息在手机上展现。二次开发可利用硬件或软件接口等方式进行推送,相比较复杂和收费的APP接口,新系统直接向手机邮箱发送邮件,利用手机邮箱和手机的短信关联实现推送,不失为一种简便且经济的办法。(图2)
3.3 系统结构描述:
1、硬件环境搭建:任意能够上网主机一台做WEB服务器,配置双网卡,一个网卡上网,一个网卡连接动环监控主机,确保能和监控系统正常通信。2.服务器软件环境搭建:PHP/APACHE/ACCESS数据库.3、数据库连接通过ODBC中转$constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath('data1.mdb');
$link=odbc_connect($constr,'','psw',SQL_CUR_USE_ODBC) or die(odbc_error());。4、人机接口前台页面展现通过HTML+CSS实现。
3.4 拟定系统工作流程如下:
1、保证推送服务器能够同时和原动环监控服务器、互联网通信畅通,且在动环监控主机上安装IIS服务,启动FTP服务并建立相关用户,权限为读取(不能为写入或完全)。2、推送平台建立告警表,主要字段有局点地址编号addr、时间time、类型type、内容content;一线员工手机号码数据表主要字段有局点编码addr、对应员工手机号码tel、其他如局点名称数据表、告警级别数据表、总告警数据表等表项。3、推送系统平台定时从动环监控服务器内FTP下载其Access数据库,并与前一时刻的数据表形成对比。4、按时间索引查询数据,发现有新增告警条目后,根据告警信息的内容,对比其他表项,分析出该告警源自哪个局点;告警级别是紧急还是非紧急;应不应该发送给员工;应该发送给哪位员工,确定需要发送后,再进行邮件发送。5、员工手机邮箱接收到邮件后,因邮箱设置短信提醒的关联,员工手机上会出现短信提示。
四、系统主要代码分析:
4.1 推送服务器定时提取监控主机中的data.mdb文件,代码如下:
<?php
$conn=ftp_connect(‘192.168.100.89’);
ftp_login($conn,“ftpuser”,“ftppw”);
ftp_systype($conn);
$filelist=ftp_nlist($conn,“.”);
ftp_get($conn,“data.mdb”,“data.mdb”,FTP_BINARY);
ftp_quit($conn);
?>
4.2 PHP分析data.mdb数据库关联。
if($row !== $row1){ //比较两表是否相同,如果不同则将记录写入附表
$subtract=$row-$row1;
$sqldifferen="select top ".$subtract." * from alarm order by time desc"; //找出差別
$resultdifferen=odbc_exec($link, $sqldifferen); //从主表中找出不同的
while($rowdifferen=odbc_fetch_array($resultdifferen)){
$sqlsyn="insertinto alarm(`Addr`,`time`,`type`,`Content`)values('".$rowdifferen['Addr']."','".$rowdifferen['time']."','".$rowdifferen['type']."','".$rowdifferen['Content']."')"; odbc_exec($link1,$sqlsyn) or die (odbc_error());}
4.3 建立数据库对应关系,将不同局点对应不同联系手机
$rowmailto=odbc_fetch_array($resultmailto);
$smtpemailto=$rowmailto['tel'].'@139.com';
$mailsubject = $addr.' '.$rowdifferen['time'].' '.$rowdifferen['Content'];
//发送邮件内容
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);//发送邮件
echo '已发送信息';(图3)
五、注意事项
1、与SQL、MYSQL不同,access为平面文件,不能远程访问,因此需要在服务器上利用FTP工具或者在监控主机上利用同步软件,做到数据库文件的实时更新。
2、PHP配置FTP操作时间要大于下载文件的时间,本地数据库文件同步时长90秒。
3、一定要注意监控主机中给FTP用户分配的权限,只能给读取权限,WEB服务器不能对动环数据库只能复制,不能有任何读写操作。
4、该系统只是修改了动环告警系统的通知方式,不占用既有系统TW语音板资源,不影响监控主机负荷。
5、该系统实现重点利用PHP的两个函数,fopen()、mail()、以及对ACCESS数据库的处理。
6、该系统提供一个思路,首先,所有涉及数据库的系统,都可以转换为B/S方式为人们提供更随时随地自由的服务,例如PSTN交换系统、城域网告警系统。其次,既有的外围科技发展,已经为我们提供了很多资源,协调利用这些资源,可以节约不少支出,如本案例中,移动手机邮箱代替短信机。
7、在本实例中,较CS结构具备一定优点,通过利用本机既有的TW8ID提供接口做二次开发,会和既有动环监控系统资源冲突,若用CS直接读写数据库,一方面增加电脑负荷,再一方面安全性较低。
六、總结
传统盯控网管的工作方法耗时耗力,随着办公移动化、通信个人化的发展,人们的碎片时间被利用的越来越多,目前已具备随时随地办公的能力。推送服务器分析数据库变动,向多个手机邮箱发送邮件,实现短信通知功能,该套简单且经济的方案,在提高网络安全的基础上,也提升了工作效率,有助于办公移动化发展。