检测和报告服务器中断的简单方法?

检测和报告服务器中断的简单方法?

我正在寻找一种超级简单的方法来从一台服务器监控另一台服务器,以防另一台服务器出现故障(例如基于 ping),然后发送电子邮件。有没有类似的东西可以通过标准包管理器(debian)安装?我知道 nagios 和 monit 之类的东西,但它们比我需要的要复杂得多。

(服务器位于私人网络上,因此我无法使用第三方网络服务)

谢谢

答案1

我知道你正在寻找可以通过包管理器安装的东西,但如果你正在寻找一些简单的脚本,下面的脚本可以为你提供帮助

        SERVERIP=192.168.0.1
        [email protected]

        ping -c 3 $SERVERIP > /dev/null 2>&1
        if [ $? -ne 0 ]
        then
        mail -s "Server $SERVERIP is down" -t "$NOTIFYEMAIL" < /dev/null 
        fi

答案2

如果您需要的只是在没有收到 ping 响应时发送电子邮件,则以下方法可能会有效:

#!/bin/sh
while oping -c 20 -i 1 -Z 15 otherhost; do
    :
done
echo "otherhost is down" | mail -s "otherhost is down" recipient@domain

这需要同名包中的 oping。上面的开关使其以 1 秒的间隔发送 20 个 ping;如果超过 15% 的 ping 没有得到回复(即 3 个数据包),oping 将失败退出,从而导致 while 循环退出并运行 mail 命令。如果您还安装了 moreutils 包,您甚至可以轻松地使最后一个(失败的)oping 输出包含在邮件中,如下所示:

#!/bin/sh
while chronic oping -c 20 -i 1 -Z 15 otherhost; do
    :
done | mail -E -s "otherhost is down" recipient@domain

相关内容