- 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就设置完成了
我们回到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脚本 endlocal3.设置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的值是此次监控器运行的值
到此大功告成,脚本监控设置完成,可以设置其他的业务细节了。
总结虽然这样有些绕,但是却绕开了官方给的方法,也不用安装其他的软件,相比还是这个比较简单。



