Мы ведем бизнес с несколькими сайтами, каждый сайт подключен к центральному серверу OpenVPN для обеспечения доступа к внутренним системам. В настоящее время я использую Monit, чтобы проверить, запущен ли клиент OpenVPN и работает ли удаленный сервер, но поскольку некоторые из сайтов работают на нестабильных модемах 4G, соединение VPN иногда прерывается без завершения процесса, что заставляет monit думать, что все хорошо. Простой пинг для VPN-шлюза покажет, работает ли соединение или нет, но когда я читаю документацию по монитору, проверка ping, похоже, не сочетается с проверками процесса, поэтому я могу добавить проверку, но на самом деле не могу перезапустите процесс с ним.
Есть ли какой-то очевидный способ сделать это, который мне не хватает, или есть другой способ сделать OpenVPN способным самостоятельно восстанавливаться после такого рода проблем?
Это мой мониторинг (в основном вырезано и вставлено из руководства):
check process openvpn with pidfile /var/run/openvpn.client.pid
start program = "/etc/init.d/openvpn start"
stop program = "/etc/init.d/openvpn stop"
if failed host *my-vpn-gateway* port 1194 type udp then restart
group net
depends openvpn_init
depends openvpn_bin
check file openvpn_init with path /etc/init.d/openvpn
group net
check file openvpn_bin with path /usr/sbin/openvpn
group net
кажется, что обходной путь состоит в том, чтобы иметь 2 цыпленка: 1 для процесса и 1 для обеспечения доступности хоста шлюза
check process vpn-network with pidfile /var/run/vpn-network.pid
start program = "/etc/init.d/openvpn start vpn-network.com"
stop program = "/etc/init.d/openvpn stop vpn-network.com"
check host tap0 with address 1.1.1.1
start program = "/etc/init.d/openvpn start vpn-network.com"
stop program = "/etc/init.d/openvpn stop vpn-network.com"
if failed
icmp type echo count 5 with timeout 15 seconds
then restart ¶
источник: http://grimore.org/unix/monit/openvpn