现象
在使用实现自定义zabbix的监控项的过程中,在zabbix 服务端的web界面中提示
sh: /home/admin/zabbix/get_socket_jstat_status.sh: Permission denied"
如图:
问题分析:
字面意思是执行这个脚本没有权限。
我们知道zabbix 服务端监控代理端使用过zabbix agent去完成监控的。
实际上在这儿是agent去执行.sh脚本,那么很可能是agent没有相应的权限去指向.sh脚本。
解决办法:
解决思路:
先查看agent端zabbix服务的权限(需要提升为root权限)——修改agent配置文件,修改AllowRoot=1——再修改agent.service的用户为root。
具体解决方法:
1.先查看agent端zabbix服务的权限
ps -ef |grep zabbix
一般都是zabbix权限
2.修改agent配置文件,修改AllowRoot=1
到zabbix_agentd.conf的目录下
sudo vim zabbix_agentd.conf
# will try to switch to the user specified by the User configuration option instead. # Has no effect if started under a regular user. # 0 - do not allow # 1 - allow # # Mandatory: no # Default: AllowRoot=1 ### Option: User # Drop privileges to a specific, existing user on the system. # Only has effect if run as 'root' and AllowRoot is disabled. # # Mandatory: no # Default: # User=zabbix ### Option: Include # You may include individual files or all files in a directory in the configuration file. # Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time. # # Mandatory: no # Default: # Include=
3.再修改agent.service的用户为root。
sudo vim /usr/lib/systemd/system/zabbix-agent.service
分别在第16行和第17行
修改
User=root Group=root
4.重启agent服务
sudo systemctl restart zabbix-agent.service
5.再查看agent服务
ps -ef |grep zabbix
可以看到都以以root命令启动的了。
再去zabbix web端查看已经恢复正常
如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!