Monit:每次测试失败时,如何阻止 monit 运行 exec 语句?

Monit:每次测试失败时,如何阻止 monit 运行 exec 语句?

每次测试失败时,如何阻止 monit 运行 exec 语句?我的 monitrc 中的语句是:

check filesystem tmpfs with path /var                                           
    if space > 90% then exec "/usr/bin/logger -p daemon.crit 'MAJOR: space test'"

这看起来很奇怪,因为其他人问了一个问题,他正在发出警报,并且它具有我想要的行为。我准备开始扼杀Linux机器。

编辑:这是相反的情况重复监控警报

是不是因为他使用的是 alert 而不是 exec?

答案1

我以前曾多次处理过类似的问题。

monit据我所知,事实是无法做到这一点。

monit可以处理X times和/或Y cycles指令,但或多或​​少,该exec操作会被触发多次,具体取决于您花在解决问题上的时间。

所以,最后,我决定编写自己的检查脚本来根据标志处理所有逻辑。

我要与你们分享这个,然后你们接受或不接受,由你们自己决定。


第一的 :编写脚本来监控FS的使用情况,比如说/root/check_fsspace.sh

#!/bin/sh

myFS=/var
myTreshold=90
flagFile=/tmp/flag

spaceused=$(df -h | grep "$myFS" | tr -s " " | cut -d" " -f5 | cut -d"%" -f1)

if [ $spaceused -gt $myTreshold ]; then
  if [ ! -f $flagFile ]; then
     touch $flagFile
     exit 1
  else
     exit 0
  fi
fi

if [ $spaceused -le $myTreshold ]; then
   rm -f $flagFile
   exit 0
fi

我假设您能理解该脚本。如果不理解,请告诉我,我会解释。

第二 :设置您的monit服务定义:

check program check_fs with path "/root/check_fsspace.sh"
  if status != 0 then exec "/usr/bin/logger -p daemon.crit 'MAJOR: space test'"

答案2

从 Monit 5.16 版开始,“exec”操作(每次重复)的行为发生了变化

https://mmonit.com/monit/changes/

现在,exec 操作仅在状态改变时执行一次,与 alert 操作相同。

答案3

您可以使用cycles指令来控制这一点。您希望多久记录一次?

假设 Monit 守护进程检查间隔为 60 秒,您可以说类似这样的话,“如果此操作在 X 个周期内失败,则执行脚本”。

但 Monit 很简单……每次达到此磁盘阈值时,它都会在发生故障时发出警报。这是设计使然。如果您经常达到阈值,以至于此日志记录操作令人烦恼,请尝试更改阈值。

Monit 将记录其状态循环到您的消息日志。

Mar 12 00:07:06 yo-mama monit[8577]: 'ppro' space usage 92.4% matches resource limit [space usage>85.0%] 
Mar 12 00:08:06 yo-mama monit[8577]: 'ppro' space usage 92.4% matches resource limit [space usage>85.0%] 
Mar 12 00:09:06 yo-mama monit[8577]: 'ppro' space usage 92.4% matches resource limit [space usage>85.0%] 
Mar 12 00:09:07 yo-mama monit[8577]: 'ppro' space usage 92.4% matches resource limit [space usage>85.0%] 

每次超过阈值时都会发出警报:

Resource limit matched Service ppro

    Date:        Wed, 12 Mar 2014 00:09:07
    Action:      alert
    Host:        yo-mama
    Description: space usage 92.4% matches resource limit [space usage>85.0%]

Your faithful employee,
Monit

相关内容