我想在monit中处理一种链式动作。
我的尝试(到目前为止):
check process myprocess with pidfile /run/my.pid
start program = "/path/to/binary start" with timeout 60 seconds
stop program = "/path/to/binary stop" with timeout 60 seconds
if not exist for 3 cycles then restart
if not exist then alert
if 3 restarts within 3 cycles then timeout
在发生故障的PID时不会发出警报并保持“运行”状态,但在3个周期后重新启动。
check process myprocess with pidfile /run/my.pid
start program = "/path/to/binary start" with timeout 60 seconds
stop program = "/path/to/binary stop" with timeout 60 seconds
if not exist for 3 cycles then restart
if children < 1 for 1 cycles then alert
if 3 restarts within 3 cycles then timeout
没有儿童的警报&lt; 1但重启5。
monit.log
[CEST Aug 1 15:09:30] error : 'myprocess' process is not running
monit summary
Process 'myprocess' Running
这是monit -v part:
Existence = if does not exist 3 times within 3 cycle(s) then restart else
if succeeded 1 times within 1 cycle(s) then alert
Pid = if changed 1 times within 1 cycle(s) then alert
Ppid = if changed 1 times within 1 cycle(s) then alert
Children = if less than 1 1 times within 1 cycle(s) then alert else if
succeeded 1 times within 1 cycle(s) then alert
Timeout = If restarted 3 times within 3 cycle(s) then unmonitor
所以问题是:是否可以发送警报并在1个周期内将状态更改为“未运行”并在3个周期后重新启动?
答案 0 :(得分:16)
编辑(重要):请参阅下面的评论,了解Monit的更新版本(根据2019年2月),此行为已得到改进。
这一行:
if does not exist for 3 cycles then restart
表示以下内容:
在检查3次服务不存在之前,请不要执行任何操作,然后重新启动它。这种行为在monit的文档中描述为Failure Tolerance:
失败容忍
默认情况下,如果匹配并且服务集匹配,则执行该操作 处于错误状态。但是,您可以要求测试失败超过 一旦触发错误事件并且服务状态发生更改 失败了。这有助于避免收到有关虚假错误的警报, 这可能发生,尤其是网络测试。
语法:
FOR CYCLES ......或:
[TIMES WITHIN] CYCLES ......
因此,Monit不会改变服务的状态,直到它在接下来的X个周期内失败。要确认此声明,只需删除此服务的容错,并仅使用:
if does not exist then alert
手动停止服务并确认命令
monit status
现在显示状态&#34;不存在&#34;一旦你阻止它。
所以,回到你的问题:
SMTP服务器配置
set mailserver smtp.gmail.com PORT 587 USERNAME "xxxxxxx@xxxxx.xxx" PASSWORD "xxxxx" using TLSV1 with timeout 30 seconds
(请注意,在gmail中,您必须激活&#34;不安全&#34;应用的访问权限才能允许monit使用stmp服务)
和
电子邮件收件人
set alert xxxxxxx@xxxxx.xxx
都在/ etc / monit / monitrc文件中。有关这两行的更多信息,请参阅官方文档。
参考文献:
Monit的文档:https://mmonit.com/monit/documentation/monit.html
希望它有所帮助!
此致