嘿那里,我们在monit中有一个设置,我们监视大量的日志文件中的字符串"Exception".当monit看到这个字符串时,我们会收到一封电子邮件提醒.
有些时候,当我们的应用程序多次遇到相同的异常时,我们会非常严重地发送垃圾邮件.
一种解决方案是围绕我们记录异常的方式更加智能,但有时并不总是显而易见,这种类型的"经常重复"的异常可能会发生,直到它为时已晚并且我们已被垃圾邮件发送.
想知道是否有人知道任何限制监视警报的方法.例如,当同一个异常发生超过5次时,请停止提醒给定期间.
任何想法,将不胜感激.
我已经阅读了很多关于使用monit监视delayed_job的信息.实施非常简单直接.但是,如果一个工人还不够,我该如何设置monit以确保10个工人不断运行呢?
我有一个用PHP编写的守护进程.我使用以下命令来调用守护进程
php dojobs.php
Run Code Online (Sandbox Code Playgroud)
当我调用该命令时,守护进程无限运行,因为文件dojobs.php具有以下代码
while(true)
{
code here
}
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
我在守护进程中有以下代码:
exec('nohup sendMail.php>/dev/null 2>&1&echo $!';,$ op);
(如何确保上面的nohup命令正常工作以及sendMail.php文件实际上是否正常工作?sendMail.php不是守护进程.它会发送一封电子邮件然后退出.)
非常感谢.
如何在Monit中组合多个检查?我想检查进程活动和文件内容/时间戳.
我正在使用Monit守护进程来保持我的Bukkit Minecraft服务器.它做了几次检查.目前我有这个代码:
#!monit
check process bukkit pidfile /var/run/bukkit.pid # check if the java process is running
start program = "/sbin/start bukkit" # start with Upstart
stop program = "/sbin/stop bukkit" # stop with Upstart
if failed # send a noop request to check if the server responses
host cubixcraft.de port 20059 protocol http
and request "/api/call?method=runConsoleCommand&args=%5B%22noop%22%5D&key=d9c7f3f6be0c92c1b2725f0e5a3352514cee0885c3bf7e0189a76bbaf2f4d7a7"
with checksum e006695c8da58e03f17a305afd1a1a32
timeout 20 seconds for 2 cycles
then restart # restart if it fails
Run Code Online (Sandbox Code Playgroud)
它有效...但它很慢.如果出现问题,我必须等待20秒才能终止服务器.但我需要超时,因为服务器会不时地进行一些重新加载(刷新配置,清理内存等),这会产生很小的滞后.没有timeout 20 seconds for …
我正在尝试为Sidekiq设置Monit.这是我到目前为止配置文件的内容:
check process sidekiq_site
with pidfile /var/www/site/tmp/pids/sidekiq.pid
start program = "bundle exec sidekiq -C /var/www/site/config/sidekiq.yml -P /var/www/site/tmp/pids/sidekiq.pid" with timeout 90 seconds
if totalmem is greater than 200 MB for 2 cycles then restart # eating up memory?
group site_sidekiq
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行monit reload时,我收到的消息是程序"bundle"不存在.
有人有解决方案吗?
我已经使用了monit一段时间,但我想报警文件是否存在.这是主文档中的相反用例.
这是医生说的:
IF [DOES] NOT EXIST [[<X>] <Y> CYCLES] THEN action [ELSE IF SUCCEEDED [[<X>] <Y> CYCLES] THEN action]
action is a choice of "ALERT", "RESTART", "START", "STOP", "EXEC" or "UNMONITOR".
Run Code Online (Sandbox Code Playgroud)
这给了我"如果文件丢失就吓坏了"的秘诀.但我想"如果文件在那里就吓坏了".行动的选择意味着没有"无所作为"的行动.我可以选择无操作,但对于"无所事事"的标准情况来说,这真的很愚蠢.
我猜到了一些基本情况:
IF EXISTS THEN alarm
IF EXIST THEN ALARM
Run Code Online (Sandbox Code Playgroud)
那么,有标准的方法IF IT DOES EXIST吗?
我望着使用monit的工具,我的Rails app.As这是我第一次使用任何监视工具可以有人指导我或点我一些参考试图对我如何设置和使用的monit使用默认的Rails的WEBrick服务器工具(当地的发展环境)?我发现了以下引用,但它们都展示了针对Apache,Nginx等的monit配置.
环境:
谢谢,
Jignesh
我正在调试monit启动/停止程序语句.在我的/etc/monit.conf文件中,我的start program陈述如下:
check process node with pidfile /home/ec2-user/blah/node.pid
start program = "/bin/su -c 'export APP_ENV=development; /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js start &> /tmp/monit.out ' "
stop program = "/bin/su -c '/home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js stop'""
Run Code Online (Sandbox Code Playgroud)
我在shell中测试过
$ sudo su
# env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/sh
# /bin/su -c '/usr/bin/env APP_ENV=development; /home/ec2-user/local/bin/node /home/ec2-user/example.com/current/api.js start &> /tmp/monit.out '
Run Code Online (Sandbox Code Playgroud)
运行它会在/tmp/monit.out文件中返回正确的输出:
Starting nodejs daemon...
nodejs daemon started. PID: 16408
Run Code Online (Sandbox Code Playgroud)
但是当我运行时sudo monit -v monitor node,它会显示一个不同的命令,除了内部单引号被删除之外:
The service list contains the following …Run Code Online (Sandbox Code Playgroud) 我有一个带有Node.js Layer和Node.js应用程序的Opsworks堆栈.我想知道是否有人知道ubuntu 14.04LTS实例的哪个位置正在打印我的应用程序的控制台日志.我知道opsworks使用monit来运行我的应用程序,但我不确定它输出日志的位置.
谢谢!
任何想法为什么monit不会在这个设置中监视mysql ??? 我已经完成了我在这里找到的所有解决问题但无济于事的事情.
这些是我的版本:
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
mysql --version
Ver 14.14 Distrib 5.5.41, for debian-linux-gnu (x86_64) using readline 6.3
monit -V
This is Monit version 5.6
我尝试了这两种设置:
check process mysql with pidfile /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
#if failed host 127.0.0.1 port 3306 protocol mysql then restart
if failed unixsocket /var/run/mysqld/mysqld.sock protocol MYSQL then restart
得到这个:
monit status
Process 'mysql'
status Not monitored
monitoring …
monit ×10
linux ×2
ubuntu ×2
amazon-ec2 ×1
aws-opsworks ×1
bash ×1
console.log ×1
daemon ×1
delayed-job ×1
monitoring ×1
mysql ×1
node.js ×1
php ×1
sidekiq ×1
ssh ×1
ubuntu-12.04 ×1
upstart ×1