【问题标题】:Rolling restart of process group in monit在监视器中滚动重启进程组
【发布时间】:2023-04-10 17:55:01
【问题描述】:

有人对我如何使用 monit 实现进程组的滚动重启有任何建议吗?

提前致谢, 龟

【问题讨论】:

    标签: monitoring restart monit


    【解决方案1】:

    我不确定您说的是哪个服务器。但是我可以为您提供一个支持滚动重启本身的瘦示例。 (选项onebyone: true

    所以对于monit,你可以使用类似的东西,

    if ... then exec '/path/to/thin_restart.sh'

    thin_restart.sh 会是这样的,

    source /path/to/scripts/rvm
    rvm use your_gemset@some_ruby
    thin -C thin.yml restart
    

    thin.yml 的内容看起来像,

    port: 1337
    pid: tmp/pids/thin.pid
    rackup: /path/to/config.ru
    daemonize: true
    servers: 2
    onebyone: true
    

    还有其他方法可以根据 pid 微调此重启。您可以使用 pid 监视文件并根据条件仅重新启动那些精简进程。

    例如

    check process app-1337
      with pid /path/to/app.1337.pid
      start = 'thin -d -p 1337 start'
      stop  = 'thin -d -p 1337 -P /path/to/thin.1337.pid stop'
      if cpu usage > 50% then restart
    check process app-1338
      with pid /path/to/app.1338.pid
      start = 'thin -d -p 1338 start'
      stop  = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
      if cpu usage > 50% then restart
    

    另一种方法是使用 monit 提供的组。

    扩展上面的例子。

    check process app-1337
      with pid /path/to/app.1337.pid
      group thin
      group thin-odd
      start = 'thin -d -p 1337 start'
      stop  = 'thin -d -p 1337 -P /path/to/thin.1337.pid stop'
      if cpu usage > 50% then restart
    check process app-1338
      with pid /path/to/app.1338.pid
      group thin
      group thin-even
      start = 'thin -d -p 1338 start'
      stop  = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
      if cpu usage > 50% then restart
    check process app-1337
      with pid /path/to/app.1339.pid
      group thin
      group thin-odd
      start = 'thin -d -p 1339 start'
      stop  = 'thin -d -p 1339 -P /path/to/thin.1339.pid stop'
      if cpu usage > 50% then restart
    check process app-1340
      with pid /path/to/app.1340.pid
      group thin
      group thin-even
      start = 'thin -d -p 1340 start'
      stop  = 'thin -d -p 1340 -P /path/to/thin.1340.pid stop'
      if cpu usage > 50% then restart
    

    所以现在您可以执行以下操作来重新启动所有操作:

    monit -g thin restart
    

    或者为了实现滚动重启,先重启奇数然后偶数。 只重启奇数:

    monit -g thin-odd restart
    

    甚至重启:

    monit -g thin-even restart
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2018-08-31
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      相关资源
      最近更新 更多