技术解析

请教一下 zabbix 远程执行 windows 脚本的问题
0
2021-06-19 01:03:40
idczone
一切都正常,除了利用脚本调用其他程序的时候就会报错“time out while executeing a shell script”,gg 一天仍未解决,路过的大侠能否指教一下,谢谢!
你是说你本身用 zabbix 开 remotecommand 执行命令都正常,比如 helloworld >text.txt 这类命令都能执行成功
只是在执行或调用非系统的命令的软件时报错"time out while executeing a shell script"吗?
还是 parameter 自定义的监控项目取不到值啊?????
第一个你试试全路径
第二个的话你先手动执行自定义项目是否有返回值,还有是否时间比较久,有超时的问题,如果超时的话就把 C/S 的超时时间相应调长

1,是的,普通操作如重定向输出文本是正常的。2,我试过全路径,结果一样。3,尝试过把服务端和客户端的 timeout 都设置为 30 秒,无效。4,我是使用 adminstrator-script,然后在对应的 host 直接执行脚本。
@CallMeReznov

客户端是 xp,脚本是 batch

几个问题:1.所以你的脚本确实 30 秒内能执行完么? 2.你的 item key 是什么?
Zabbix 为了防止 agent 阻塞,是有强制的 timeout 限制的,最高 30 秒

https://gitee.com/chuanjiao10/kasini3000
欢迎试试卡死你 3000,
1 在被控机 winxp 上安装。net3.5 sp1
2 在 winxp 上安装 powershell2.0
3 enable-psremoting。
4 在主控机上测试被控机的 5985 端口是否通了。
5 在主控机的 nodelist.csv 上写好被控机 ip,端口,账户,密码等。
6 脚本默认超时时间 1 小时。通过主控机上的 powershell 中调用,在被控机上,支持 powershell 脚本,bat 脚本,vbs 脚本等所有脚本。
在主控机控制,winxp 被控机,和控制 win7,win10 没啥区别。只不过需要安装和开启服务。
当然最简单的是 win2012r2,win2016,的被控机,啥也不用安装,啥也不用设定。

1,没有 itemkey
2,就简单执行 start "" "c:\windows\system32\cmd.exe"

额……你把监控 item 设置界面要不截个图?没有 key 这个不能理解啊……

可能我的表达有问题。譬如说我想用 aget 远程执行脚本打开一个 cmd.exe 或者一个浏览器之类的程序。

administrator-script 添加脚本,然后再 map 对应的 host 执行脚本,就这样子

还是不太理解……如果是说要通过执行命令来获取 value 的话,一般会用到 system.run 这个 item key。这个 key 需要开启 agent 配置文件里的一个参数才能执行

可以执行简单脚本 echo "test">test,不可以执行 c:\windows\system32\cmd.exe 。好奇怪啊,难道只有我遇到这个问题?

只是跑 cmd.exe ,没有任何参数?那应该是不行。这个功能是为了获取有返回值的命令的返回值的,根据你启动 zabbix agent 的用户,一般会执行到后台,等待命令返回结果作为 value 传回 zabbix server。如果一直不返回,多半会被 kill。
远程触发 GUI 程序还是用其他方法吧。

谢谢您的解答。我可能超出 zabbix 使用范围了。查了一下,能否推荐 ansible 和 saltstack 哪个对 windows 友好适合做这个?

这俩都是做自动运维的,适合跑命令行。
我觉得你的问题可能是出在:
`start "" "c:\windows\system32\cmd.exe"`
如果是要做测试的话,直接把你要跑的 bat 脚本路径放进去 run。不带任何参数去调用 cmd,只是开一个空白 cmd 窗口出来而已,对 ansible 也好、zabbix 也好,都没有意义的,还会导致超时

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服