首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Monit查看多个进程的服务?

如何使用Monit查看多个进程的服务?
EN

Server Fault用户
提问于 2015-01-26 14:07:18
回答 1查看 7.1K关注 0票数 3

我在看邮件列表经理对monit的同情。正在运行的渐近实例由用于列表管理的不同任务的多个进程(例如,归档电子邮件的单独进程)组成,但所有进程都是使用单个init脚本启动/停止的。

最优情况下,monit应该在任何服务发生故障时提醒我,然后重新启动渐近,但只重新启动一次。第一个解决方案如下:

代码语言:javascript
复制
check process sympa
  with pidfile /var/run/sympa/sympa.pid
  start program = "/etc/init.d/sympa start"
  stop program = "/etc/init.d/sympa stop"
check process sympa_bounced
  with pidfile /var/run/sympa/bounced.pid
  start program = "/etc/init.d/sympa start"
  stop program = "/etc/init.d/sympa stop"
check process sympa_bulk
  with pidfile /var/run/sympa/bulk.pid
  start program = "/etc/init.d/sympa start"
  stop program = "/etc/init.d/sympa stop"

但是,如果我手动停止渐近,init脚本将被多次执行,对于我定义的每个服务(因为每个服务都失败了),执行一次。

我的第二种方法是定义依赖项,并仅在任何子服务失败时发出警告:

代码语言:javascript
复制
check process sympa
  with pidfile /var/run/sympa/sympa.pid
  start program = "/etc/init.d/sympa start"
  stop program = "/etc/init.d/sympa stop"
  depends on sympa_bounced, sympa_bulk
check process sympa_bounced
  with pidfile /var/run/sympa/bounced.pid
  if does not exist then alert
check process sympa_bulk
  with pidfile /var/run/sympa/bulk.pid
  if does not exist then alert

但是,由于子服务没有重新启动,主服务也不会重新启动。因此,我想我可以通过将start/stop设置为/bin/true来“伪造”重新启动:

代码语言:javascript
复制
check process sympa
  with pidfile /var/run/sympa/sympa.pid
  start program = "/etc/init.d/sympa start"
  stop program = "/etc/init.d/sympa stop"
  depends on sympa_bounced, sympa_bulk
check process sympa_bounced
  with pidfile /var/run/sympa/bounced.pid
  start program = "/bin/true"
  stop program = "/bin/true"
check process sympa_bulk
  with pidfile /var/run/sympa/bulk.pid
  start program = "/bin/true"
  stop program = "/bin/true"

这也不起作用,因为如果sympa_bulk失败,那么在重新启动渐近服务之前,PID文件将不会创建,并且在sympa_bulk再次运行之前也不会发生。

是否有一种方法可以监视这样的服务,获取所有子服务的警报消息,但是只重新启动服务一次,即使所有的子服务一次都失败了?

EN

回答 1

Server Fault用户

发布于 2015-01-26 14:19:05

您应该能够使用depends绕过它。

所以就像

代码语言:javascript
复制
check process sympa_bulk
  with pidfile /var/run/sympa/bulk.pid
  depends on sympa
  start program = "/bin/true"
  stop program = "/bin/true"
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/662422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档