博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
阅读量:6307 次
发布时间:2019-06-22

本文共 1136 字,大约阅读时间需要 3 分钟。

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

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

其内容如下:

1
2
3
#!/bin/bash
 
echo 
"/home/oracle/scripts/paymentcompletion.sh" 
su 
- oracle

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

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

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

添加了如下内容:

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

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

1
2
[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权限,因此自然就可以执行脚本获取数据了。具体操作如下:

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

修改以下内容:

AllowRoot=1

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

本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1861367,如需转载请自行联系原作者

你可能感兴趣的文章
【图论算法】Dijstra&BFS
查看>>
注册和上传文件(头像)
查看>>
使用OVS
查看>>
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
vue (v-if show 问题)
查看>>
https基础
查看>>
css3 canvas之刮刮卡效果
查看>>
并查集模板
查看>>
RESTful Mongodb
查看>>
BZOJ3237:[AHOI2013]连通图(线段树分治,并查集)
查看>>
如何提高Ajax性能
查看>>
Android--自定义加载框
查看>>
LINUX下 lamp安装及配置
查看>>
BZOJ3105 [cqoi2013]新Nim游戏
查看>>
困惑的前置操作与后置操作
查看>>
SDNU 1269.整数序列(水题)
查看>>
BZOJ 2118 Dijkstra
查看>>