0

I set up munin to run as root for testing, my relevant config is as so:

munin.conf:

[localhost]
    address 127.0.0.1
    use_node_name yes

I tried fqnd.mysite.com (but it couldn't connect), localhost.localdomain too which runs but I'll explain in a sec

munin-node.conf:

allow ^127\.0\.0\.1$

# Which address to bind to;
host 127.0.0.1
host_name localhost
port 4949

Now it all works fine if I type munin-run cpu and it lists myspecs, but when I telnet to localhost:4949 a session will be like this:

# munin node at localhost
list
cpu df df_inode entropy exim_mailstats forks fw_conntrack fw_forwarded_local fw_packets http_loadtime if_err_eth0 if_eth0 interrupts iostat iostat_ios irqstats load memory munin_stats nfs4_client nfsd nfsd4 ntp_kernel_err ntp_kernel_pll_freq ntp_kernel_pll_off ntp_offset open_files open_inodes postfix_mailqueue postfix_mailvolume proc_pri processes swap threads uptime users vmstat
fetch df
.
fetch cpu
.

As you see plugins are listed! But for some reason it replies with a '.', I am running this under root so I don't think it is a permission problem. Any clues will get me off my computer at 4:32AM!

John R.
  • 149
  • 3
  • 13

2 Answers2

1

I can't do a better job than http://munin-monitoring.org/wiki/Debugging_Munin_plugins, but one step you've either not done or not posted is running the plugins out of /etc/munin/plugins and seeing what they say. Try

# /etc/munin/plugins/df

and see what you get back. You should also be aware that although munin-node runs as root, the plugins do not necessarily do so; see /etc/munin/{plugins.conf,plugin-conf.d/*} for insight into which user any given plugin may run as.

MadHatter
  • 79,770
  • 20
  • 184
  • 232
  • Ah.. the debug page helped, read it once but didn't get most of it, it claims I may have a problem with my path, I'll look at that next.. Progress!! – John R. Dec 12 '10 at 13:30
  • Heh, it says to modify in the plugin's environment file.. but they have no env.path entries, more searching.. :) – John R. Dec 12 '10 at 13:48
0

I had found my problem, it was all printing to STDERR rather than STDOUT, this bug apparently only happens in OpenSUSE 9/10, odd it happened on Ubuntu 10.04..

The bug can be found here: http://munin-monitoring.org/ticket/846

And patch is as follows:

--- node/lib/Munin/Node/Service.pm.orig 2010-04-26 12:33:56.217889267 +0000
+++ node/lib/Munin/Node/Service.pm      2010-04-26 14:07:09.951259792 +0000
@@ -212,7 +212,14 @@
     print STDERR "# About to run '", join (' ', @command), "'\n" 
        if $config->{DEBUG};

-    exec @command;
+    # work around exec bug in SLES10's Perl
+    # exec @command;
+    my $res = `@command`;
+    print STDERR "# '", join (' ', @command), "' returned $res\n"
+        if $config->{DEBUG};
+    print STDOUT $res;
+    exit;
+
 } 

It happened to me, so I am sure maybe someone somewhere can use this, take care in changing the files though. I had updated my original question to better be found by search engines of similar queries, I know I had to search a lot to find this.

John R.
  • 149
  • 3
  • 13