zabbix 监控脚本中执行docker命令没有权限

root1个月前运维&自动化24

在zabbix_agnet中执行监本时,提示

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied

这是运行docker没有权限

开始排查:

1、agent服务器排查

    1.1执行脚本 检测脚本是否可以执行 ./test.sh

    1.2不可以执行给脚本添加可执行权限 sudo chmode +x ./test.sh

    1.3 如果仍然没可执行权限,将zabbix用户添加到docker组中,需要退出当前shell才能生效

    usermod -a -G docker zabbix

同时还需要重启一下zabbix-agent

2、server端排查

    2.1 zabbix_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等防护三个方面着手,问题是一定可以解决的


原文


相关文章

ssh秘钥登录

ssh秘钥登录

流程大致root用户下:在本地客户端生成ssh密钥对ssh-keygen -t rsa一路三个回车就行了,想设置密语的也可以生成这样就行了把公钥分发给要登录的机器(即服务端)ssh...

Zabbix配置自动发现,实现批量添加主机

Zabbix配置自动发现,实现批量添加主机

一、需求  zabbix 服务器可以手动加入zabbix-agent客户端,对于少量的机器,这没有什么。但到了线上,我们有大量的服务器需要监控时,如果再一个个的手动加的话,工作量势必会增加很多。这时,...

解决zabbix 嵌入到frame时不被允许

系统嵌入zabbix界面时间遇见不被允许插入frame中因为header头设置了X-Frame-Options 前端界面显示为:Refused to display 'http://...

Ubuntu搭建zabbix(apach/nginx)填坑篇

Ubuntu搭建zabbix(apach/nginx)填坑篇

apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring php7.0-mysql安装Zabbix所需的几个PHP模块wget http://r...

zabbix服务无法访问mysql或界面显示zabbix_server no data

部署zabbix突然出现no data 的情况通过查看日志发现zabbix_server 无法访问数据库。导致数据无法获取到。进入zabbix的安装界面(/setup)重新配置数据库仍然发现没有办法连...

ansible的常用命令

ansible的常用命令

首先安装sudo ape-get install ansible然后分发ssh密钥,参考ssh分发。不想用密钥的用密码也是可以的修改配置文件vim /etc/a...