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文件即可成功运行

posted on 2021-12-30 15:40  zhealks  阅读(978)  评论(0编辑  收藏  举报