监控 OpenVPN 服务器的最佳方法是什么?

Ita*_*not 5 monitoring openvpn nagios

我有一台驻留在隔离网络上的 OpenVPN 服务器机器,公司防火墙中的 NAT 规则将端口 1194 (tcp) 上的所有流量从我选择的公共 IP 重定向到 OpenVPN 服务器机器的内部地址。我想创建一个 Nagios 检查来监控 OpenVPN 服务器的可用性。考虑到检查将从世界(Nagios 服务器)而不是从公司内部运行,监视它的最佳方法是什么?

Mad*_*ter 7

我通过 远程执行此操作,NAGIOS使用名为 的本地插件check_openvpn.pl,通过 调用nrpe,该插件又使用 OpenVPN 的内置管理功能报告其详细状态。

由于您使用 TCP 作为 VPN 承载,您可以在端口 1194 上进行简单的 TCP 连接检查(正如丹尼斯在他的回答中指出的那样),但此插件的优点是它对 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
    }
Run Code Online (Sandbox Code Playgroud)

然后在 OpenVPN 服务器的nrpe.cfg

command[check_openvpn]=/usr/lib64/nagios/plugins/check_openvpn.pl -H localhost -p 11940 -P XXXXXXX
Run Code Online (Sandbox Code Playgroud)

然后在 OpeVPN 服务器的“.conf”文件的末尾:

# enable the mgmt interface for monitoring - tom 20120814
management 127.0.0.1 11940 /etc/openvpn/man.pass
Run Code Online (Sandbox Code Playgroud)

注意11940前面两个数据的共同点;那是管理接口的端口号。nrpe.cfg上面条目中的密码(显示为XXXXXXX)也应该出现在文件中/etc/openvpn/man.pass