运行 'monit restart all' 给出无效操作

Running 'monit restart all' gives invalid action

错误:无效操作 action= 重新启动 monit


服务器信息

Ubuntu 16.04.4 LTS 监视: 安装:1:5.16-2ubuntu0.1

这个问题是针对这些监控命令的

$ monit restart tomcat
$ monit stop tomcat
$ monit start tomcat
$ monit monitor tomcat
$ monit unmonitor tomcat

原因:

状态更改为 'Confirmed',因为该错误会影响多个用户。

在监视器中更改 (Ubuntu): 状态:新 → 已确认

目前,您需要将 monit 包还原为 1:5.16-2,在服务器中手动尝试

sudo apt-get install monit=1:5.16-2

如果您的服务器自动配置了一些第三方工具(chef、puppet、bash 脚本等),那么您需要相应地更新它们。

来源:https://bugs.launchpad.net/ubuntu/+source/monit/+bug/1786910

注意

如果您在降级 Monit 版本后再次遇到此问题,请将其列入无人值守升级服务的黑名单。每天 运行 获取相关软件包的最新安全更新。

要黑名单监视,打开“/etc/apt/apt.conf.d/50unattended-upgrades”并在“无人值守-升级::包-黑名单”块下,添加“监视”。

@TomDavies 提出了比黑名单更好的解决方案,请参阅评论。

记住 问题解决后将其从黑名单中删除。 您需要再次 运行 上述命令才能恢复到旧补丁。

这是对 Ninad 给出的答案的扩展。

如果您使用 Chef 来自动配置您的服务器,那么以下代码更改将帮助您在所有服务器中安装以前版本的 monit 运行 Ubuntu 16.04

if 'ubuntu' == node['platform'] && '16.04' == node['platform_version']
  Chef::Log.info "******** Installing monit version '1:5.16-2' ********"
  execute 'apt-get -y install monit=1:5.16-2 --allow-downgrades'
else
  Chef::Log.info "******** Installing latest monit ********"
  package 'monit'
end

确保在错误修复后恢复此设置。