1. 程式人生 > 實用技巧 >zabbix監控指令碼中執行docker命令沒有許可權問題

zabbix監控指令碼中執行docker命令沒有許可權問題

在自定義監控指令碼時,web介面提示許可權問題,無法執行docker命令

init

執行指令碼檔案為~/test.sh

排查過程

1、agent代理伺服器排查

1.1 sudo su -u zabbix ~/test.sh #用zabbix使用者執行該指令碼測試,指令碼是否可以執行
1.2 如果該命令提示沒有許可權,則檢視test.sh是否有可執行許可權,並執行sudo chmode +x ~/test.sh
1.3 如果有執行許可權仍然提示許可權問題,則將zabbix使用者加入到docker組中,執行sudo usermod -aG docker zabbix , 一定要注意加入到組中,需要退出當前shell後重新進入才能生效

2、server端排查

2.1zabbix_get -s <agent-ip> -p 10050 -k <自定義鍵值> , 測試server端是否可以獲取到值
2.2 如果提示對指令碼中的命令沒有許可權,則在agent伺服器執行sudo setenforce 0 ,關閉selinux
2.3 關閉agent伺服器的selinux後,如果提示無法呼叫docker daemon ,則在agent伺服器上執行sudo systemctl restart zabbix-agent 重啟zabbix-agent

3、總結

關於許可權問題,從檔案許可權,使用者許可權及防火牆、selinux等防護三個方面著手,問題是一定可以解決的