[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

munin 2.0.6-2 upload pre-approval



Hi,

before uploading munin 2.0.6-2 to unstable I would like to ask for
pre-approval of these changes: 3 serious+grave bug fixes, 9 important bug fixes,
3 normal (of which 2 could arguebly be important) and one wishlist, 
adding documentation.

munin (2.0.6-2) UNRELEASED; urgency=low

  * munin-node.postinst: delete /var/lib/munin(-node)/plugin-state recursivly
    on purge. The plugin-state is outdated after a few minutes anyway.
    (Closes: #687715)
  * Fix "/etc/apache2/conf.d/munin removed on upgrade":
    - debian/munin.postinst: create symlink for new installs and also for
      upgrades from versions where it was still removed (up to 1.4.6-3) but
      not re-created (from 1.4.6-1 onwards). Thanks to Gregor Herrman for the
      patch and intrigeri for reviewing. (Closes: #677943)
  * Add documentation for munin-async, thanks to Daniel Black.
    (Closes: #681803)
  * Patch node/munin-node.conf.in to allow incoming IPv6 from localhost,
    mostly to document that IPv6 addresses are allowed as well. Thanks to
    Daniel Black. (Closes: #676798)
    This is debian/patches/238-munin-node-ipv6allow.patch
  * HTMLConfig.pm: cherry-pick 789c59e from 2.0.7 to avoid (using the default
    configuration) /var/log/munin/munin-html.log being flooded with 106 lines
    of noisy warnings (out of 112 lines in total) every 5min. (Closes: #689291)
    This is debian/patches/239-fix-too-many-warnings-in-munin-graph.log.patch
  * munin-doc: Break and replace munin-common << 2. (Closes: #694355)
  * selinux_avcstat plugin: Do not use the "read without variable" bashism,
    thanks to intrigeri for the patch. (Closes: #690711)
    This is 240-Do-not-use-the-read-without-variable-bashism.patch
  * Have master support multi-homed nodes that only listen on IPv4.
    (Closes: #678662) This is upstream commit a18229c5, thanks to Michael
    Renner for the testing and the patch!
    This is debian/patches/241-master-connect-to-AAAA-and-A-address.patch
  * Fix wrong assumption about Net::SSLeay::CTX_set_options return value.
    Thanks to intrigeri for this patch. (Closes: #675377)
    This is 242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch
  * http_loadtime plugin: fix stderr redirection (which broke the plugin
    completely) (Closes: #691448)
    This is 243-http_loadtime-fixed-stderr-redirection-with-time.patch
  * apt_all plugin: the apt_all plugin has its state updated in cron. There
    the ENV var MUNIN_PLUGSTATE doesn't exist, so we need to set a default.
    (Closes: #687495). This has been in included in 2.0.7 and is
    debian/patches/244-fix-apt_all-plugin-statedir-for-cron.patch
  * munin-async.init: Run munin-async after munin-node has been started.
    (Closes: #691390) - Thanks to Daniel Black for this and the next two
    fixes:
  * munin-async.postinst: fix /var/lib/munin-async ownership (once on upgrades
    from previous versions) and for new installs. (Closes: #691309)
  * munin-async.logrotate: correct location of munin-async logfiles.
    (Closes: #691758)
  * Use dh --with quilt so that the patches are actually applied.
    (Closes: #691327)
  * Drop 101-suppress-occasional-unknown-states-to-avoid-alerts.patch which
    is included since munin 1.4.4.


$ debdiff munin_2.0.6-1.dsc munin_2.0.6-2.dsc|diffstat
 debian/munin-async.README.Debian                                              |  130 +++++++++
 debian/patches/101-suppress-occasional-unknown-states-to-avoid-alerts.patch   |  141 ----------
 debian/patches/238-munin-node-ipv6allow.patch                                 |   12 
 debian/patches/239-fix-too-many-warnings-in-munin-graph.log.patch             |   47 +++
 debian/patches/240-Do-not-use-the-read-without-variable-bashism.patch         |   23 +
 debian/patches/241-master-connect-to-AAAA-and-A-address.patch                 |   30 ++
 debian/patches/242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch |   32 ++
 debian/patches/243-http_loadtime-fixed-stderr-redirection-with-time.patch     |   25 +
 debian/patches/244-fix-apt_all-plugin-statedir-for-cron.patch                 |   29 ++
 munin-2.0.6/debian/changelog                                                  |   52 +++
 munin-2.0.6/debian/control                                                    |    2 
 munin-2.0.6/debian/munin-async.init                                           |    4 
 munin-2.0.6/debian/munin-async.logrotate                                      |    4 
 munin-2.0.6/debian/munin-async.postinst                                       |    8 
 munin-2.0.6/debian/munin-node.postrm                                          |    6 
 munin-2.0.6/debian/munin.postinst                                             |    3 
 munin-2.0.6/debian/patches/series                                             |    7 
 munin-2.0.6/debian/rules                                                      |    2 
 18 files changed, 406 insertions(+), 151 deletions(-)

The full debdiff is attached.


Thanks for your work on the -release and your patience with munin!

cheers,
	Holger
diff -u munin-2.0.6/debian/rules munin-2.0.6/debian/rules
--- munin-2.0.6/debian/rules
+++ munin-2.0.6/debian/rules
@@ -5,7 +5,7 @@
 MAKEOPTS = CONFIG=debian/Makefile.config INSTALL_PLUGINS="auto manual snmpauto contrib"
 
 %:
-	dh $@
+	dh $@ --with quilt
 
 override_dh_auto_build:
 	chmod 755 debian/ostype_helper
diff -u munin-2.0.6/debian/munin-async.logrotate munin-2.0.6/debian/munin-async.logrotate
--- munin-2.0.6/debian/munin-async.logrotate
+++ munin-2.0.6/debian/munin-async.logrotate
@@ -1,9 +1,9 @@
-/var/lib/munin/spool/*.0 {
+/var/lib/munin-async/*.0 {
 	daily
 	missingok
 	rotate 7
 	compress
 	copytruncate
 	notifempty
-	create 640 munin adm
+	create 640 munin-async munin-async
 }
diff -u munin-2.0.6/debian/munin-node.postrm munin-2.0.6/debian/munin-node.postrm
--- munin-2.0.6/debian/munin-node.postrm
+++ munin-2.0.6/debian/munin-node.postrm
@@ -23,13 +23,11 @@
 	#
 	# just like #198522 (see above..) is fixed since 2006 ;)
 
-	rm -f /var/lib/munin/plugin-state/*.state
-	rm -f /var/lib/munin-node/plugin-state/*.state
+	rm -rf /var/lib/munin/plugin-state
+	rm -rf /var/lib/munin-node/plugin-state
 	rm -f /var/log/munin/munin-node.log*
 	rm -f /var/log/munin/munin-node-configure.log*
 
-	delete_dir_if_empty /var/lib/munin/plugin-state
-	delete_dir_if_empty /var/lib/munin-node/plugin-state
 	delete_dir_if_empty /var/lib/munin
 	delete_dir_if_empty /var/log/munin
 	delete_dir_if_empty /etc/munin/plugin-conf.d
diff -u munin-2.0.6/debian/changelog munin-2.0.6/debian/changelog
--- munin-2.0.6/debian/changelog
+++ munin-2.0.6/debian/changelog
@@ -1,3 +1,55 @@
+munin (2.0.6-2) UNRELEASED; urgency=low
+
+  * munin-node.postinst: delete /var/lib/munin(-node)/plugin-state recursivly
+    on purge. The plugin-state is outdated after a few minutes anyway.
+    (Closes: #687715)
+  * Fix "/etc/apache2/conf.d/munin removed on upgrade":
+    - debian/munin.postinst: create symlink for new installs and also for
+      upgrades from versions where it was still removed (up to 1.4.6-3) but
+      not re-created (from 1.4.6-1 onwards). Thanks to Gregor Herrman for the
+      patch and intrigeri for reviewing. (Closes: #677943)
+  * Add documentation for munin-async, thanks to Daniel Black. 
+    (Closes: #681803)
+  * Patch node/munin-node.conf.in to allow incoming IPv6 from localhost,
+    mostly to document that IPv6 addresses are allowed as well. Thanks to
+    Daniel Black. (Closes: #676798)
+    This is debian/patches/238-munin-node-ipv6allow.patch
+  * HTMLConfig.pm: cherry-pick 789c59e from 2.0.7 to avoid (using the default
+    configuration) /var/log/munin/munin-html.log being flooded with 106 lines
+    of noisy warnings (out of 112 lines in total) every 5min. (Closes: #689291)
+    This is debian/patches/239-fix-too-many-warnings-in-munin-graph.log.patch
+  * munin-doc: Break and replace munin-common << 2. (Closes: #694355)
+  * selinux_avcstat plugin: Do not use the "read without variable" bashism,
+    thanks to intrigeri for the patch. (Closes: #690711)
+    This is 240-Do-not-use-the-read-without-variable-bashism.patch
+  * Have master support multi-homed nodes that only listen on IPv4.
+    (Closes: #678662) This is upstream commit a18229c5, thanks to Michael
+    Renner for the testing and the patch!
+    This is debian/patches/241-master-connect-to-AAAA-and-A-address.patch
+  * Fix wrong assumption about Net::SSLeay::CTX_set_options return value.
+    Thanks to intrigeri for this patch. (Closes: #675377)
+    This is 242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch
+  * http_loadtime plugin: fix stderr redirection (which broke the plugin
+    completely) (Closes: #691448)
+    This is 243-http_loadtime-fixed-stderr-redirection-with-time.patch
+  * apt_all plugin: the apt_all plugin has its state updated in cron. There
+    the ENV var MUNIN_PLUGSTATE doesn't exist, so we need to set a default.
+    (Closes: #687495). This has been in included in 2.0.7 and is
+    debian/patches/244-fix-apt_all-plugin-statedir-for-cron.patch
+  * munin-async.init: Run munin-async after munin-node has been started.
+    (Closes: #691390) - Thanks to Daniel Black for this and the next two
+    fixes:
+  * munin-async.postinst: fix /var/lib/munin-async ownership (once on upgrades
+    from previous versions) and for new installs. (Closes: #691309)
+  * munin-async.logrotate: correct location of munin-async logfiles. 
+    (Closes: #691758)
+  * Use dh --with quilt so that the patches are actually applied. 
+    (Closes: #691327)
+  * Drop 101-suppress-occasional-unknown-states-to-avoid-alerts.patch which
+    is included since munin 1.4.4.
+
+ -- Holger Levsen <holger@debian.org>  Sat, 15 Sep 2012 14:02:44 +0200
+
 munin (2.0.6-1) unstable; urgency=high
 
   * New upstream release 2.0.6, switching back to cron graphing (as it better
diff -u munin-2.0.6/debian/munin-async.postinst munin-2.0.6/debian/munin-async.postinst
--- munin-2.0.6/debian/munin-async.postinst
+++ munin-2.0.6/debian/munin-async.postinst
@@ -15,9 +15,17 @@
 	fi
 }
 
+initperms() {
+	chown munin-async:munin-async /var/lib/munin-async
+}
+
 case "$1" in
 	configure)
 		add_munin_async_user
+		# this can go away after wheezy
+		if dpkg --compare-versions "$2" le "2.0.6-1~" || [ "$2" = 0 ] ; then
+			initperms
+		fi
 		;;
 	abort-upgrade|abort-deconfigure|abort-remove)
 		:
diff -u munin-2.0.6/debian/munin.postinst munin-2.0.6/debian/munin.postinst
--- munin-2.0.6/debian/munin.postinst
+++ munin-2.0.6/debian/munin.postinst
@@ -63,8 +63,9 @@
         webserver=apache2
         webserver_init_script="/etc/init.d/$webserver"
         if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/munin ]; then
-		if [ -z "$prevver" ] ; then
+		if [ -z "$prevver" ] || ( dpkg --compare-versions $prevver ge 1.4.6-1~ && dpkg --compare-versions $prevver lt 1.4.7~ ) ; then
 			# only create link on new installs
+			# or when upgrading from a version where it was removed unconditionally
 	                ln -s ../../munin/apache.conf /etc/$webserver/conf.d/munin
 		fi
 		if [ -f $webserver_init_script ];then
diff -u munin-2.0.6/debian/munin-async.init munin-2.0.6/debian/munin-async.init
--- munin-2.0.6/debian/munin-async.init
+++ munin-2.0.6/debian/munin-async.init
@@ -1,8 +1,8 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          munin-async
-# Required-Start:    $network $named $local_fs $remote_fs
-# Required-Stop:     $network $named $local_fs $remote_fs
+# Required-Start:    $network $named $local_fs $remote_fs munin-node
+# Required-Stop:     $network $named $local_fs $remote_fs munin-node
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Munin asynchronous server
diff -u munin-2.0.6/debian/control munin-2.0.6/debian/control
--- munin-2.0.6/debian/control
+++ munin-2.0.6/debian/control
@@ -152,6 +152,8 @@
 Section: doc
 Architecture: all
 Depends: ${perl:Depends}, ${misc:Depends}
+Breaks:   munin-common (<< 2)
+Replaces: munin-common (<< 2)
 Description: network-wide graphing framework (documentation)
  Munin is a highly flexible and powerful solution used to create graphs of
  virtually everything imaginable throughout your network, while still
reverted:
--- munin-2.0.6/debian/patches/101-suppress-occasional-unknown-states-to-avoid-alerts.patch
+++ munin-2.0.6.orig/debian/patches/101-suppress-occasional-unknown-states-to-avoid-alerts.patch
@@ -1,141 +0,0 @@
-Description: Suppress "occasional" unknown states to avoid alerts.
- This patch adds a feature which counts the number of unknowns, 
- and only changes state (and sends an alert) once that count is reached.
- .
- Changed the default global count to 3 unknowns before the state is changed.
- . 
- We will be able to remove this patch once upstream accepts it, which they
- plan to do in a future release.
-Origin: http://munin.projects.linpro.no/ticket/828
-Forwarded: no
-Author: Steve Wilson <stevew@purdue.edu>
-Last-Update: 2010-01-13
-Index: munin-1.4.3/common/lib/Munin/Common/Config.pm
-===================================================================
---- munin-1.4.3.orig/common/lib/Munin/Common/Config.pm	(revision 3304)
-+++ munin-1.4.3/common/lib/Munin/Common/Config.pm	(working copy)
-@@ -36,7 +36,7 @@
- 	"graph_printf", "ok", "unknown", "palette", "realservname",
- 	"cdef_name", "graphable", "process", "realname",
- 	"onlynullcdef", "group_order", "pipe", "pipe_command",
--	"unknown_limit", "notify_countdown", "dropdownlimit",
-+	"unknown_limit", "num_unknowns", "dropdownlimit",
- 	"max_graph_jobs", "munin_cgi_graph_jobs" );
- 
- my %bools = map { $_ => 1} qw(yes no true false on off 1 0);
-Index: munin-1.4.3/master/lib/Munin/Master/LimitsOld.pm
-===================================================================
---- munin-1.4.3.orig/master/lib/Munin/Master/LimitsOld.pm	(revision 3304)
-+++ munin-1.4.3/master/lib/Munin/Master/LimitsOld.pm	(working copy)
-@@ -330,23 +330,74 @@
-         if ($value eq "unknown") {
-             $crit->[0] ||= "";
-             $crit->[1] ||= "";
--            $hash->{'worst'} = "UNKNOWN" if $hash->{"worst"} eq "OK";
--            $hash->{'worstid'} = 3 if $hash->{"worstid"} == 0;
--            munin_set_var_loc(\%notes, [@$fpath, "state"], "unknown");
--            munin_set_var_loc(
--                \%notes,
--                [@$fpath, "unknown"], (
--                    defined $field->{"extinfo"}
-+
-+            my $state = "unknown";
-+            my $extinfo = defined $field->{"extinfo"}
-                     ? "unknown: " . $field->{"extinfo"}
--                    : "Value is unknown."
--                ));
-+                    : "Value is unknown.";
-+            my $num_unknowns;
- 
-             if (   !defined $onfield
-                 or !defined $onfield->{"state"}
-                 or $onfield->{"state"} ne "unknown") {
-                 $hash->{'state_changed'} = 1;
-             }
-+            else {
-+                $hash->{'state_changed'} = 0;
-+            }
-+
-+            # First we'll need to check whether the user wants to ignore
-+            # a few UNKNOWN values before actually changing the state to
-+            # UNKNOWN.
-+            if ($unknown_limit > 1) {
-+                if (defined $onfield and defined $onfield->{"state"}) {
-+                    if ($onfield->{"state"} ne "unknown") {
-+                        if (defined $onfield->{"num_unknowns"}) {
-+                            if ($onfield->{"num_unknowns"} < $unknown_limit) {
-+                                # Don't change the state to UNKNOWN yet.
-+                                $hash->{'state_changed'} = 0;
-+                                $state = $onfield->{"state"};
-+                                $extinfo = $onfield->{$state};
-+
-+                                # Increment the number of UNKNOWN values seen.
-+                                $num_unknowns = $onfield->{"num_unknowns"} + 1;
-+                            }
-+                        }
-+                        else {
-+                            # Don't change the state to UNKNOWN yet.
-+                            $hash->{'state_changed'} = 0;
-+                            $state = $onfield->{"state"};
-+                            $extinfo = $onfield->{$state};
-+                            
-+                            # Start counting the number of consecutive UNKNOWN
-+                            # values seen.
-+                            $num_unknowns = 1;
-+                        }
-+                    }
-+                }
-+            }
-+
-+            if ($state eq "unknown") {
-+                $hash->{'worst'} = "UNKNOWN" if $hash->{"worst"} eq "OK";
-+                $hash->{'worstid'} = 3 if $hash->{"worstid"} == 0;
-+            }
-+            elsif ($state eq "critical") {
-+                $hash->{'worst'} = "CRITICAL";
-+                $hash->{'worstid'} = 2;
-+            }
-+            elsif ($state eq "warning") {
-+                $hash->{'worst'} = "WARNING" if $hash->{"worst"} ne "CRITICAL";
-+                $hash->{'worstid'} = 1 if $hash->{"worstid"} != 2;
-+            }
-+
-+            munin_set_var_loc(\%notes, [@$fpath, "state"], $state);
-+            munin_set_var_loc(\%notes, [@$fpath, $state], $extinfo);
-+            if (defined $num_unknowns) {
-+                munin_set_var_loc(\%notes, [@$fpath, "num_unknowns"],
-+                        $num_unknowns);
-+            }
-         }
-+
-         elsif ((defined($crit->[0]) and $value < $crit->[0])
-             or (defined($crit->[1]) and $value > $crit->[1])) {
-             $crit->[0] ||= "";
-@@ -422,7 +473,7 @@
-     my @warning  = (undef, undef);
-     my $crit          = munin_get($hash, "critical",      undef);
-     my $warn          = munin_get($hash, "warning",       undef);
--    my $unknown_limit = munin_get($hash, "unknown_limit", 1);
-+    my $unknown_limit = munin_get($hash, "unknown_limit", 3);
- 
-     my $name = munin_get_node_name($hash);
- 
-@@ -454,10 +505,15 @@
-         DEBUG "[DEBUG] processing warning: $name -> $warning[0] : $warning[1]";
-     }
- 
--    # The merge of the unknown_limit implementation was somewhat botched.  Not tested. - janl
-     if ($unknown_limit =~ /^\s*(\d+)\s*$/) {
--	$unknown_limit = $1 if defined $1;
--	DEBUG "[DEBUG] processing unknown_limit: $name -> $unknown_limit";
-+        $unknown_limit = $1 if defined $1;
-+        if (defined $unknown_limit) {
-+            if ($unknown_limit < 1) {
-+                # Zero and negative numbers are not valid.  
-+                $unknown_limit = 1;
-+            }
-+        }
-+        DEBUG "[DEBUG] processing unknown_limit: $name -> $unknown_limit";
-     }
- 
-     return (\@warning, \@critical, $unknown_limit);
diff -u munin-2.0.6/debian/patches/series munin-2.0.6/debian/patches/series
--- munin-2.0.6/debian/patches/series
+++ munin-2.0.6/debian/patches/series
@@ -2,0 +3,7 @@
+238-munin-node-ipv6allow.patch
+239-fix-too-many-warnings-in-munin-graph.log.patch
+240-Do-not-use-the-read-without-variable-bashism.patch
+241-master-connect-to-AAAA-and-A-address.patch
+242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch
+243-http_loadtime-fixed-stderr-redirection-with-time.patch
+244-fix-apt_all-plugin-statedir-for-cron.patch
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/munin-async.README.Debian
+++ munin-2.0.6/debian/munin-async.README.Debian
@@ -0,0 +1,130 @@
+***** Installing munin-async *****
+
+When using munin, one often runs into one of two problems:
+    * There are so many nodes to update, the update takes more than the
+      update interval
+    * Some servers may be connected over flaky lines, so an update may be lost
+      due to timeout
+
+With version 2.0, the designers of munin have started addressing those
+problems. Today we look at one part of that solution, munin-async. Note that I
+am using the packages from Debian testing. Your experience on other OSs
+may vary. Here are the steps I needed to take in order for the client to
+collect munin-async data from the various servers:
+
+**** Install munin-async on the monitored machines AND the graphing server ****
+
+The munin-async Debian package contains both the client AND the server scripts
+for async work. This is not consistent, since previously all the data fetching
+scripts were in the munin package, and all the data serving scripts were in the
+munin-node package. It also means that you have to install munin-async
+(creating the munin-async user, with its own entry in passwd file and its
+shell set to /bin/bash) on the server, not just on the clients. I don’t like
+leaving that open.
+
+(on remote machine and on server)
+apt-get install munin-async
+
+**** Start munin-asyncd on servers where data is to be collected ****
+
+(on remote machine) service munin-async start
+
+**** Prepare the master for using ssh to connect to servers ****
+
+Change the shell of the munin user to bash so you can do these changes as the
+munin user:
+vipw
+su - munin
+cd /var/lib/munin
+mkdir .ssh
+cd .ssh
+ssh-keygen -q -N "" -f /var/lib/munin/.ssh/id_rsa
+cat /var/lib/munin/.ssh/id_rsa.pub
+
+Place the ssh public key in /var/lib/munin/.ssh) (on the remote machine)
+
+mkdir /var/lib/munin-async/.ssh
+
+(on the server)
+scp /var/lib/munin/.ssh/id_rsa.pub root@example.net:/var/lib/munin-async/.ssh/authorized_keys
+chown -R munin:munin /var/lib/munin/.ssh
+
+ssh munin-async@example.net
+exit
+
+Note that you need to check the connection for EVERY host from which you intend
+to collect data in the async manner. munin is NOT handling this dialogue:
+The authenticity of host 'example.net (2600:more:fool:you:f9b)' can't be
+established.
+RSA key fingerprint is 61:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa.
+Are you sure you want to continue connecting (yes/no)? yes
+Warning: Permanently added 'example.net,2600:moore:fool:you:f9b' (RSA) to the
+list of known hosts.
+
+So you need to log in “by hand” first, from the user munin, in order to record
+the key. Or you need to copy the key from antoher known_hosts file, which may
+be tricky. Now change the shell of munin back to /bin/false, for security.
+
+chsh -s /bin/false munin
+
+**** Change the system definition in /etc/munin/munin.conf ****
+
+(or, as I prefer to do it, in /etc/munin/munin-conf.d/hostlist.conf ).
+[async.my-machine.net]
+ address ssh://munin-async@example.net /usr/share/munin/munin-async --spooldir
+/var/lib/munin/spool --spoolfetch
+ use_node_name yes
+
+I am using async in the definition name merely so that I can compare the data
+from the two collection methods.
+
+**** Security enhancement ****
+To prevent your monitored server being compromised if someone manages to break
+into your munin collection server, you should edit the /var/lib/munin-
+async/.ssh/authorized_keys file and add
+
+no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty,no-user-rc,command="/usr/sbin/munin-async  --spooldir /var/lib/munin/spool --spoolfetch"
+
+to the beginning of the relevant line. Additionally consider from="(remote machine IPs)".
+
+**** Adding plugins ****
+
+When you add a plugin, it won’t be visible unless you first restart munin-node
+and THEN munin-async.
+
+**** Troubleshooting tips ****
+
+If you haven’t logged in to the host “by hand” or added its keys to
+known_hosts some other way, the fetch will fail. The only log in the munin-
+update file will say something like:
+
+Socket read from async.example.net failed. A Terminating process. at /usr/
+share/perl5/Munin/Master/UpdateWorker.pm line ...
+Another possible cause of mysterious failure to fetch data from the remote host
+(that does not give a clear error message) is munin-asyncd not running on the
+target server, or having no prefetched data yet.
+
+**** Additional ideas ****
+
+Balint Deak suggested in a post on the munin-users mailing list: What I would
+add to this is that if you have many hosts, or hosts are added on a daily
+basis, it may be annoying to always remember to log in to each new box and say
+“yes” at the prompt.
+
+If you create a config file for ssh in the $HOME/.ssh/config for the user that
+runs the master (defaults to ‘munin’) and tell ssh not to check the host key
+when authenticating, then no prompt will be displayed even for new or unknown
+hosts.
+
+Add something like:
+Host *
+  UserKnownHostsFile=/dev/null
+  StrictHostKeyChecking=no
+
+I don’t think this makes the setup less secure, but it would make the
+automation of adding new hosts to the system easier.
+
+Regards,
+Balint
+
+From http://www.matija.si/system-administration/2012/07/15/installing-munin-async/ with edits from Daniel Black
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/239-fix-too-many-warnings-in-munin-graph.log.patch
+++ munin-2.0.6/debian/patches/239-fix-too-many-warnings-in-munin-graph.log.patch
@@ -0,0 +1,47 @@
+From 789c59e3a27f5d38cabd02c8f57fec605e6146a8 Mon Sep 17 00:00:00 2001
+From: Steve Schnepp <steve.schnepp@pwkf.org>
+Date: Thu, 6 Sep 2012 13:46:17 +0200
+Subject: [PATCH] master: fix too many warnings in munin-graph.log
+
+When graph_strategy was missing, a warning was emitted since the value is
+undef.
+
+Closes: #1251
+---
+ master/lib/Munin/Master/HTMLConfig.pm |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/master/lib/Munin/Master/HTMLConfig.pm b/master/lib/Munin/Master/HTMLConfig.pm
+index dfa8b70..bbccffa 100644
+--- a/master/lib/Munin/Master/HTMLConfig.pm
++++ b/master/lib/Munin/Master/HTMLConfig.pm
+@@ -473,7 +473,7 @@ sub generate_service_templates {
+ 	    }
+     }
+ 
+-    if ($config->{'graph_strategy'} eq "cgi") {
++    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;
+@@ -500,7 +500,7 @@ sub generate_service_templates {
+ 	for my $scale (@times) {
+         # Don't try to find the size if cgi is enabled, 
+         # otherwise old data might pollute  
+-        next if ($config->{'graph_strategy'} eq "cgi");
++        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;
+@@ -512,7 +512,7 @@ sub generate_service_templates {
+         $srv{imgweeksum} = "$srv{node}-week-sum.png";
+         $srv{imgyearsum} = "$srv{node}-year-sum.png";
+         for my $scale (["week", "year"]) {
+-            next if ($config->{'graph_strategy'} eq "cgi");
++            next if (munin_get($config, "graph_strategy", "cron") eq "cgi");
+             if (my ($w, $h)
+                 = get_png_size(munin_get_picture_filename($service, $scale, 1)))
+             {
+-- 
+1.7.2.5
+
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/243-http_loadtime-fixed-stderr-redirection-with-time.patch
+++ munin-2.0.6/debian/patches/243-http_loadtime-fixed-stderr-redirection-with-time.patch
@@ -0,0 +1,25 @@
+From 9a1cbce209d268d3fc0c8e56ee953b310a204ded Mon Sep 17 00:00:00 2001
+From: Andrea Piccinelli <frasten@gmail.com>
+Date: Thu, 4 Oct 2012 09:40:13 +0300
+Subject: [PATCH] http_loadtime: fixed stderr redirection with 'time'
+
+---
+ plugins/node.d/http_loadtime.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/node.d/http_loadtime.in b/plugins/node.d/http_loadtime.in
+index bf17619..bb0675d 100644
+--- a/plugins/node.d/http_loadtime.in
++++ b/plugins/node.d/http_loadtime.in
+@@ -67,7 +67,7 @@ TMPDIR=`mktemp -d` || exit 1
+ trap "rm -rf $TMPDIR" EXIT
+ 
+ cd $TMPDIR || exit 1
+-loadtime=$(time -p wget -p --no-cache --delete-after $target -q 2>&1 | awk '/^real / { print $2 }')
++loadtime=$((time -p wget -p --no-cache --delete-after $target -q) 2>&1 | awk '/^real / { print $2 }')
+ cd ..
+ 
+ echo "loadtime.value $loadtime"
+-- 
+1.7.2.5
+
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/238-munin-node-ipv6allow.patch
+++ munin-2.0.6/debian/patches/238-munin-node-ipv6allow.patch
@@ -0,0 +1,12 @@
+diff --git a/node/munin-node.conf.in b/node/munin-node.conf.in
+index b2e2ed4..fd40f64 100644
+--- a/node/munin-node.conf.in
++++ b/node/munin-node.conf.in
+@@ -33,6 +33,7 @@ ignore_file \.pod$
+ # may repeat the allow line as many times as you'd like
+ 
+ allow ^127\.0\.0\.1$
++allow ^::1$
+ 
+ # If you have installed the Net::CIDR perl module, you can use one or more
+ # cidr_allow and cidr_deny address/mask patterns.  A connecting client must
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/241-master-connect-to-AAAA-and-A-address.patch
+++ munin-2.0.6/debian/patches/241-master-connect-to-AAAA-and-A-address.patch
@@ -0,0 +1,30 @@
+commit a18229c522e1df5468a7dcb3a2f4c96aca56a761
+Author: Steve Schnepp <steve.schnepp@pwkf.org>
+Date:   Tue Nov 27 07:28:43 2012 +0100
+
+    master: connect to AAAA and A address
+    
+    According to Michael Renner in D#678662 :
+    
+    The lack of the "MulitHomed" parameter causes IO::Socket::INET6 to give
+    preferential treatment to AAAA-addresses and fail if they don't yield a socket.
+    When enabling MultiHomed IO::Socket::INET6 will try all returned addresses.
+    
+    See http://search.cpan.org/~shlomif/IO-Socket-INET6-2.69/lib/IO/Socket/INET6.pm#CONSTRUCTOR for detailed information.
+    
+    Thx to Kelsey Cummings for reporting it on the ml.
+    
+    Closes: D#678662
+
+diff --git a/master/lib/Munin/Master/Node.pm b/master/lib/Munin/Master/Node.pm
+index 6549fbf..af9d69e 100644
+--- a/master/lib/Munin/Master/Node.pm
++++ b/master/lib/Munin/Master/Node.pm
+@@ -86,6 +86,7 @@ sub _do_connect {
+ 		PeerPort  => $self->{port} || 4949,
+ 		LocalAddr => $config->{local_address},
+ 		Proto     => 'tcp', 
++		MultiHomed => 1,
+ 		Timeout   => $config->{timeout}
+ 	);
+ 	if (! $self->{reader} ) {
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/240-Do-not-use-the-read-without-variable-bashism.patch
+++ munin-2.0.6/debian/patches/240-Do-not-use-the-read-without-variable-bashism.patch
@@ -0,0 +1,23 @@
+From 717a7dadad040657e118e5102b2ba6aebf5b94fc Mon Sep 17 00:00:00 2001
+From: intrigeri <intrigeri@debian.org>
+Date: Sun, 25 Nov 2012 15:52:54 +0100
+Subject: [PATCH] Do not use the "read without variable" bashism. (Closes:
+ #690711)
+
+---
+ plugins/node.d.linux/selinux_avcstat.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/node.d.linux/selinux_avcstat.in b/plugins/node.d.linux/selinux_avcstat.in
+index dc436ef..92abf13 100644
+--- a/plugins/node.d.linux/selinux_avcstat.in
++++ b/plugins/node.d.linux/selinux_avcstat.in
+@@ -85,7 +85,7 @@ if [ "$1" = "config" ]; then
+ fi
+ 
+ if [ -r $AVCSTATS ]; then
+-    { read
++    { read HEADER
+       while read lookups hits misses allocations reclaims frees; do
+         LOOKUPS=$(($LOOKUPS + $lookups))
+         HITS=$(($HITS + $hits))
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch
+++ munin-2.0.6/debian/patches/242-Fix-wrong-assumption-about-Net-SSLeay-CTX_set_option.patch
@@ -0,0 +1,32 @@
+From 380550392ba37eaa32203342c082d4013dfcba21 Mon Sep 17 00:00:00 2001
+From: intrigeri <intrigeri@debian.org>
+Date: Wed, 21 Nov 2012 12:02:53 +0100
+Subject: [PATCH] Fix wrong assumption about Net::SSLeay::CTX_set_options return value (Closes: #675377)
+
+The examples I can see in the Net::SSLeay perldoc indicate that this function
+returns true on success:
+
+    Net::SSLeay::CTX_set_options($ctx, &Net::SSLeay::OP_ALL)
+         or die_if_ssl_error("ssl ctx set options");
+
+... while the Munin code assumed the opposite.
+---
+ common/lib/Munin/Common/TLS.pm |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/common/lib/Munin/Common/TLS.pm b/common/lib/Munin/Common/TLS.pm
+index 604422d..5211bf8 100644
+--- a/common/lib/Munin/Common/TLS.pm
++++ b/common/lib/Munin/Common/TLS.pm
+@@ -132,7 +132,7 @@ sub _creat_tls_context {
+     }
+ 
+     # Tune a few things...
+-    if (Net::SSLeay::CTX_set_options($ctx, &Net::SSLeay::OP_ALL)) {
++    if (! Net::SSLeay::CTX_set_options($ctx, &Net::SSLeay::OP_ALL)) {
+ 	$self->{logger}("[ERROR] Could not set SSL_CTX options");
+ 	return 0;
+     }
+-- 
+1.7.2.5
+
only in patch2:
unchanged:
--- munin-2.0.6.orig/debian/patches/244-fix-apt_all-plugin-statedir-for-cron.patch
+++ munin-2.0.6/debian/patches/244-fix-apt_all-plugin-statedir-for-cron.patch
@@ -0,0 +1,29 @@
+From d53b34d1bdfafece48e50f2d690b2e1130b6f1dd Mon Sep 17 00:00:00 2001
+From: Steve Schnepp <steve.schnepp@pwkf.org>
+Date: Thu, 13 Sep 2012 12:18:29 +0200
+Subject: [PATCH] plugins: fix apt_all plugin statedir for cron
+
+The apt_all plugin has its state updated in cron. There the ENV var
+MUNIN_PLUGSTATE doesn't exist, so we need to set a default.
+
+Closes: D#687495
+---
+ plugins/node.d.linux/apt_all.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/plugins/node.d.linux/apt_all.in b/plugins/node.d.linux/apt_all.in
+index 0c491f8..101c5d0 100644
+--- a/plugins/node.d.linux/apt_all.in
++++ b/plugins/node.d.linux/apt_all.in
+@@ -52,7 +52,7 @@ use strict;
+ $ENV{'LANG'}="C";
+ $ENV{'LC_ALL'}="C";
+ 
+-my $statefile = "$ENV{MUNIN_PLUGSTATE}/plugin-apt.state";
++my $statefile = ($ENV{MUNIN_PLUGSTATE} || '@@PLUGSTATE@@/root/') . "/plugin-apt.state";
+ my @releases = ("stable", "testing","unstable");
+ 
+ 
+-- 
+1.7.2.5
+

Reply to: