我们有一些运行于Ubuntu 14.04我们需要执行zabbix-agentd以 root 身份获取一些性能信息。
zabbix-agentd version = 5.0
我已经关注本指南但由于步骤原因,它不起作用systemctl daemon-reload
无法执行ubuntu 14.04
我已经设置了这些指令:
User=root
AllowRoot=1
但用户zabbix
仍然是该进程的所有者。
答案1
最后我终于弄明白了,这可能会对遇到同样问题的人有所帮助。
- 编辑该文件或(如果不存在)创建它
/etc/default/zabbix-agent
并添加以下行:
ZABBIX_AGENT_USER=root
- 之后,转到
/lib/systemd/system/zabbix-agent.service
并替换zabbix
或root
您需要运行代理服务的用户名。
[Service]
User=root
Group=root
重启代理
service zabbix-agent restart
检查进程所有者
> ps ux | grep zabbix_agentd
root 29931 0.0 0.0 92612 1316 usr/sbin/zabbix_agentd
root 29932 0.0 0.0 92612 1360 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
root 29933 0.0 0.1 97044 4032 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
root 29934 0.0 0.1 97044 4036 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
root 29935 0.0 0.1 97044 4036 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
root 29936 0.0 0.1 96900 2668 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
答案2
重新考虑您的要求。
您想控制您的根环境。
首先添加一个负责性能测量的 crontab。接下来,您可以选择从根作业中使用 zabbix_sender(当您不信任 zabbix_sender 时可能会出现安全漏洞)或将结果写入特殊的新目录(可能是 /etc/zabbix/cronresults)并让 zabbix 可以读取它。接下来进行用户数据调用以从 cron 结果中获取信息。
额外的优势:当您想要监控 Apache(类似“zapache”)时,您可以使用一个 curl 命令获取所有数据,并让用户数据使用 cronresults 作为缓存通过不同的调用获取不同项目的不同字段。