十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
(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获取数据,显然是不会报错了,效果如下: