OpenVPN 断开连接时发送电子邮件提醒

OpenVPN 断开连接时发送电子邮件提醒

我在专用服务器上运行 OpenVPN 客户端,将服务器连接到专用网络。上周,该服务(即 OpenVPN)自行断开连接,直到客户开始给我们打电话,我们才意识到。我不知道它断开连接的原因,现在我想在 OpenVPN 断开连接时立即设置电子邮件警报。我该怎么做?有人可以帮忙吗?

顺便说一下,服务器运行的是 CentOS 6.8

谢谢。

答案1

我已经通过以下三个步骤成功建立了一个

  1. 跟随或者找到自己的指南来配置电子邮件通知脚本

  2. 打开/etc/openvpn/server.conf并添加以下行

    script-security 2
    client-disconnect /path/to/script
    
  3. 最后chmod 755 /path/to/script


编辑:抱歉,我误读了您的问题。将以下两行添加到client.conf。此方法比 cronjob 更可取,因为它几乎是即时的,并且不会向您发送大量邮件

    script-security 2
    down /path/to/script

答案2

我设法编写了一个简单的脚本来检查服务是否正在运行,如果没有,则重新启动服务并发送电子邮件。以下是简单的代码

文件名checkprocess.sh

#!/bin/bash

# timestamp
ts=`date +%m-%d-%Y_%H:%M:%S`

if pgrep "openvpn" > /dev/null
then
    echo "$ts: OpenVPN running..." >> /etc/openvpn/myscript/processcheck.log
else
    echo "$ts: openvpn not running, restarting..." >> /etc/openvpn/myscript/processcheck.log 
    /etc/init.d/openvpn start > /dev/null >> /etc/openvpn/myscript/processcheck.log

    if pgrep "openvpn" > /dev/null
    then
        echo "$ts: openvpn started OK..." >> /etc/openvpn/myscript/processcheck.log
        echo "OpenVPN service went down, the service has been restarted." | mail -s "OpenVPN went down" [email protected]
    else
        echo "$ts: openvpn not started..." >> /etc/openvpn/myscript/processcheck.log
        echo "OpenVPN service is down, the server is trying to restart the service." | mail -s "OpenVPN is down" [email protected]
    fi
fi

把这个文件放进去/etc/openvpn/myscript并编辑 cronjob

#crontab -e 

添加以下行以每 5 分钟运行一次脚本

*/5 * * * * /etc/openvpn/myscript/checkprocess.sh

相关内容