解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,(1)如题所示,我的zabbix客户端上有这样一个脚本:[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh其
千家信息网最后更新 2025年01月31日解决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安全错误
数据库的锁怎样保障安全
人杰科技软件开发公司
网络安全保卫大队干什么的
首届湾区创见网络安全大会
服务器管理器新建用户和组
我的世界gta服务器测评
部落冲突服务器事件
计算机网络技术的工资吗
马云网络安全部门
深圳手机app软件开发费用多少
嘉兴电子网络技术咨询热线
为啥叫x86服务器
网络安全问题灵魂文案
web软件开发主要学什么
宝德刀片服务器
戴尔服务器raid怎么去掉硬盘
软件开发新客户 风险
易小道互联网科技无锡有限
法院开展网络安全宣传周
网络安全和算法工程师
春考网络技术可以报什么专业
服务器未响应502
2015年银行软件开发中心工资
查询图书的数据库
阿里云服务器配置域名
数据库怎么恢复已删除的数据
a420r-g服务器
网络安全教育黑板板报
软件开发静态测试
益阳网络技术公司
网络安全工程师工作经历描述