Zabbix结合bat脚本与计划任务开启window远程桌面

某IT公司的员工小东,在公司部署了一台zabbix用来监控windows系统服务器的一些使用情况。他现在想做到一个功能,就是通过浏览器发现某台windows主机出现内存过高,或者cpu利用率过高,或者某台服务器的一些服务挂了的一些告警后,他在浏览器那里通过执行脚本来打开远程桌面,然后他只需要填入远程主机的账号和密码就可以登陆那台出现的window主机里面排查报错原因。
实现原理
1.首先用浏览器打开zabbix_web界面的那台主机要安装agent。目的是为了zabbix_server通过system.run来调用这台主机上创建的计划任务,开启远程桌面
2.用浏览器浏览zabbix_web界面的那台主机要创建一个计划任务,用来执行命令开启远程桌面
3.zabbix调用指令开启window远程桌面
(注意:本人测试过window的计划任务好像不能自定义传参。如果计划任务不能传参将无法获取需要开启远程桌面的那个ip)
实现步骤
第一步:用来浏览zabbix_web界面的那台window主机安装agent
5Hd6DZVo62f0c9379a796.png
第二步:创建两个bat脚本,1.bat和2.bat


1.bat脚本内容如下
@echo off
set /p a=<C:\Users\Administrator\Desktop\ip.txt
mstsc /v:%a%
2.bat脚本内容如下
echo %1>C:\Users\Administrator\Desktop\ip.txt
schtasks /run /tn test
上面脚本运行的过程如下:2.batà1.bat
解释:
zabbix调用指令,把需要远程的ip作为参数传给2.bat脚本,此时会在C:\Users\Administrator\Desktop\ip.txt存入需要远程连接的ip(因为window的计划任务无法传参,所以要把ip存放到本地)。接着,2.bat脚本就会调用计划任务test,计划任务test实际上就是调用1.bat脚本。这样的话,最终的脚本就是zabbix调用指令,为的就是执行mstsc /v:远程ip而已。Zabbix通过指令,直接运行mstsc /v:远程ip是无法开启远程桌面的。所以需要通过zabbix+bat脚本+计划任务实现开启window远程桌面的功能。
第三步创建window计划任务
我的电脑右键管理,打开任务计划程序,右边点击创建计划
TeptvdRs62f0c943274d3.png
FI4tFrye62f0c9487ed3d.png


创建一个名为test的计划,该计划是执行1.bat脚本
ccBtnSEr62f0c955c870d.png
第四步:zabbix调用指令开启远程桌面
调用方式用system.run。因为system.run可以直接调用,而不需要在zabbix_agent.conf里面配置键值。
4oKucgEC62f0c95ed44bb.png
用来浏览zabbix_web界面的这台主机的ip是192.168.1.47。
配置一个指令叫开启window远程桌面
0cQUh3CE62f0c9651a932.png
/usr/local/zabbix/bin/zabbix_get -s 192.168.1.47 -k system.run["C:\Users\Administrator\Desktop\2.bat {HOST.IP}"]
解释:
Zabbix_server调用192.168.1.47(用浏览器浏览web的主机)上的2.bat脚本来开启远程主机。{HOST.IP}可动态变化,那台主机执行这个指令就是开启那台主机的远程。
实验验证:
1.47上选择1.38执行开启远程桌面的脚本,能开启1.38的远程桌面
e87DWJWW62f0c97259b29.png
boYWxPa062f0c97852108.png

18.png (0 Bytes, 下载次数: 0)

下载附件

2020-10-20 10:03 上传

实验成功

技术交流欢迎加入Q群:177428068


  • 发表于 2022-08-08 16:30
  • 阅读 ( 1302 )
  • 分类:Zabbix

0 条评论

请先 登录 后评论
乐维君
乐维君

226 篇文章

作家榜 »

  1. 乐维君 226 文章
  2. 御前侍卫张五哥 2 文章
  3. 细雨闲花 2 文章
  4. 机灵小和尚 2 文章
  5. 我是一只小菜鸡 2 文章
  6. YOHOHO 2 文章
  7. 0.0 1 文章
  8. 白色枫叶 1 文章