Monit 网络可用性检查

Monit 网络可用性检查

我想使用 monit 启动服务,但前提是我有正确的 ip 绑定到主机。这可以通过正常配置以某种方式完成吗?例如,我想使用 pidfile xxx.pid 启动进程 xxx,但前提是主机当前将 10.0.0.1 绑定到某个接口。

答案1

在纯监控上可能无法做到这一点。

您可以编写一个 shell 脚本来检查 IP 是否绑定到某个接口,然后启动服务,但副作用是,如果在 monit 启动后未创建 pid 文件,monit 会抱怨程序未启动。

更新: 您可以通过添加来禁用此警告当地警报声明

 check process myproc with pidfile /var/run/my.pid
   alert foo@bar only on { timeout } 

更新2: Bash 脚本可以是类似这样的(您需要将实际的启动脚本作为参数):

#!/usr/bin/env bash

for i in `/sbin/ifconfig -a | grep 'inet addr:' | awk '{print $2}' | sed -e 's/^.*://'` ;do
  if [ "$i" == "10.0.0.1" ] ; then
    $1
  fi
done

答案2

无论如何,老问题已经老了:您可以使用 guessnet+ifupdown 来解决此问题。

相关内容