[-]
[+]
|
Changed |
munin.changes
|
|
[-]
[+]
|
Changed |
munin.spec
^
|
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/.gitignore
^
|
@@ -5,3 +5,6 @@
build/
.*.swp
/sandbox/
+MYMETA.*
+SPOOL-META
+/RELEASE
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/ChangeLog
^
|
@@ -1,5 +1,53 @@
-*- text -*-
+munin-2.0.11, 2013-02-01
+
+-------
+Summary
+-------
+
+Bugfix-only release.
+
+- Important async fixes
+- Many fixes
+
+Closes: D:698079, D:697907
+
+------------------
+Detailed Changelog
+------------------
+
+Diego Elio Petteno:
+ hddtemp*: avoid using the degrees symbol in vlabel.
+ Update .gitignore.
+ master: always initialize the default cgiurl_graph value.
+ master: simplify logic for mapping images to their path.
+ master: provide a default to graph_strategy.
+ master: avoid repeated tests on graph_strategy.
+ master: remove unused variable.
+ pod: declare all POD-processed files as utf8 encoded.
+
+Marc Schutz:
+ fail2ban: Handle the case where no jails are configured.
+
+Stefan Rubner:
+ plugins/mysql_: fix check if InnoDB is disabled
+
+Steve Schnepp:
+ plugins/slapd_: fix Net::LDAP call
+ asyncd: fix races in writing to spool
+ asyncd: typo in pod
+ asyncd: try to reuse socket when asking node
+ asyncd: add the hostname in $0
+ asyncd: fix timeout bug & adding some debug
+ asyncd: ignore current plugin if failing cnx to node
+ asyncd: close the datafile before rename
+ asyncd: quickfix a sleeping dataloss bug
+
+Stig Sandbeck Mathisen:
+ Fix spelling mistakes in POD sections
+
+
munin-2.0.10, 2013-01-09
-------
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/RELEASE
^
|
@@ -1 +1 @@
-2.0.10
+2.0.11
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/common/lib/Munin/Common/SyncDictFile.pm
^
|
@@ -46,6 +46,9 @@
DEBUG("Print the stored $key:$value");
print $fh_tmp "$key:$value\n";
+ # close (therefore flush data) before rename
+ $fh_tmp = undef;
+
# overwrite atomically
# XXX - any locked process will have an old version
rename $self->{filename} . ".tmp", $self->{filename};
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/common/lib/Munin/Common/TLS.pm
^
|
@@ -154,11 +154,11 @@
}
else {
if ($self->{tls_paranoia} eq "paranoid") {
- $self->{logger}("[ERROR] Problem occured when trying to read file with private key \"$self->{tls_priv}\": $!");
+ $self->{logger}("[ERROR] Problem occurred when trying to read file with private key \"$self->{tls_priv}\": $!");
return 0;
}
else {
- $self->{logger}("[ERROR] Problem occured when trying to read file with private key \"$self->{tls_priv}\": $!. Continuing without private key.");
+ $self->{logger}("[ERROR] Problem occurred when trying to read file with private key \"$self->{tls_priv}\": $!. Continuing without private key.");
}
}
}
@@ -179,7 +179,7 @@
if (!Net::SSLeay::CTX_use_certificate_file($self->{tls_context},
$self->{tls_cert},
&Net::SSLeay::FILETYPE_PEM)) {
- $self->{logger}("[WARNING] Problem occured when trying to read file with certificate \"$self->{tls_cert}\": $!. Continuing without certificate.");
+ $self->{logger}("[WARNING] Problem occurred when trying to read file with certificate \"$self->{tls_cert}\": $!. Continuing without certificate.");
}
}
}
@@ -196,7 +196,7 @@
if ($self->{tls_ca_cert} && -e $self->{tls_ca_cert}) {
if(!Net::SSLeay::CTX_load_verify_locations($self->{tls_context}, $self->{tls_ca_cert}, '')) {
- $self->{logger}("[WARNING] Problem occured when trying to read file with the CA's certificate \"$self->{tls_ca_cert}\": ".&Net::SSLeay::print_errs("").". Continuing without CA's certificate.");
+ $self->{logger}("[WARNING] Problem occurred when trying to read file with the CA's certificate \"$self->{tls_ca_cert}\": ".&Net::SSLeay::print_errs("").". Continuing without CA's certificate.");
}
}
@@ -468,6 +468,6 @@
my $bool = $tls->session_started();
-Returns true if the tls object is ready to read/write encrypted data.
+Returns true if the TLS object is ready to read/write encrypted data.
=back
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/common/lib/Munin/Common/Timeout.pm
^
|
@@ -124,7 +124,7 @@
running, it halts it and returns undef.
NB: every $code_ref should return something defined, otherwise the caller doesn't know
-if a timeout occured.
+if a timeout occurred.
Calls to do_with_timeout() can be nested. Any exceptions raised
by $block are propagated.
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/_bin/munin-graph.in
^
|
@@ -1,6 +1,8 @@
#!@@PERL@@ -T
# -*- cperl -*-
+=encoding utf8
+
=begin comment
Copyright (C) 2004-2010 Jimmy Olsen, Steve Schnepp
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/_bin/munin-html.in
^
|
@@ -1,6 +1,8 @@
#!@@PERL@@
# -*- cperl -*-
+=encoding utf8
+
=begin comment
Copyright (C) 2002-2009 Jimmy Olsen, Audun Ytterdal, Kjell Magne
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/_bin/munin-limits.in
^
|
@@ -1,6 +1,8 @@
#!@@PERL@@
# -*- cperl -*-
+=encoding utf8
+
=begin comment
Copyright (C) 2004-2008 Jimmy Olsen
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/_bin/munin-update.in
^
|
@@ -109,6 +109,8 @@
__END__
+=encoding utf8
+
=head1 NAME
munin-update - A program to gather data from machines running munin-node
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/doc/munin-check.pod
^
|
@@ -1,3 +1,5 @@
+=encoding utf8
+
=head1 NAME
munin-check - A program to fix permissions of Munin directories and files
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/doc/munin-cron.pod.in
^
|
@@ -1,3 +1,5 @@
+=encoding utf8
+
=head1 NAME
munin-cron - A program to batch other Munin master programs
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/doc/munin.conf.pod.in
^
|
@@ -1,3 +1,5 @@
+=encoding utf8
+
=head1 NAME
munin.conf - Munin configuration file
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/doc/munin.pod
^
|
@@ -1,3 +1,5 @@
+=encoding utf8
+
=head1 NAME
munin - Munin manpage hub
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/lib/Munin/Master/Config.pm
^
|
@@ -145,6 +145,7 @@
fork => 1,
rrdcached_socket => "", # default is unused
graph_data_size => 'normal',
+ graph_strategy => 'cron',
groups => {},
local_address => 0,
logdir => $Munin::Common::Defaults::MUNIN_LOGDIR,
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/lib/Munin/Master/HTMLConfig.pm
^
|
@@ -23,7 +23,6 @@
my $DEBUG = 0;
my $INDEX_FILENAME = "index.html";
-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
my $config;
my $limits;
@@ -47,9 +46,8 @@
my $rev = munin_configpart_revision();
$config = munin_readconfig_part('datafile', 0);
+ initiate_cgiurl_graph(); # we don't set a default like for others
if ($rev != munin_configpart_revision()) {
- # datafile got updated
- initiate_cgiurl_graph();
# convert config for html generation: reorder nodes to their rightful group
node_reorder($config);
}
@@ -181,7 +179,7 @@
push @{$cattrav->{lc munin_get($child, "graph_category", "other")}}, $childnode;
- # IFF this is a multigraph plugin there may be sub-graphs.
+ # If this is a multigraph plugin there may be sub-graphs.
push( @$groups, grep {defined $_} get_group_tree($child, $base.munin_get_node_name($child)."/"));
$visible = 1;
@@ -482,12 +480,12 @@
}
}
- if (munin_get($config, "graph_strategy", "cron") eq "cgi") {
- map { $srv{$_} = $config->{'cgiurl_graph'} . "/" . $imgs{$_} } keys %imgs;
- } else {
- map { $srv{$_} = $root_path . "/" . $imgs{$_} } keys %imgs;
+ my $imgpath = $root_path;
+ if ( $config->{graph_strategy} eq 'cgi' ) {
+ $imgpath = $config->{'cgiurl_graph'};
}
+ map { $srv{$_} = $imgpath . "/" . $imgs{$_} } keys %imgs;
# Compute the ZOOM urls
{
@@ -507,27 +505,21 @@
}
for my $scale (@times) {
- # Don't try to find the size if cgi is enabled,
- # otherwise old data might pollute
- next if (munin_get($config, "graph_strategy", "cron") eq "cgi");
- if (my ($w, $h)
- = get_png_size(munin_get_picture_filename($service, $scale))) {
- $srv{"img" . $scale . "width"} = $w;
- $srv{"img" . $scale . "height"} = $h;
- }
- }
+ if (my ($w, $h) = get_png_size(munin_get_picture_filename($service, $scale))) {
+ $srv{"img" . $scale . "width"} = $w;
+ $srv{"img" . $scale . "height"} = $h;
+ }
+ }
if (munin_get_bool($service, "graph_sums", 0)) {
$srv{imgweeksum} = "$srv{node}-week-sum.png";
$srv{imgyearsum} = "$srv{node}-year-sum.png";
+
for my $scale (["week", "year"]) {
- next if (munin_get($config, "graph_strategy", "cron") eq "cgi");
- if (my ($w, $h)
- = get_png_size(munin_get_picture_filename($service, $scale, 1)))
- {
- $srv{"img" . $scale . "sumwidth"} = $w;
- $srv{"img" . $scale . "sumheight"} = $h;
- }
+ if (my ($w, $h) = get_png_size(munin_get_picture_filename($service, $scale, 1))) {
+ $srv{"img" . $scale . "sumwidth"} = $w;
+ $srv{"img" . $scale . "sumheight"} = $h;
+ }
}
}
@@ -727,6 +719,8 @@
my $width = undef;
my $height = undef;
+ return (undef, undef) if $config->{graph_strategy} eq "cgi";
+
if (open(my $PNG, '<', $filename)) {
my $incoming;
binmode($PNG);
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/lib/Munin/Master/ProcessManager.pm
^
|
@@ -296,7 +296,7 @@
=head1 NAME
-Munin::Master::ProcessManager - Manager for parallell execution of Workers.
+Munin::Master::ProcessManager - Manager for parallel execution of Workers.
=head1 SYNOPSIS
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/master/lib/Munin/Master/Utils.pm
^
|
@@ -1774,11 +1774,11 @@
=item B<munin_readconfig_base>
-Read configuration file, include dir files, and initalize important
+Read configuration file, include dir files, and initialize important
default values that are optional.
Parameters:
- - $file: munin.conf filename. If ommited, default filename is used.
+ - $file: munin.conf filename. If omitted, default filename is used.
Returns:
- Success: The $config hash (also cached in module)
@@ -1941,7 +1941,7 @@
=item B<munin_get_max_label_length>
-Get the length of the longest labe in a graph.
+Get the length of the longest label in a graph.
Parameters:
- $hash: the graph in question
@@ -2121,7 +2121,7 @@
munin_mkdir_p('/a/path/', oct('777'));
-Make a directory and recursivly any nonexistent directory in the path
+Make a directory and recursively any nonexistent directory in the path
to it.
@@ -2162,7 +2162,7 @@
- $what: name of the part that should be loaded (datafile or limits)
Returns:
- - Success: a $config with the $specified part, but overwriten by $config
+ - Success: a $config with the $specified part, but overwritten by $config
=item B<munin_removelock>
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/_bin/munin-asyncd.in
^
|
@@ -28,12 +28,16 @@
use Getopt::Long;
use Pod::Usage;
+use List::Util qw(min max);
+
use Munin::Node::SpoolWriter;
my $host = "localhost:4949";
my $metahostname;
my $SPOOLDIR = "@@SPOOLDIR@@";
my $intervalsize = 86400;
+my $timeout = 3600;
+my $minrate = 300;
my $retaincount = 7;
my $nocleanup;
my $do_fork;
@@ -46,6 +50,8 @@
"host=s" => \$host,
"spooldir|s=s" => \$SPOOLDIR,
"interval|i=i" => \$intervalsize,
+ "timeout=i" => \$timeout,
+ "minrate=i" => \$minrate,
"retain|r=i" => \$retaincount,
"fork" => \$do_fork,
@@ -59,6 +65,9 @@
pod2usage(1);
}
+# Debug implies Verbose
+$verbose = 1 if $debug;
+
unless (-d $SPOOLDIR) {
mkpath($SPOOLDIR, { verbose => $verbose, } )
or die ("Cannot create '$SPOOLDIR': $!");
@@ -80,6 +89,7 @@
interval_keep => $retaincount,
hostname => $metahostname,
);
+$0 = "munin-asyncd [$metahostname] [idle]";
my $process_name = "main";
@@ -93,7 +103,10 @@
Proto => 'tcp'
) || die "Error creating socket: $!";
+ local $0 = "munin-asyncd [$metahostname] [list]";
+ print STDERR "[sock][>] cap multigraph\n" if $debug;
print $sock "cap multigraph\n";
+ print STDERR "[sock][>] list\n" if $debug;
print $sock "list\n";
<$sock>; # Read the first header comment line
<$sock>; # Read the multigraph response line
@@ -122,7 +135,15 @@
my $last_cleanup=0;
MAIN: while(1) {
my $when = time;
- my $when_next = $when + 3600; # wake up at least every hour
+
+ (
+ # XXX - quickfix a bug that when sleeping too little, would
+ # then sleep a whole $timeout
+ $timeout = 1;
+ )
+
+ my $when_next = $when + $timeout; # wake up at least every $timeout sec
+ my $sock;
PLUGIN: foreach my $plugin (@plugins) {
# See if this plugin should be updated
my $plugin_rate = get_hash($plugin, $plugin_rate_filename) || 300;
@@ -133,25 +154,40 @@
# Should update it
$last_updated{$plugin} = $when;
- if ($when + $plugin_rate < $when_next) {
- $when_next = $when + $plugin_rate;
- }
+ $when_next = min($when_next, $when + max($plugin_rate, $minrate));
if ($do_fork && fork()) {
# parent, return directly
next PLUGIN;
}
+
+ unless ($sock) {
+ $sock = new IO::Socket::INET(
+ PeerAddr => "$host",
+ Proto => 'tcp'
+ ) || die "Error creating socket: $!";
+ <$sock>; # skip header
+ }
+
+ # $sock is still not open. moving to next plugin to try again
+ next unless $sock;
+
# Setting the command name for a useful top information
$process_name = "plugin:$plugin";
- local $0 = "munin-asyncd [$process_name]";
-
- fetch_data($plugin, $when);
-
+ local $0 = "munin-asyncd [$metahostname] [$process_name]";
+
+ fetch_data($plugin, $when, $sock);
# We end here if we forked
last MAIN if $do_fork;
}
+ print STDERR "[$$][$process_name][>] quit\n" if $verbose;
+ print $sock "quit\n" if $sock;
+
+ print STDERR "[$$][$process_name] closing sock\n" if $verbose;
+ $sock = undef;
+
$spoolwriter->set_metadata("lastruntime", $when);
# Clean spool dir
@@ -161,7 +197,12 @@
}
# Sleep until next plugin exec.
- sleep $when_next - time;
+ my $sleep_sec = $when_next - time;
+
+ if ($sleep_sec > 0) {
+ print STDERR "[$$][$process_name] Sleeping $sleep_sec sec\n" if $verbose;
+ sleep $sleep_sec;
+ }
}
print STDERR "[$$][$process_name] Exiting\n" if $verbose;
@@ -170,22 +211,18 @@
{
my $plugin = shift;
my $when = shift;
+ my $sock = shift;
- my $sock = new IO::Socket::INET(
- PeerAddr => "$host",
- Proto => 'tcp'
- ) || die "Error creating socket: $!";
- <$sock>; # skip header
-
- print STDERR "[$$][$process_name] asking for config\n" if $verbose;
+ print STDERR "[$$][$process_name][>][$plugin] asking for config\n" if $verbose;
+ print STDERR "[sock][>][$plugin] config $plugin\n" if $debug;
print $sock "config $plugin\n";
my $output_rows = [];
while(my $line = <$sock>) {
- print STDERR "[sock] $line" if $debug;
chomp($line);
+ print STDERR "[sock][<][$plugin] $line\n" if $debug;
if ($line =~ m/^\./) {
# Starting with . => end
@@ -202,12 +239,13 @@
}
}
- print STDERR "[$$][$process_name] asking for data\n" if $verbose;
+ print STDERR "[$$][$process_name][>][$plugin] asking for data\n" if $verbose;
+ print STDERR "[sock][>][$plugin] fetch $plugin\n" if $debug;
print $sock "fetch $plugin\n";
while(my $line = <$sock>) {
- print STDERR "[sock] $line" if $debug;
chomp($line);
+ print STDERR "[sock][<][$plugin] $line\n" if $debug;
if ($line =~ m/^\./) {
# Starting with . => end
@@ -264,8 +302,10 @@
Options:
--host <hostname:port> Connect to this munin-node [localhost:4949]
- -s --spooldir <spooldir> Store the spooled data in this dir [@@SPOOLDIR@@]
+ -s --spool <spooldir> Store the spooled data in this dir [/var/lib/munin-async]
-i --interval <seconds> Override default interval size of one day [86400]
+ --timeout <seconds> Wake up at least this number of seconds. [3600]
+ --minrate <seconds> This is the minimal rate you want to poll a node [300]
-r --retain <count> Specify number of interval files to retain [7]
-n --nocleanup Disable automated spool dir cleanup
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/doc/munin-node.conf.pod
^
|
@@ -1,3 +1,5 @@
+=encoding utf8
+
=head1 NAME
munin-node.conf - Munin-node configuration file
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/lib/Munin/Node/Config.pm
^
|
@@ -365,7 +365,7 @@
$config->reinitialize(\%variables);
-Deletes all configuration variables and reinitalizes the object with
+Deletes all configuration variables and reinitializes the object with
values from \%variables.
=item B<parse_config_from_file>
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/lib/Munin/Node/SNMPConfig.pm
^
|
@@ -322,7 +322,7 @@
=item privprotocol
If the v3privpassword is set this setting controls what kind of encryption is
-used to achive privacy in the session. Only the very weak 'des' encryption
+used to achieve privacy in the session. Only the very weak 'des' encryption
method is supported officially. The default is 'des'.
The implementing perl module (L<Net::SNMP>) also supports '3des' (CBC-3DES-EDE
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/lib/Munin/Node/SpoolWriter.pm
^
|
@@ -8,6 +8,8 @@
use Carp;
use IO::File;
+use Fcntl qw(:DEFAULT :flock);
+
use Munin::Common::Defaults;
use Munin::Common::SyncDictFile;
use Munin::Node::Logger;
@@ -104,6 +106,7 @@
open my $fh , '>>', "$self->{spooldir}/munin-daemon.$service.$fmtTimestamp." . $self->{interval_size}
or die "Unable to open spool file: $!";
+ flock($fh, LOCK_EX);
print {$fh} "timestamp $timestamp\n";
print {$fh} "multigraph $service\n" unless $data->[0] =~ m{^multigraph};
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/node/sbin/munin-node-configure
^
|
@@ -558,7 +558,7 @@
Only consider plugins added to the Munin core since <version>. This option is
useful when upgrading, since it can prevent plugins that have been manually
-removed from being resinstalled. This only applies to plugins in the 'auto'
+removed from being reinstalled. This only applies to plugins in the 'auto'
family.
=back
@@ -637,7 +637,7 @@
=item B<< --snmpprivprotocol <protocol> >>
If the privpassword is set this setting controls what kind of encryption is
-used to achive privacy in the session. Only the very weak 'des' encryption
+used to achieve privacy in the session. Only the very weak 'des' encryption
method is supported officially. ['des']
munin-node-configure also supports '3des' (CBC-3DES-EDE, aka Triple-DES, NIST
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/lib/Munin/Plugin.pm
^
|
@@ -260,11 +260,11 @@
The file will contain a starting line with a magic number so that the
library can see the difference between an actual state file and a file
-containing rubbsh. Currently this magic number is
+containing rubbish. Currently this magic number is
'%MUNIN-STATE1.0\n'. Files with this magic number will contain the
vector verbatim with \r, \n and % URL encoded.
-The function takes security precautions, like protesting fataly if the
+The function takes security precautions, like protesting fatally if the
state file is a symbolic link (symbolic link overwriting can have
unfortunate security ramifications).
@@ -325,7 +325,7 @@
$field_warning or $field_critical values then look for the variables
"warning" and "critical" and return those values if any.
-IFF the second and/or third arguments are specified then they will be
+If the second and/or third arguments are specified then they will be
used to specify the name of variables giving the the warning and
critical levels.
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/lib/Munin/Plugin/Pgsql.pm
^
|
@@ -188,7 +188,7 @@
"8.1", "SELECT 'query for 8.1 or earlier',... FROM ..."
]
]
-This array is parsed from top to bottom, so the entires must be in order of
+This array is parsed from top to bottom, so the entries must be in order of
version number. The *last* value found where the version specified is higher
than or equal to the version of the server will be used (yes, it counts
backwards).
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/lib/Munin/Plugin/SNMP.pm
^
|
@@ -88,7 +88,7 @@
=item 1) the host name
-=item 2) the udp port to use
+=item 2) the UDP port to use
=item 3) the SNMP version to use (3 for version 3, 2 for version 1 or 2c)
@@ -135,7 +135,7 @@
This method overrides the Net::SNMP constructor to get the connection
information from the plugin name and/or environment. Please note that
-no error string is returned. The function handles errors internaly -
+no error string is returned. The function handles errors internally -
giving a error message and calling die. Calling die is the right
thing to do.
@@ -302,7 +302,7 @@
=item C<env.v3privprotocol>
If the v3privpassword is set this setting controls what kind of
-encryption is used to achive privacy in the session. Only the very weak
+encryption is used to achieve privacy in the session. Only the very weak
'des' encryption method is supported officially. The default is 'des'.
The implementing perl module (L<Net::SNMP>) also supports '3des'
@@ -380,7 +380,7 @@
The keys of the main hash are the last element(s) of the OIDs, after
C<$oid> and the matching keys from C<%columns> are removed. The values
are hashes with keys corresponding to the values of C<%columns> hash and
-values from the subtables corresonding to the keys of C<%columns>.
+values from the subtables corresponding to the keys of C<%columns>.
For this to work, all the keys of C<-cols> must have the same number
of elements. Also, don't try to specify a next-to-next-to-leaf-node
@@ -542,12 +542,12 @@
=head1 AUTHOR
-Dagfinn Ilmari Mannsåker, Nicolai Langfeldt
-Rune Nordbøe Skillingstad added timeout support.
+Dagfinn Ilmari Mannsåker, Nicolai Langfeldt
+Rune Nordbøe Skillingstad added timeout support.
=head1 COPYRIGHT/License.
-Copyright (c) 2004-2009 Dagfinn Ilmari Mannsåker and Nicolai Langfeldt.
+Copyright (c) 2004-2009 Dagfinn Ilmari Mannsåker and Nicolai Langfeldt.
All rights reserved. This program is free software; you can
redistribute it and/or modify it under the terms of the GNU General
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/fail2ban.in
^
|
@@ -71,7 +71,7 @@
*'Jail list:'*)
line="${line##*Jail list*:}"
line="${line//[ $'\t']/}"
- printf "${line//,/$'\n'}\n"
+ [ -n "$line" ] && printf "${line//,/$'\n'}\n"
;;
esac
done
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/hddtemp.in
^
|
@@ -28,7 +28,7 @@
echo 'graph_title HDD temperature'
echo 'graph_args --base 1000 -l 0'
- echo 'graph_vlabel temp in °C'
+ echo 'graph_vlabel Degrees Celsius'
echo 'graph_category sensors'
for a in $drives ; do echo $a.label $a ; done
exit 0
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/hddtemp2.in
^
|
@@ -35,7 +35,7 @@
my %config = (
regex => qr/^\/dev\/([^:]+):\s*([^:]+):\s*([\d.]+) C/m,
title => "Temperatures (Hard Disks)",
- vlabel => '°Celsius',
+ vlabel => 'Degrees Celsius',
warning => 50,
critical => 60,
graph_args => '--base 1000'
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/hddtemp_smartctl.in
^
|
@@ -192,7 +192,7 @@
}
} elsif ($ARGV[0] eq 'config') {
print "graph_title HDD temperature\n";
- print "graph_vlabel temp in °C\n";
+ print "graph_vlabel Degrees Celsius\n";
print "graph_category sensors\n";
print "graph_info This graph shows the temperature in degrees Celsius of the hard drives in the machine.\n";
foreach (@drives) {
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/hddtempd.in
^
|
@@ -72,7 +72,7 @@
if ($ARGV[0] and $ARGV[0] eq "config") {
print "graph_title HDD temperature\n";
print "graph_args --base 1000 -l 0\n";
- print "graph_vlabel temperature in °$scale\n";
+ print "graph_vlabel Degrees $scale\n";
my @data = get_data();
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/mysql_.in
^
|
@@ -970,7 +970,7 @@
$sth->execute();
};
if ($@) {
- if ($@ =~ /Unknown table engine 'INNODB'|Cannot call SHOW INNODB STATUS because skip-innodb is defined/i) {
+ if ($@ =~ /Unknown (storage|table) engine 'INNODB'|Cannot call SHOW INNODB STATUS because skip-innodb is defined/i) {
$data->{_innodb_disabled} = 1;
return;
}
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/slapd_.in
^
|
@@ -233,7 +233,9 @@
base => $basedn,
scope => 'one',
filter => '(objectClass=monitorServer)',
- attrs => 'cn',
+ attrs => [
+ 'cn',
+ ],
);
if ($mesg->code) {
print "no (" . $mesg->error . ")\n";
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/node.d/snmp__if_multi.in
^
|
@@ -99,7 +99,7 @@
Pulling in a user definable set of ifName/ifDescr/ifAlias for textual
description and even graph_title would also be nice.
-IFF we get a patch to support the .oldname attribute then we may use
+If we get a patch to support the .oldname attribute then we may use
that to let the operator change the indexing dynamicaly without data
loss.
|
[-]
[+]
|
Changed |
munin-2.0.11.tar.bz2/plugins/plugins.history.in
^
|
@@ -354,3 +354,4 @@
[2.0.8]
[2.0.9]
[2.0.10]
+[2.0.11]
|