我正在寻找一种方法,让 monit 仅在特定进程出现故障时发出警报。例如:
check process apache
with pidfile /var/run/httpd.pid
group www
start program = "/usr/sbin/apachectl start"
stop program = "/usr/sbin/apachectl stop"
alert operations@example.com with reminder 5
Run Code Online (Sandbox Code Playgroud)
使用该配置,apache 将随着进程消失而重新启动。而不是发生这种情况,我想保持低调,直到有人可以手动干预。
对于那些好奇为什么的人:
我们的生产环境使用 monit 来控制应用程序。我们的非生产环境没有。这导致了一个问题,因为我们的开发人员更改了特定应用程序的启动方法。在它进入生产环境之前,它一直通过我们的非生产环境,monit 最终导致应用程序关闭,因为它没有在预生产中被捕获。
我想在非生产环境中设置 monit,这样我们就可以捕捉到这样的故障,但由于它不是关键任务,我们不需要自动重启服务。
我想从 CentOS 5.4 上的 monit 监控 vsftpd 服务器,但不知何故 vsftpd 不会在 /var/run (也不在任何其他地方)创建 pid 文件。
对于此发行版,这种行为是否正常?我应该如何配置 monit 来监视 vsftpd,我应该在 /etc/init.d/vsftpd 脚本中手动创建 pid 文件吗?
谢谢。
我想使用 Monit 监控 NFS 挂载和 NFS 服务器进程。
在服务器上,我需要一个 PID 文件,但我似乎找不到使用现有配置文件创建它的方法。有没有办法做到这一点,或者有人以不同的方式监视服务器(检查端口 53 是否处于活动状态等)。
在客户端,我想让 Monit 只是在 NFS 挂载中查找特定文件,如果它可以访问,一切都很好。问题是,如果 NFS 服务器确实出现故障,文件请求通常会挂起(甚至可能无限期,不确定)。如何使用 monit 解决这个问题?
任何配置示例将不胜感激!
曾经可以让 monit 监控内存使用情况……
检查系统 foo 如果内存使用率 > 95% 则警报
它使用空闲 RAM 还是空闲 -/+ 缓冲区/缓存?(或者是其他东西?)
#免费-m
缓存的已用空闲共享缓冲区总数
电话:998 851 146 0 114 70
-/+ 缓冲区/缓存:666 332
掉期:2047 54 1993
我在 OS X 10.7 上安装了 monit-5.3.2,但一直无法运行。
当我运行sudo monit -t我得到:
monit:无法将“hakan”转换为 FQDN 名称——提供了节点名或服务名,或未知 控制文件语法正常
当我运行sudo monit restart 所有我得到:
monit:无法将“hakan”转换为 FQDN 名称——提供了节点名或服务名,或未知 monit:无法连接到 monit 守护进程。你是从 http 支持开始的吗?
'hakan' 是我的主机名。
这是我的/etc/monitrc:
设置守护进程 60 设置 idfile /tmp/monit.id 设置状态文件 /tmp/monit.state 设置邮件服务器本地主机 设置警报系统@abcd.net 设置 httpd 端口 2812 并使用地址 localhost
有任何想法吗?我没有运气在谷歌上找到这个。提前致谢。
我有一个 ruby 进程,它不作为守护进程运行(它在前台运行),但可以生成一个 pid 文件。我的问题是 Monit 总是希望监视后台/守护进程吗?
我过去使用过 Bluepill,这是默认行为:
请注意,由于我们指定了一个 PID 文件和启动命令,所以 bluepill 假定该进程将自行守护进程。如果我们想让 bluepill 为我们守护它,我们可以这样做(注意我们仍然需要指定一个 PID 文件): process.daemonize = true
monit 有类似的东西吗?AFAIK,只要进程(守护进程与否)可以创建一个 PID 文件,Monit 就会检测它是否对自身进行守护进程并且不会对其进行守护进程,反之亦然......
谢谢
我想知道是否可以在停止/启动方法之间添加延迟。这主要是因为它需要至少 10 秒的延迟才能关闭所有打开的套接字连接并优雅地关闭服务器套接字以重新启动。
这是我的监控脚本
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 xx@xx.com
Run Code Online (Sandbox Code Playgroud)
谢谢
条件匹配时如何做多件事?例如,如果我想重新启动一个进程并发送警报电子邮件。我知道我可以用两条单独的线来完成,但我可以将它们组合起来吗?
if cpu > 95% for 2 cycles then restart
if cpu > 95% for 2 cycles then alert
Run Code Online (Sandbox Code Playgroud) 我刚开始使用 Monit 并且没有很多系统知识。我有一个在Puma 上运行的 Ruby 应用程序。如果 Puma 死机,我想使用 Monit 自动重新启动它。我目前正在使用Puma 提供的 Capistrano 2 配方,它使用控制脚本而不是将 PID 输出到文件。
有没有办法配置monit来检查Puma的状态看是否应该重启?
我需要帮助。我正在查看 Monit 文档,我需要帮助。我在那里找不到我的答案。我需要监视服务的日志文件,如果该日志文件的大小停止增加,或者日志文件中的某些内容停止输入(日志文件每秒收到大约 20 条新消息。它有轮换)然后监视将通过电子邮件提醒我。这个真的很需要!
谢谢!