如果 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文件即可成功運行
