2021年1月 内蒙古科技与经济
January 2021
第"期总第 468 期
Inner Mongolia Science Technology & Economy
No. 2 Total No. 468
基于企业徵信的图书馆网絡裣测功能研究与实现
—
以西安建筑科技大学图书馆为例
杨平生
(西安建筑科技大学图书馆,陕西西安710055)
摘要:以西安建筑科技大学图书馆为例,对基于企业的图书馆网络检测功能进行了研究,通 过企业
的开放接口和P y h t o n 脚本,检测图书馆应用系统和关键网络设备,发送状态信息给手机端 企业A p p ,实现了远程实时掌握图书馆网络状况。
关键词:企业;P y t h o n ;图书馆网络检测
中图分类号:G 250. 7;T P 393. 1(241)文献标识码:B 文章编号:1007—6921 (2021)02—0079—02随着图书馆线上业务的发展,各种电子期刊、
电子图书、学位论文等数字化资源实行7 X 24h 不间 断服务;书目检索、人馆预约、座位预约、研讨空间预 约等都要在线进行,因此保证图书馆的在线应用系 统和网络设备能够正常运行成了一项重要任务。系 统管理人员需要随时知道应用系统和关键网络设备 的当前运行状态,尤其在非工作时间,发生故障时才 能及时得到预警,并排除故障,因此有一个针对图书 馆使用的、便捷的、轻量级的检测功能模块就显得非 常有必要。
企业是腾讯公司打造的面向企业市场的通 讯与移动办公工具,主要功能有企业通讯录、视频会 议、考勤打卡、审批模板、企业支付、微文档、微盘等+ 企业具有开放的生态,开放了 13类390个接口 (A P I ),包括通讯录管理、身份验证、消息推送、O A 数据接口、电子发票、移动端S D K 等接口。笔者正是利用企业开放的接口实现了针对 图书馆应用系统和网络设备的检测功能,只要在手 机上登录企业,就能随时接收到检测程序发送 来的检测结果,实时掌握系统和设备的运行状况。 西安建筑科技大学图书馆自从2018年4月开始使 用该检测功能至今,一直运行良好,尤其在假期和疫 情期间,为及时掌握应用系统和设备信息发挥了一 定的作用。1
研究与方法
利用企业发送消息来实现运维监控与告警 的研究有周昊实现的将Z a b b i x 和企业运用于
公安监控网络韦筱泉等实现的后台程序向企业
发送消息;李琦实现的以O E M C C 与企业微 信结合的数据库集中监管李正等实现的基于企 业的网络故障告警系统[4'刘淑影等实现的基 于企业的机房报警系统崔超实现的基于企 业推送信息&'。
笔者采用的方法是将检测程序部署在服务器 上,负责定时检测图书馆主页、书目检索系统、重要 数据库等各项应用系统和U P S 、汇聚交换机、监控 录像机、门禁服务器等设备,然后将检测信息通过企 业的开放接口传送至手机端企业A p p ,实
现的效果如图1。如果有智能机房管理系统,还可 以采用中间库的方式来采集状态数据。
文中应用的检测脚本采用P y t h o n 2. 7编写,调 用的第三方库包括
:requests
、、s o n 、subprocess 、re 、
BeautifulSoup 。
图1企业检测结果
2 功能实现
2.1 接口调用与信息发送
注册企业获取c o r p S 用于识别企业;创建 应用获取A g e n t l d 参数用于识别应用;获取Secret 密钥用于请求验证身份的
T o k e n 。所有接口使用
形容人高兴的成语H T T P S
协议,通过
G E T
或P O S T
方法请求。可以描写声音的四字词语
指定消息允许接受的成员I D
列表和部门;D 列表、
标签
I D
列表,消息文本最长不超过2 048字节。主
要代码如下:
defToken(self )
:
url
= n h t p s : //qyapi . weixin . qq . com/cgi —
bin /gettoken ,
p a rams =
6 ’ corpid ’: ’ w小孩起名字大全免费
w
& & & & & 1c 2’,’
收稿日期=2020 — 08—26
作者简介:杨平生#967 —),男,西安建筑科技大学图书馆馆员,研究方向:智慧图书馆。
•
79
•
总第468期内蒙古科技与经济
corpsecret’:r'd o Z J g P M & &&&&bt84'}
r== requests,get( url〇url,params〇p a r a m s)
token〇js〇n.loads",text) [’access_token’]
return token
defsend_ m e s s a g e(self):
data= { "touser" :"2all","toparty" :"Party-I D1 |PartyID2 ","totag":"T a g I D l|T a g I D2 ",
"m s g t y p e" :"text" ?"agentid":’ &&&&&&
& ’,"text"; {"content" ;"4s"4 ( self,text) }," safe" :0}
value== json.d u m p s (data?ensure_ a s c i i = False)
token=self.T o k e n")
url=’qyapi.weixin.qq/cgi— bin/m e s s a g e/send? access —tok e n=4s'4(token) r=requests.post(url,data=value)
<
2. 2 检测应用系统
H T T P状态码(H T T P S t a t u s C o d e)指服务器返回的对超文本传输协议的响应,是一个包含数字代码的信息头,它是由L F C 2616所规范定义的。状态码能够反映服务器的消息、成功、重定向、
请求错误、服务器错误的详细状况。状态码200即为
O K状态码,表示请求成功,请求的响应头或数据体将得到返回,所以如果识别出200状态码,就表示服务器处于正常状态。笔者使用requests库,获取图书馆应用系统网页的状态码,根据状态码的状况返回信息,判断应用是否处于正常状态,然后将判断加入消息列表。主要代码如下:
defcheck—url(url,n a m e):
response== requests,get(url)
ifresponse.status_code==200 :
m s g.a p p e n d(n a m e +’网页正常')else,
m s g.a p p e n d(n a m e P’网页异常')
2. 3 检测U P S状态
网络爬虫是指能够按一定的规则抓取网络信息的一段程序。U P S运行状态的信息存在于本地
U P S的W e b页面中,而这个页面是需要登录才能打开的,所以需要网络爬虫模拟正常浏览器登录来
获取信息。笔者通过requests的P O S T方法登录
U P S的W e b页面,使用BeautifulSoup解析文档,提取其中表示U P S当前报警状态的数据,转码后发送至推送信息列表。主要代码如下:
defapc(Dost,referer,url,n a m e):
headers== {A c c e p t’text/D t m l,application/ xhtml P x m l,application/xml+q=0.9,im a g e/ w e b p?ima g e/a p n g,& / &;q=0. 8','Accept一 F n c o-ding'’gzip,deflate'’H o s’:host’Referer' :refe-rer,
’Use r 一 A g e n’’’Mozilla/5. 0 ( W i n d o w s N T
6.1) A p p l e W e b K i t/53
7. 36 (K H T M L J i k e G e c k o)
C h r o m e/67. 0. 3396. 99 Safari/537. 36'}
f o r m—data== {’login _u s e r n a m e7:’ & & & ',丨login—p a s s w o r d'’'&&&','s u b m i’:'Lo
g O n',} response=requests,post( url== url,headers ==headers,data== for m_ data)
out== response,content
soup=B S( out’’h t m..parse’7,fro m _ encoding=u t f一8”
alarms== soup.find( t d',width="23 4")
t i t== alarm.,a.attrs[/t i t l e/]
t i t l== repr ( t i t.decode (utf — 8') .encode (’utf8’))
m s g.a p p e n d(n a m e P’P t i t l)
2. 4 检测网络设备连通性
P y t h o n通过subprocess库产生子进程,stdin、stdout和stderr分别表示子程序的标准输入、标准输出和标准错误。笔者调用s u b p r o c e s s库中的
P o p e n类,通过“ping”命令来测试图书馆关键网络设备的连通性,返回值进行判断后将“网络连接超时”“无法访问目标主机”“网络正常”加入消息列表,用以及时反馈设备状态。主要代码如下:
defping—ip(ip,n a m e):
p== subprocess.P o p e n(["'w
stdin== subproces.P I P E,
stdout=subprocess.P I P E,行业商业计划书
stderr== subprocess.P I P E,
shell=T r u e)
out== ad()
ifou.find('timed out’)9== 一1:
m s g.append(n a m e P’网络连接超时3 elifou..find(/Destination/) 9== 一1:
m s g.append(n a m e P’无法访问目标主机’)
英语六级多少分及格elYe,
m s g.append(n a m e P’网络正常')
3 结束语
通过企业及时获取有关图书馆应用系统和关键网络设备的信息,能够及时发现问题并解决问题,为图书馆数字资源不间断开放提供了保障。通 过西安建筑科技大学图书馆几年来的使用显示,该应用模块简单易用,监控范围可以自己调整,发送信息及时,同时也是一个免费的应用。以后还应当完善功能,拓展监控范围,充实所反映的信息细节。
[参考文献]
张悬宝贝[1] 周昊.利用Z a b b i x和企业实现公安监控
网絡的自动化运维!].中囯有线电视,2017,
(11) '324!1 325.
!]韦筱泉,马长峰,玉易.一种后台程序向企业主动发送消息的方法!].视听,2018,
⑷:32〜34.
!
]李琦.基于P y t h o n与O E M C C的数据库移动集中监控的实现!].数字通信世界,2020,
⑷:133〜134.
[4] 李正,陶鑫,黎斌,等.基于企业的网絡故
障告警系统应用与研究!].科技视界,2019,
$9) :56〜57,73.
!]刘淑影,晁妍,王静,等.基于企业号的机房报警信息推送平台研究!].重庆科技学院
学报:自然科学版,2019,21(3) :94〜96,103. !]崔超.基于企业消息推送系统的设计与实现!].信息通信技术与政策,2019, $) :90
〜94.
• 80•
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论