我正在寻找一种方法来终止所有已运行超过 X 时间的给定名称的进程。我生成了这个特定可执行文件的许多实例,有时它会进入错误状态并永远运行,占用大量 CPU。
我已经在使用 monit,但我不知道如何检查没有 pid 文件的进程。规则是这样的:
kill all processes named xxxx that have a running time greater than 2 minutes
Run Code Online (Sandbox Code Playgroud)
你会如何在 monit 中表达这一点?
Monit 以 root 身份运行,但我不想以 root 身份启动我的进程.. 像 mysql、mongrel、apache..
我已经配置了 monit 测试和警报——但我想确保我的警报堆栈中的所有内容(外发电子邮件服务器、短信电子邮件网关……)都能正常运行。有没有一种方便的方法来触发虚拟测试警报?
我正在尝试启动一个程序 (Resque),但在写入 pidfile 之前需要一些时间。因此,我认为 Monit 认为程序尚未启动,并在写入第一个 pidfile 之前再启动一两个程序。
我如何延迟 Monit 再次检查的时间,只是为了这个过程?或者我应该以另一种方式解决这个问题?
与 monit 相比,nagios 是否提供任何附加功能?
这个答案表明 monit 是一个笨拙的态势感知工具,这就是我提出这个问题的原因。
我正在设置 monit 并想监控给定的 python 应用程序。Monit 通过查看进程的 .pid 文件来做到这一点,但我不知道这会在哪里。
我还尝试创建自己的简单可执行文件并运行它 - 在这里我也无法弄清楚 .pid 文件的创建位置。
并且所有进程都有一个 .pid 文件吗?
当您使用 Monit 通过其 pid 监视进程时,例如:
check process blop with pidfile /.../blop.pid
start program = "..."
stop program = "..."
Run Code Online (Sandbox Code Playgroud)
当 pidfile 更改时,您会收到警报。
您如何禁用此警报?例如,如果您只想知道进程何时无法重新启动。
我们正在运行两台带有 Apache 2 和 MySQL 的生产服务器。我正在寻找一种可靠的方式来监控我们的负载、稳定性和正常运行时间。
我遇到过monit,但有更好的选择吗?
我在我的服务器上使用 monit 来监控 apache 和 mysql 的运行。
现在我想在磁盘太满时添加警报。我添加了这个用于测试/etc/monit/monitrc:
check device rootfs with path /dev/md0
if space usage > 10% then alert
Run Code Online (Sandbox Code Playgroud)
我有两个要检查的分区:/和/var:
mount
/dev/md0 on / type ext3 (rw)
/dev/md2 on /var type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
除了磁盘空间之外,此配置中还有哪些有用的检查?
我正在尝试使用 404 或 403 页面监视 HTTP 状态。众所周知,Monit 将这些页面视为连接失败,但我该如何更改。我只想监控它是否显示 404 或 403 页面。
如果可能的话,我需要用这个配置检查它。
这是我的检查配置:
check process httpd with pidfile /var/run/httpd.pid
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host hostname port 80
protocol HTTP request "/"
then exec "/bin/bash -c '/bin/echo -e "hostname\thttpd\t3\tFAILED" | /usr/sbin/send_nsca -H nagiosserver -c /etc/send_nsca.cfg; /usr/bin/monit restart nginx;'"
Run Code Online (Sandbox Code Playgroud)