在自定義監控腳本時,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等防護三個方面着手,問題是一定可以解決的