Назад | Перейти на главную страницу

Уведомление по электронной почте при отключении OpenVPN

Я использую клиент OpenVPN на своем выделенном сервере для подключения сервера к частной сети. На прошлой неделе сервис (например, OpenVPN) отключился, и мы не осознавали этого, пока наши клиенты не начали нам звонить. Я не знаю, почему он отключился. Теперь я хочу настроить оповещение по электронной почте, как только отключается OpenVPN. Как я могу это сделать ? Кто-нибудь может помочь, пожалуйста.

Кстати, на сервере работает CentOS 6.8.

Спасибо.

Я сам успешно создал один с помощью этих трех шагов

  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

Мне удалось написать простой скрипт, чтобы проверить, запущена ли служба, если нет, перезапустите службу и отправьте электронное письмо. Вот простой код

имя файла 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@domain.com
    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@domain.com
    fi
fi

поместите этот файл в /etc/openvpn/myscript и отредактируйте cronjob

#crontab -e 

Добавьте следующую строку, чтобы запускать скрипт каждые 5 минут

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