请教一下 zabbix 远程执行 windows 脚本的问题

2020-02-02 21:01:45 +08:00
 LCD
一切都正常,除了利用脚本调用其他程序的时候就会报错“time out while executeing a shell script”,gg 一天仍未解决,路过的大侠能否指教一下,谢谢!
4979 次点击
所在节点    Linux
14 条回复
CallMeReznov
2020-02-02 21:31:22 +08:00
你是说你本身用 zabbix 开 remotecommand 执行命令都正常,比如 helloworld >text.txt 这类命令都能执行成功
只是在执行或调用非系统的命令的软件时报错"time out while executeing a shell script"吗?

还是 parameter 自定义的监控项目取不到值啊?????

第一个你试试全路径
第二个的话你先手动执行自定义项目是否有返回值,还有是否时间比较久,有超时的问题,如果超时的话就把 C/S 的超时时间相应调长
LCD
2020-02-02 22:39:45 +08:00
1,是的,普通操作如重定向输出文本是正常的。2,我试过全路径,结果一样。3,尝试过把服务端和客户端的 timeout 都设置为 30 秒,无效。4,我是使用 adminstrator-script,然后在对应的 host 直接执行脚本。
@CallMeReznov
LCD
2020-02-02 22:41:13 +08:00
@CallMeReznov 客户端是 xp,脚本是 batch
nirvam
2020-02-02 23:19:18 +08:00
几个问题:1.所以你的脚本确实 30 秒内能执行完么? 2.你的 item key 是什么?

Zabbix 为了防止 agent 阻塞,是有强制的 timeout 限制的,最高 30 秒
ps1aniuge
2020-02-03 01:49:19 +08:00
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,的被控机,啥也不用安装,啥也不用设定。
LCD
2020-02-03 07:10:38 +08:00
@nirvam 1,没有 itemkey
2,就简单执行 start "" "c:\windows\system32\cmd.exe"
nirvam
2020-02-03 14:22:46 +08:00
@LCD #6 额……你把监控 item 设置界面要不截个图?没有 key 这个不能理解啊……
LCD
2020-02-03 22:17:40 +08:00
@nirvam 可能我的表达有问题。譬如说我想用 aget 远程执行脚本打开一个 cmd.exe 或者一个浏览器之类的程序。
LCD
2020-02-03 22:19:41 +08:00
@nirvam administrator-script 添加脚本,然后再 map 对应的 host 执行脚本,就这样子
nirvam
2020-02-04 16:04:14 +08:00
@LCD #9 还是不太理解……如果是说要通过执行命令来获取 value 的话,一般会用到 system.run 这个 item key。这个 key 需要开启 agent 配置文件里的一个参数才能执行
LCD
2020-02-04 19:29:24 +08:00
@nirvam 可以执行简单脚本 echo "test">test,不可以执行 c:\windows\system32\cmd.exe 。好奇怪啊,难道只有我遇到这个问题?
nirvam
2020-02-05 10:06:26 +08:00
@LCD #11 只是跑 cmd.exe ,没有任何参数?那应该是不行。这个功能是为了获取有返回值的命令的返回值的,根据你启动 zabbix agent 的用户,一般会执行到后台,等待命令返回结果作为 value 传回 zabbix server。如果一直不返回,多半会被 kill。

远程触发 GUI 程序还是用其他方法吧。
LCD
2020-02-05 10:59:43 +08:00
@nirvam 谢谢您的解答。我可能超出 zabbix 使用范围了。查了一下,能否推荐 ansible 和 saltstack 哪个对 windows 友好适合做这个?
nirvam
2020-02-08 11:23:24 +08:00
@LCD #13 这俩都是做自动运维的,适合跑命令行。

我觉得你的问题可能是出在:
`start "" "c:\windows\system32\cmd.exe"`

如果是要做测试的话,直接把你要跑的 bat 脚本路径放进去 run。不带任何参数去调用 cmd,只是开一个空白 cmd 窗口出来而已,对 ansible 也好、zabbix 也好,都没有意义的,还会导致超时

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/641696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX