Вопрос: Каков наилучший метод мониторинга сервера OpenVPN?


У меня есть сервер OpenVPN, который находится в изолированной сети, правило NAT в брандмауэре компании перенаправляет весь трафик на порт 1194 (tcp) из общедоступного IP-адреса, который я выбрал для внутреннего адреса серверной машины OpenVPN. Я хотел бы создать проверку Nagios, которая будет контролировать доступность сервера OpenVPN. Какой был бы лучший метод для мониторинга, учитывая, что проверка будет выполняться из мира (сервер Nagios), а не изнутри компании?


4
2017-12-15 10:11


Источник


Определите, что вы хотите проверить. Тогда то, что нужно контролировать, должно быть очевидным. - Michael Hampton♦


Ответы:


Я делаю это дистанционно, через NAGIOS, используя локальный плагин, называемый check_openvpn.pl, вызывается через nrpe, который, в свою очередь, использует встроенную возможность управления OpenVPN для отчета о его подробном статусе.

Поскольку вы используете TCP в качестве проводника VPN, вы можете выполнить простую проверку соединения TCP на порте 1194 (как отмечает Деннис в своем ответе), но преимущество этого плагина заключается в довольно строгой проверке OpenVPN и сообщает CNs в настоящее время подключен к серверу. Если он будет сообщать на этом уровне, я могу быть уверенным, что сервер полностью готов и предлагает услугу миру в целом, что простая проверка связи мне не даст.

Плагин появился из эта страница на бирже NAGIOS; авторский сайт, по-видимому, http://emergeworld.blogspot.com,

Детали gory: следующая запись в конфигурации сервера 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,


7
2017-12-15 10:34



Что это за пароль? является ли пароль для пользователя мониторинга, который мне нужно создать? - Itai Ganot
Это общий секрет, который появляется (а) в nrpe.cfg и (b) в /etc/openvpn/man.pass, Он больше нигде не появляется, поэтому вы можете выбрать то, что вам нравится. Соответственно установите защиту файлов. - MadHatter
Когда я запускаю check_openvpn.pl локально или с сервера мониторинга, я получаю правильные результаты (OpenVPN OK: user1 user2), но Nagios показывает это: (Нет вывода, возвращаемого из плагина), есть ли у вас идея, почему это может произойти? - Itai Ganot
Существует ряд причин, по которым плагин, который выполняется локально, будет терпеть неудачу в NRPE; локальный брандмауэр на клиенте, NRPE не настроен правильно (у него есть список адресов, с которыми он будет разговаривать, в файле конфигурации), проблемы с SSL и не-SSL, проблема с привилегией (вы запускаете локальный тест с правами root, но NRPE работает без привилегий) и т. д. Есть ответы на SF, которые уже имеют дело с отладкой, поэтому начните с них и отправьте новый вопрос, если вы не найдете тот, который работает для вас. - MadHatter
Большое спасибо @MadHatter, все работает отлично. - Itai Ganot


Для OpenVPN я просто контролирую, прослушивает ли он обычный порт:

define command {
        command_name    check_openvpn
        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 1194
}

3
2017-12-15 10:33