解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,(1)如题所示,我的zabbix客户端上有这样一个脚本:[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh其
千家信息网最后更新 2026年11月02日解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
(1)如题所示,我的zabbix客户端上有这样一个脚本:
[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh
其内容如下:
#!/bin/bashecho "/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 paycompletion12standard 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获取数据,显然是不会报错了,效果如下:
脚本
数据
问题
内容
密码
用户
输入
文件
自然
测试
配置
客户
客户端
显而易见
不用
再次
原因
意思
效果
时候
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
广州百单互联网科技有限公司
美国互联网保险保险科技
互联网科技垄断
丰台科技园 互联网
融势互联网科技
海南购全球互联网科技
青岛中康互联网医疗科技有限公司
互联网校园科技培训
互联网媒体平台算高科技产业
坤平互联网科技
呼和浩特新华互联网科技学院
佛山市拉法互联网科技有限公司
科技赋能视角下互联网保险发展
智帮互联网科技公司最近动向
互联网科技股为什么大涨
广州三三互联网科技有限公司
互联网科技博主张洲
山东蛋芒互联网科技有限公司
承德科技产业互联网平台
科技互联网企业
奇酷互联网科技
礼当家互联网科技
互联网科技媒体
天津摩尔互联网科技
睿民互联网科技
互联网科技的未来发展
互联网 新科技
湖北码尼互联网科技有限公司电话
工业互联网山东科技大学