(1)如題所示,我的zabbix客戶端上有這樣一個腳本:
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出大田免費做網(wǎng)站回饋大家。
[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh
其內(nèi)容如下:
#!/bin/bash echo "/home/oracle/scripts/paymentcompletion.sh" | su - oracle
上面的腳本意思很簡單,就是以oracle用戶的身份執(zhí)行一個統(tǒng)計腳本
(2)修改該zabbix_agentd配置文件,添加一個“UserParameter”:
[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
添加了如下內(nèi)容:
UserParameter=paycompletion12,/usr/local/zabbix/scripts/paycompletion12.sh
(3)接著我在zabbix_server上測試獲取數(shù)據(jù)時,爆了如題所示錯誤:
[root@nmp01 ~]# /usr/local/zabbix/bin/zabbix_get -s 10.110.80.117 -k paycompletion12 standard in must be a tty
對于這個問題, zabbix爆的錯是“規(guī)定必須是一個tty”。我想問題原因應(yīng)該是這樣的:/usr/local/zabbix/scripts/paycompletion12.sh 這個腳本我測試的時候是用的是root用戶,因此 su – oracle時自然不用輸入密碼,但是zabbix在執(zhí)行這個腳本時用的用戶是zabbix,因此按正常流程執(zhí)行 su – oracle 時是需要輸入密碼的,但是顯而易見zabbix_get去獲取數(shù)據(jù)是不可能給你提供一個交互界面去輸入密碼的,因此報錯
其他操作不變,只需要修改zabbix_agentd配置文件,將“AllowRoot”設(shè)置成1就行。這樣這個zabbix_agentd就擁有了root權(quán)限,因此自然就可以執(zhí)行腳本獲取數(shù)據(jù)了。具體操作如下:
[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
修改以下內(nèi)容:
AllowRoot=1
再次使用zabbix_get獲取數(shù)據(jù),顯然是不會報錯了,效果如下: