温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”

发布时间:2020-07-28 22:23:05 来源:网络 阅读:5776 作者:pangfc 栏目:关系型数据库

(1)如题所示,我的zabbix客户端上有这样一个脚本:

[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh

其内容如下:

#!/bin/bash

echo "/home/oracle/scripts/paymentcompletion.sh" | su - oracle

上面的脚本意思很简单,就是以oracle用户的身份执行一个统计脚本

(2)修改该zabbix_agentd配置文件,添加一个“UserParameter”:

[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

添加了如下内容:

UserParameter=paycompletion12,/usr/local/zabbix/scripts/paycompletion12.sh

(3)接着我在zabbix_server上测试获取数据时,爆了如题所示错误:

[root@nmp01 ~]# /usr/local/zabbix/bin/zabbix_get -s 10.110.80.117 -k paycompletion12
standard in must be a tty

问题思考

对于这个问题, zabbix爆的错是“规定必须是一个tty”。我想问题原因应该是这样的:/usr/local/zabbix/scripts/paycompletion12.sh 这个脚本我测试的时候是用的是root用户,因此 su – oracle时自然不用输入密码,但是zabbix在执行这个脚本时用的用户是zabbix,因此按正常流程执行 su – oracle 时是需要输入密码的,但是显而易见zabbix_get去获取数据是不可能给你提供一个交互界面去输入密码的,因此报错

问题解决

其他操作不变,只需要修改zabbix_agentd配置文件,将“AllowRoot”设置成1就行。这样这个zabbix_agentd就拥有了root权限,因此自然就可以执行脚本获取数据了。具体操作如下:

[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

修改以下内容:

AllowRoot=1

再次使用zabbix_get获取数据,显然是不会报错了,效果如下:

解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI