mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 22:25:23 +00:00
Initial version
This commit is contained in:
parent
6871929e3c
commit
01fea75c0f
1 changed files with 135 additions and 0 deletions
135
plugins/other/ultramonkey-l7
Executable file
135
plugins/other/ultramonkey-l7
Executable file
|
@ -0,0 +1,135 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
# must be run as root
|
||||
my $L7VSADM = q{ /usr/sbin/l7vsadm };
|
||||
|
||||
if ( defined $ARGV[0] and $ARGV[0] eq 'autoconf' ) {
|
||||
get_autoconf();
|
||||
}
|
||||
elsif ( defined $ARGV[0] and $ARGV[0] eq 'config' ) {
|
||||
get_config();
|
||||
}
|
||||
else {
|
||||
get_value();
|
||||
}
|
||||
exit 0;
|
||||
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
sub get_autoconf
|
||||
{
|
||||
`$L7VSADM`;
|
||||
if ( $? ) {
|
||||
print qq{no ($L7VSADM something wrong ...)\n};
|
||||
exit 1;
|
||||
}
|
||||
|
||||
print qq{yes\n};
|
||||
}
|
||||
|
||||
|
||||
sub get_config
|
||||
{
|
||||
my %l7vsadm = get_l7vsadm();
|
||||
|
||||
# print graph config
|
||||
my $graph_order = join q{ }, keys %l7vsadm;
|
||||
print << "END_graph_";
|
||||
graph_title Connections
|
||||
graph_args --base 1000 -l 0
|
||||
graph_vlabel connections / sec
|
||||
graph_info UltraMonkey-L7 Connections
|
||||
graph_category Ultramonkey-L7
|
||||
graph_order $graph_order
|
||||
END_graph_
|
||||
|
||||
# print graph config detail each hosts
|
||||
foreach my $host ( sort keys %l7vsadm ) {
|
||||
print << "END_hosts_";
|
||||
$host.label $host
|
||||
$host.type COUNTER
|
||||
$host.draw AREASTACK
|
||||
END_hosts_
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub get_value
|
||||
{
|
||||
my %l7vsadm = get_l7vsadm();
|
||||
|
||||
foreach my $host ( sort keys %l7vsadm ) {
|
||||
my $value = $l7vsadm{$host}->{InactConn};
|
||||
print qq{$host.value $value\n};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub get_l7vsadm
|
||||
{
|
||||
my @l7vsadm_output = `$L7VSADM`;
|
||||
my @lines = map { s{ \s* -> \s* }{}xms; $_ } grep /->/, @l7vsadm_output;
|
||||
my $header = shift @lines;
|
||||
my @header_columns = split /\s+/, $header;
|
||||
shift @header_columns;
|
||||
|
||||
my %l7vsadm = ();
|
||||
foreach ( @lines ) {
|
||||
my ( $host, @values ) = split /\s+/, $_;
|
||||
my %value_hash = ();
|
||||
@value_hash{ @header_columns } = @values;
|
||||
$l7vsadm{$host} = \%value_hash;
|
||||
}
|
||||
|
||||
%l7vsadm;
|
||||
}
|
||||
|
||||
|
||||
__END__
|
||||
# -------------------------------------------------------------------------- #
|
||||
This program must be run as root.
|
||||
add settings like below.
|
||||
|
||||
--- /etc/munin/plugin-conf.d/munin-node ---
|
||||
[ultramonkeyl7]
|
||||
user root
|
||||
--- /etc/munin/plugin-conf.d/munin-node ---
|
||||
|
||||
# -------------------------------------------------------------------------- #
|
||||
get_l7vsadm : l7vsadm output to hash
|
||||
|
||||
--- l7vsadm output ---
|
||||
Layer-7 Virtual Server version 3.0.1
|
||||
Prot LocalAddress:Port ProtoMod Scheduler
|
||||
-> RemoteAddress:Port Forward Weight ActiveConn InactConn
|
||||
TCP ldb001:mysql sessionless lc
|
||||
-> db002:mysql Masq 1 0 2796
|
||||
-> db003:mysql Masq 1 0 259
|
||||
-> db004:mysql Masq 1 0 6
|
||||
--- l7vsadm output ---
|
||||
|
||||
--- hash ---
|
||||
$VAR1 = {
|
||||
'db002:mysql' => {
|
||||
'ActiveConn' => '0',
|
||||
'Forward' => 'Masq',
|
||||
'InactConn' => '2796',
|
||||
'Weight' => '1'
|
||||
},
|
||||
'db003:mysql' => {
|
||||
'ActiveConn' => '0',
|
||||
'Forward' => 'Masq',
|
||||
'InactConn' => '259',
|
||||
'Weight' => '1'
|
||||
},
|
||||
'db004:mysql' => {
|
||||
'ActiveConn' => '0',
|
||||
'Forward' => 'Masq',
|
||||
'InactConn' => '6',
|
||||
'Weight' => '1'
|
||||
},
|
||||
--- hash ---
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue