我使用 zabbix 监控多台服务器(Linux 和 Windows)。是否可以让 zabbix 自动重启停机的服务?
答案1
这是可能的。您要做的第一件事是在 zabbix 代理上启用远程操作,方法是在 zabbix_agentd.conf 中设置以下内容:
EnableRemoteCommands=1
您还需要向您的 zabbix 用户授予 sudo 权限,因此请创建一个文件 /etc/sudoers.d/zabbix_nopasswd,其中包含以下内容:
zabbix ALL=NOPASSWD: ALL
为了更好的安全考虑,您最好只允许 zabbix 运行特定的 shell 命令,例如:
# allows 'zabbix' user to restart apache without password.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart
此后,重新启动 zabbix 代理。
现在,在 Zabbix 服务器上,以具有管理员权限的用户身份登录 Zabbix web gui,并创建新操作:配置 -> 操作 -> 新操作。将新操作命名为“重新启动 Apache”。
将操作类型设置为“远程命令”。将远程命令设置为:
{HOSTNAME}:/usr/bin/sudo service apache2 restart
之后,在某个项目上创建一个触发器,用于计算正在运行的 Apache 进程的数量,如果该数字为 0,则运行“重新启动 Apache”操作,就这样。
答案2
我们必须在一个项目上创建一个触发器,用于计算正在运行的 Apache 进程的数量,这样,如果该数字为 0,则运行“重新启动 Apache”操作,就这样。