Articles of monit

监视长时间运行的进程

我需要在Linux上启动一个长时间运行的内存/磁盘/ CPU密集型进程,并对其进行监视,以便: 检查它终止一个良好的状态代码, 收集统计信息(每x分钟logging一次cpu磁盘) 警报/重新启动,如果进程是振荡 那里有什么东西吗? 我知道软件来监视服务/守护进程,但不是一个漫长的过程,在临时的基础上。

在monit中采取两个行动

我的monit脚本用于检测进程中断,并告诉我规则是什么时候: IF DOES NOT EXIST THEN ALERT 我的监控脚本可以检测到中断,并在规则为时自动修复: IF DOES NOT EXIST THEN START 但是,我想要它做的是通知我并修复它 。 连续两条规则似乎使它忽略了最后的一切: IF DOES NOT EXIST THEN ALERT IF DOES NOT EXIST THEN START # No alert given. 我可以使用一个自定义的脚本来执行这两个操作 IF DOES NOT EXIST THEN EXEC "my_handwritten_script" 但是我试图从一堆手写脚本转向一个干净的Monitconfiguration。 我可以configurationMonit采取两个行动?

Monit – 守护进程的非守护进程?

我有一个ruby进程不作为守护进程运行(它在前台运行),但可以生成一个pid文件。 我的问题是,Monit总是期望监视后台/守护进程? 过去我使用了Bluepill,那是默认行为: 请注意,由于我们指定了一个PID文件和启动命令,bluepill假设进程将自我守护。 如果我们希望bluepill为我们提供守护进程,我们可以做(注意我们仍然需要指定一个PID文件):process.daemonize = true 有没有类似的monit? AFAIK,只要进程(不pipe是否守护进程)都可以创build一个PID文件,Monit会检测它是否自我守护,并且不会守护进程,反之亦然。 谢谢

Monit忽略内存使用阈值configuration

我从Ubuntu的存储库安装了Monit 5.6,以提醒我关于我的VPS的exception高内存和CPU使用情况。 事实certificate,75%的内存使用量对我的设置来说是相当常见的,所以我改变了在/etc/monit/conf.d/system.conf文件中设置限制的行: check system localhost … if memory usage > 90% then alert 但是现在它提醒我75%的门槛和90%。 我search了哪里可以设置: grep 75% -r /etc/monit/ ,但没有匹配。 有没有其他地方在默认设置下,Monit会保存它的configuration文件? 还是75%的限制是硬编码的? 我怎样才能禁用它? UPD :在更改之后,我尝试了重新加载和重新启动监视(尽pipe不尝试重新启动服务器)。 我的Monit版本是: # monit -V This is Monit version 5.6 Copyright (C) 2001-2013 Tildeslash Ltd. All Rights Reserved. 和configuration文件: check system localhost if loadavg (1min) > 4 then alert if […]

如何防止monit守护进程停止?

我使用monit来确保一切正常运行,但monit守护进程也停止了。 我不知道这是怎么回事,以及如何防止monit守护进程停止?

Monit不会启动我的节点js应用程序

Monit有一个问题,用于监视我的Node.js应用程序。 我刚刚从一台核心机器移到了多核心机器。 在他们两个上运行Ubuntu 11.10。 在旧的这个工作。 下面的这个脚本使用了一个新的脚本,我根据这个configuration: http : //howtonode.org/deploying-node-upstart-monit check process nodejs with pidfile "/var/run/myapp.pid" start program = "/sbin/start myapp" stop program = "/sbin/stop myapp" if failed port 80 protocol HTTP request / with timeout 10 seconds then restart 现在当我尝试运行它时,例如: monit -d 60 -c /etc/monit/monitrc一切正常: monit daemon at 1312 awakened 在马上启动myapp的旧机器上。 在新的一个没有。 mayer问题是,当我的Node应用程序崩溃monit不帮助我。 我知道了

Monit和exec一起使用警报

我有这样的规则: if memory usage > 85% for 10 cycles then alert 我不仅要通过电子邮件通知,而且要通过懈怠通知。 所以我可以添加这样的第二行: if memory usage > 85% for 10 cycles then exec /path/to/slack.rb 当你有多个规则,你必须重复每一行,这是烦人的。 可以一起使用alert和exec吗? 像这样的东西: if memory usage > 85% for 10 cycles then alert and exec /path/to/slack.rb

Monit – 如何在停止和开始之间添加延迟

我想知道是否有可能在停止/启动方法之间添加延迟。 这主要是因为它需要至less10秒的延迟才能closures所有打开的套接字连接,并优雅地closures服务器套接字以重新启动。 这是我的monit脚本 set logfile /var/log/monit.log check process test.sh with pidfile /home/svcs/test/pid/app.pid start program = "/etc/init.d/test.sh start" with timeout 60 seconds stop program = "/etc/init.d/test.sh stop" with timeout 60 seconds if failed host xx.xx.com port 443 type tcpSSL protocol http with timeout 15 seconds retry 3 then restart alert [email protected] 谢谢

将monit用作不作为后台进程来运行的进程

我使用montit进行其他需要运行的进程,但是我有一个不能作为守护进程运行的进程,我不知道如何使用monit

如何使用Monit监视多个进程的服务?

我正在尝试与monit一起观看邮件列表pipe理器sympa。 正在运行的sympa实例由列表pipe理的不同任务(例如,用于归档电子邮件的单独进程)组成的多个进程组成,但是所有进程都使用单个init脚本启动/停止。 最好,monit应该提醒我,如果任何服务失败,然后重新启动sympa,但只能重新启动一次。 第一个解决scheme如下所示: 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" 但是,如果我手动停止sympa,初始化脚本将被多次执行,每次我定义的服务都会执行一次(因为每个服务都失败了)。 我的第二种方法是定义依赖关系,只有在任何子服务失败时才会发出警报: check […]