您好,登錄后才能下訂單哦!
(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獲取數據,顯然是不會報錯了,效果如下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。