У меня есть серверный компьютер OpenVPN, который находится в изолированной сети, правило NAT в брандмауэре компании перенаправляет весь трафик на порт 1194 (tcp) с общедоступного IP-адреса, который я выбрал, на внутренний адрес сервера OpenVPN. Я хотел бы создать проверку Nagios, которая будет отслеживать доступность сервера OpenVPN. Что было бы лучшим методом для его отслеживания, учитывая, что проверка будет выполняться из мира (сервер Nagios), а не изнутри компании?
Я делаю это удаленно, через NAGIOS
, используя локальный плагин под названием check_openvpn.pl
, вызывается через nrpe
, который, в свою очередь, использует встроенные возможности управления OpenVPN для отчета о своем подробном состоянии.
Поскольку вы используете TCP в качестве канала-носителя VPN, вы можете выполнить простую проверку подключения TCP на порту 1194 (как отмечает Деннис в своем ответе), но преимущество этого плагина в том, что он выполняет довольно тщательную проверку OpenVPN и сообщает CN. в настоящее время подключен к серверу. Если он сообщает на этом уровне, я могу быть уверен, что сервер полностью готов и предлагает услуги всему миру, чего мне не дала бы простая проверка подключения.
Плагин пришел из эта страница на бирже NAGIOS; сайт автора видимо http://emergeworld.blogspot.com.
Кровавые детали: следующая запись в конфигурации сервера NAGIOS (плюс соответствующая логика подключения):
define service{
use myconf-svc
host_name openvpn.server.hostname
service_description openvpn
check_command check_nrpe!check_openvpn
}
Затем это на сервере OpenVPN nrpe.cfg
:
command[check_openvpn]=/usr/lib64/nagios/plugins/check_openvpn.pl -H localhost -p 11940 -P XXXXXXX
Затем это в конце файла `.conf 'сервера OpeVPN:
# enable the mgmt interface for monitoring - tom 20120814
management 127.0.0.1 11940 /etc/openvpn/man.pass
Обратите внимание 11940
общие для обоих предыдущих данных; это номер порта для интерфейса управления. Пароль в nrpe.cfg
запись выше (отображается как XXXXXXX
) также должен появиться в файле /etc/openvpn/man.pass
.
Для OpenVPN я просто отслеживаю, прослушивает ли он обычный порт:
define command {
command_name check_openvpn
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 1194
}