Hi all, I'm maintaining mon for Debian distributions and ipvs.monitor was contributed to be included in Debian.
The monitor is not yet revised for me but I'll will send the fixed to the list if any is needed. I'll include this monitor in nexw 0.99.2 release (the last 0.99.2, I hope) and I'm forwarding it to be included in mon upstream code if feets. Thanks in advance. Thanks for your work in 'mon'. Regards -- _________________________________________________________________________ Dario Minnucci (midget) Phone: (+34) 902021030 | Fax: (+34) 902024417 | Support: (+34) 807450000 Email: [EMAIL PROTECTED] | URL: http://www.midworld.net/midget/ _________________________________________________________________________ Key fingerprint = 6DDB 5487 7F6D 89D4 5D9C 33C7 D181 DD7A 6C42 8272 _________________________________________________________________________
#!/usr/bin/perl
# ipvs.alert - Linux Virtual Server alert for mon
# Bring a realserver up or down, or remove the entire virtual server.
#
# Invocation:
# To remove a realserver from a virtual service:
# ipvs.alert -P <protocol> -V <virtual_server:port> -R <real_server:port>
# To add a realserver to an existing virtual service:
# ipvs.alert -u -P <protocol> -V <virtual_server:port> -R
<real_server:port> -W <weight> -F <forwarding>
# To remove a virtual service along with any associated realservers:
# ipvs.alert -D -P <protocol> -V <virtual_server:port>
# To create a virtual service with the given realserver:
# ipvs.alert -u -B -P <protocol> -V <virtual_server:port> -S <scheduler> -R
<real_server:port> -W <weight> -F <forwarding>
#
# Options:
# -P protocol (tcp|udp)
# -V virtual server
# -R realserver
# -W weight
# -F forwarding type (nat|tun|dr)
# -S scheduler (rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)
# -D delete the entire virtual server
# -B rebuild the virtual server
#
# Notes:
# - -u is added automatically when ipvs.alert is part of an
# ``upalert''. You can leave it out or append a dozen, this does not
# matter.
# - You can't build (-B) a virtual service without giving a
# realserver, but you *can* add a realserver without building a
# virtual service.
# - the comments are almost double the volume of the script itself.
# Good, bad or just plain ugly?
# - Since it uses ipvsadm, this script (and therefore Mon) must
# unfortunately run as root :(
use Getopt::Std;
getopts ("uDBs:g:h:t:l:P:V:R:W:F:S:");
$ipvsadm = "/sbin/ipvsadm";
$virtual_service = "$opt_V";
$realserver = "-r $opt_R";
$scheduler = "-s $opt_S";
%proto = (
"tcp" => "-t",
"udp" => "-u",
);
%type = (
"nat" => "-m",
"tun" => "-i",
"dr" => "-g",
);
if ($opt_u) { # bring up the realserver
if ($opt_B) { # build the virtual service first
system("$ipvsadm -A $proto{$opt_P} $virtual_service
$scheduler");
}
$weight = "-w $opt_W";
system("$ipvsadm -a $proto{$opt_P} $virtual_service $realserver $weight
$type{$opt_F}");
} elsif ($opt_D) { # tear down the entire virtual server
system("$ipvsadm -D $proto{$opt_P} $virtual_service");
} else { # delete the realserver
system("$ipvsadm -d $proto{$opt_P} $virtual_service $realserver");
};
# # ## ### ##### ######## ############# #####################
# CHANGELOG
# Mon Jul 12 14:12:49 MYT 2004
# Initial [messy] version
# Christopher DeMarco <[EMAIL PROTECTED]>
# Thu Jul 15 11:02:06 MYT 2004
# Added -D to delete the entire virtual server
# Bringing up a service also adds the virtual server
# General code overhaul
# Christopher DeMarco <[EMAIL PROTECTED]>
# Mon Jul 26 10:09:34 MYT 2004
# Renamed "lvs" to "ipvs"
# Christopher DeMarco <[EMAIL PROTECTED]>
# Wed Oct 1 18:34:27 CEST 2008
# fixed inline documentation
# fixed whitespace/tab
# Richard Hartmann <[EMAIL PROTECTED]>
# # ## ### ##### ######## ############# #####################
# Copyright (C) 2004, Christopher DeMarco
# Copyright (C) 2008, Richard Hartmann
#
# 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 the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA
#!/usr/bin/perl
# ipvs.monitor - Linux Virtual Server monitor for mon
# Check whether the specified virtual service is defined, and,
# optionally, whether it has any realservers defined.
#
# Invocation:
# ipvs.monitor [options] -V <virtual_server:port> -P <protocol>
#
# Options:
# -V virtual server
# -P protocol (tcp|udp)
# -z allows a virtual service to have zero realservers defined
#
# Notes:
# - Since it uses ipvsadm, this script (and therefore mon) must
# unfortunately run as root :(
# - ipvs.monitor returns 0 on success and 1 on failure
use Getopt::Std;
getopts ("zV:P:");
%proto = (
"tcp" => "-t",
"udp" => "-u",
);
$virtual_service = "$opt_V";
@ipvs = `/sbin/ipvsadm -l $proto{$opt_P} $virtual_service 2>&1`;
# allow a service with no realservers?
defined $opt_z ?
($n = 2)
:
($n = 3);
# Check the output:
# ...two lines of headers
# ...one line of virtual service
# ...one line for each realserver
$#ipvs < $n ?
exit 1
:
exit 0;
# # ## ### ##### ######## ############# #####################
# CHANGELOG
# Tue Jul 27 11:17:39 MYT 2004
# Initial version
# Christopher DeMarco <[EMAIL PROTECTED]>
# Tue Jul 27 14:14:08 MYT 2004
# added -z switch
# Christopher DeMarco <[EMAIL PROTECTED]>
# Wed Oct 1 18:34:27 CEST 2008
# fixed inline documentation
# fixed whitespace/tab
# Richard Hartmann <[EMAIL PROTECTED]>
# # ## ### ##### ######## ############# #####################
# Copyright (C) 2004, Christopher DeMarco
# Copyright (C) 2008, Richard Hartmann
#
# 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 the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mon mailing list [email protected] http://linux.kernel.org/mailman/listinfo/mon
