栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

MicroFocus 监控工具 SiteScope 搭配Task scheduler在远程Windows上执行脚本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MicroFocus 监控工具 SiteScope 搭配Task scheduler在远程Windows上执行脚本

文章目录
  • SiteScope介绍
  • 配置步骤
    • 1.在远程被监控Windows上准备工作
    • 2.SiteScope端配置
    • 3.设置SiteScope
  • 总结


SiteScope介绍

SiteScope 是HP家的一款无代理基础设施监控工具,(最后卖给了MicroFocus)主要集中在IT infrastructure 监控,它不需要在被监控端安装任何的探针或agent, 即可实现监控,其实原理就是SNMP 或者WMI等,其实在设置的时候就非常明了了,对于国内用户很少使用,因为它本身的监控技术原理并不新颖,毕竟有很多开源工具可以完美代替,但是在业务方面它搭配应用级监控工具BSM(APM)实现监控业务的一整套解决方案还是很无敌的,毕竟他的数据报告好看。鉴于国内很少关于SiteScope的内容,有也是版本特别低的,那我来填补一下空缺吧,如果有帮助的话,后续会陆续从开始记录一些使用心得
这次主要针对如何在远程Windows上配置脚本监控,


配置步骤

当然在远程Windows上执行脚本有很多种办法,WMI等方法,或者直接设置一个task scheduler,但是配合SiteScope的监控的话,需要绕一下,SiteScope对于在远程Linux上执行脚本很简单,官方方法也有很多,但是在Windows上官方提供的方法时安装Cygwin 去模拟Linux环境去执行脚本,但是亲测问题又很多,而且配置起来相对麻烦,于时想到了搭配Task scheduler去在配置,简单有效

1.在远程被监控Windows上准备工作

由于我从业务部门得到的本身监控代码是powershell,就不附代码了,大概就是判断被监控点的状态,如果状态不是预期就输出 Error,是的话就输出OK
为了方便我把他给的脚本又封装成了bat脚本,然后将输出以覆盖重定向到一个文件,这样在之后设置监控时也方便很多。所有脚本及文件都放到同意路径下吧,方便管理

@echo off

powershell -File C:checkxxxx.ps1 > C:output.txt

然后设置Task scheduler执行该脚本,这里不多赘述,网上有很多教程,但是需要注意的是,不需要设置触发条件,只是借用它来执行脚本,后面我们会让SiteScope去执行它。权限使用最高权限
到此,我们远程Winodws就设置完成了

2.SiteScope端配置

我们回到SiteScope,写一个可以执行远程Windows上的Task的脚本,这里用到一个cmd命令
schtasks 用于执行远程windows的task命令,想了解具体用法可以搜一下,我的SiteScope脚本如下:

import os
import time


cmd = "schtasks /run /s ip地址 /u 用户名 /p 密码 /tn task名称"  # this command used for execute remote task scheduler named xxxxx
path="\\server名称\c$folder1\output.txt" 
'''这里是为了下面检查通过执行完脚本以后生成的txt,因为我的是监控同一个域的机器,
所以可以使用$访问路径,这里可以根据自己的网络环境灵活设置。

该脚本每运行一次就执行一次远程的task就会网txt写入当前执行的状态,
然后去读取txt文档,将其打印,将结果展示到SiteScope'''


class Check_Status:
	def __init__(self, command, path):
		self.command = command
		self.path = path
	def executecmd(self):
		os.popen(self.command)
	def check_txt(self):
		self.executecmd()
		time.sleep(3)
		with open(self.path,"r") as f:
			data = f.readlines()
			for line in data:
				print(line.rstrip())
		
if __name__ == '__main__':
	check= Check_Status(cmd,path)
	result=check.check_txt()
	print(result)


到此在SiteScope中要执行的脚本就完成了,如果你的SiteScope中已经配置加载python解释器的话,就不需要将脚本封装成bat了,我这里因为没有配置python解释器,所以在SiteScope无法直接执行py文件,这里附上bat代码,其实很简单。

@echo off

rem Function:Wrapper script py

setlocal
set PYTHON_HOME="X:Python37"
set SITESCOPE_HOME="x:HPSiteScope"
set SITESCOPE_script=%SITESCOPE_HOME%scripts

rem SiteScope的脚本监控类型中用到的脚本都在x:HPSiteScopescripts,我们要把python文件和bat文件一起放在该目录下,如果是新版的就是Micro Focus文件夹下

%PYTHON_HOME%python.exe %SITESCOPE_script%checkxxxx.py #上面的python脚本

endlocal
3.设置SiteScope

以上工作都做完,我们就可以打开SiteScope设置监控了,新建一个脚本监控选择SiteScope server 然后在script下拉列表中找到刚才的写好的bat脚本,parameters是执行脚本的外部变量,就是python中 sys.argv[1] 和bat %1 这些,因为这里我们没用到变量,所以不需要,编码默认就好,因为我们只返回一个值,所以match value labels也不用填,默认就好(如果需要多个的话,直接写上你想要的名就好,类似于脚本中的变量名,随便起,中间逗号隔开,match expression这里为了简单,直接匹配所有脚本返回值,这里需要注意所有的正则表达式必须在 /(表达式)/ 中,/(.*)/ 表示匹配所有


这时,其实SiteScope就可以执行我们的脚本,并且获取脚本的返回值,但是我们还没有监控返回值是什么,我们需要在的Threshold Settings中设置监控,我们在条件一项中选择value,value的值就是脚本的返回值,这里我们设置当value值不等于字符串 “OK” 时就报警,其他默认就可以,设置后点击保存,成功的话,会返回绿色状态,此时意味着远程脚本执行成功且监控正常。

Status表示执行成功,当前获得的value=OK的值是此次监控器运行的值

到此大功告成,脚本监控设置完成,可以设置其他的业务细节了。

总结

虽然这样有些绕,但是却绕开了官方给的方法,也不用安装其他的软件,相比还是这个比较简单。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号