Build precise queries to find exactly what you need
Press ESC to close
just a quick note: put something like this in your config file to enable the management interface:
management 127.0.0.1 2194 /etc/openvpn/management-password
and pass the relevant options in for this probe. (put your password in that named file and get your permissions right!).
I’m using OpenVPN 2.2.2 on CentOS 5 in 2012 and I needed to make a few small changes for a point-to-point link (plus a few warning message tweaks). Unified diff follows. Thank you Jamie – using the management interface is the right way to do this (my previous grep hacks were silly).
————-
— check_openvpn.pl-dist 2012-04-30 18:21:13.000000000 -0400 +++ check_openvpn.pl 2012-04-30 18:45:07.000000000 -0400 @@ -4,6 +4,9 @@ # # Copyright (c) 2007 Jaime Gascon Romero # +# Modified 2012-04-30 Bill McGonigle +# to handle OpenVPN 2 point-to-point connection checking. +# # License Information: # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +31,7 @@ use Net::Telnet (); use Getopt::Long qw(:config no_ignore_case); use vars qw($PROGNAME $VERSION); -use lib “/usr/nagios/libexec”; +use lib “/usr/lib/nagios/plugins”; use utils qw(%ERRORS);
$PROGNAME = “check_openvpn”; @@ -85,7 +88,7 @@ $t->print($opt_P); } $t->waitfor(‘/^$/’); -@lines = $t->cmd(“status 2”); +@lines = $t->cmd(“state”); $t->close; };
@@ -97,7 +100,7 @@
if (defined $opt_i || defined $opt_r) { foreach (@lines) { – if ($_ =~ /CLIENT_LIST,.*,(d+.d+.d+.d+):d+,/) { + if ($_ =~ /d+,CONNECTED,SUCCESS,d+.d+.d+.d+,(d+.d+.d+.d+)/) { push @clients_ip, $1; } } @@ -107,10 +110,10 @@ } elsif (defined $opt_r) { if ( ! grep /b$opt_rb/, @clients_ip) { if (defined $opt_c) { – print “OpenVPN CRITICAL: $opt_r don’t found”; + print “OpenVPN CRITICAL: $opt_r not found”; exit $ERRORS{‘CRITICAL’}; } else { – print “OpenVPN WARNING: $opt_r don’t found”; + print “OpenVPN WARNING: $opt_r not found”; exit $ERRORS{‘WARNING’}; } } @@ -128,10 +131,10 @@ if (defined $opt_C) { if ( ! grep /b$opt_Cb/, @clients) { if (defined $opt_c) { – print “OpenVPN CRITICAL: $opt_C don’t found”; + print “OpenVPN CRITICAL: $opt_C not found”; exit $ERRORS{‘CRITICAL’}; } else { – print “OpenVPN WARNING: $opt_C don’t found”; + print “OpenVPN WARNING: $opt_C not found”; exit $ERRORS{‘WARNING’}; } }
We’ve completely redesigned the world’s largest repository of Nagios plugins and monitoring tools. Join thousands of users sharing monitoring solutions for servers, applications, and everything in between.
Due to our redesign, all existing accounts require a password reset to access your account again.
Ready to explore 6,100+ projects and contribute to the community?
Reset Password Create Account
Happy Monitoring!