Zabbix 5.4.3 server配置systemd以非root用户运行agent
如果 Zabbix server 和 agent 运行在相同的机器上,建议使用不同的用户运行来 Zabbix server 和 agent。 否则,如果两者都作为同一用户运行,则 Zabbix agent 可以访问 Zabbix server 配置文件,并且可以轻松检索到 Zabbix 中的任何管理员级别的用户,例如,数据库密码。以 root 、bin 或其他具有特殊权限的账户运行 Zabbix 是非常危险的。
1.创建用户
# groupadd agent
# useradd -g agent agent
2.创建service
注意红色部分需改为自己的路径
# su - agent $ mkdir -p ~/.config/systemd/user/ $ vim zabbix-agentd.service
1 [Unit] 2 Description=Zabbix Agent 3 After=syslog.target network.target network-online.target 4 Wants=network.target network-online.target 5 [Service] 6 Type=oneshot 7 ExecStart=/usr/local/sbin/zabbix_agentd -c /opt/zabbix/zabbix-5.4.3/conf/zabbix_agentd.conf 8 RemainAfterExit=yes 9 PIDFile=/var/run/zabbix/zabbix_agentd.pid 10 [Install] 11 #WantedBy=multi-user.target 12 WantedBy=default.target
3.开机自启
需先重新ssh进agent用户
ssh agent@22.205.129.5 $ systemctl --user daemon-reload $ systemctl --user list-unit-files | grep zabbix $ systemctl --user enable zabbix-agentd.service $ systemctl --user start zabbix-agentd.service $ systemctl --user status zabbix-agentd.service
loginctl enable-linger以使得用户注销后,进程以及它管理的服务并不会退出
$ loginctl show-user agent | grep Linger $ loginctl enable-linger $ loginctl show-user agent | grep Linger
4.验证
5.小插曲
第一次systemctl start时报了下面的错误:
zabbix_agentd [42144]: cannot open "/tmp/zabbix_agentd.log": [13] Permission denied
原因是之前我用root用户启动过zabbix_agentd并生成了log文件,所以报权限不够,删掉原log文件即可成功运行