本地主机上的 Munin(telnet 仅显示句点)

本地主机上的 Munin(telnet 仅显示句点)

我设置 munin 以 root 身份运行以进行测试,我的相关配置如下:

munin.conf:

[localhost]
    address 127.0.0.1
    use_node_name yes

我尝试了 fqnd.mysite.com(但无法连接),localhost.localdomain 也可以运行,但我稍后会解释

munin-node.conf:

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

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

现在,如果我输入并且它列出 myspecs,一切都会正常工作munin-run cpu,但是当我 telnet 到 localhost:4949 时,会话将如下所示:

# 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
.

如您所见,插件已列出!但出于某种原因,它以“。”作为回复,我正在 root 下运行它,所以我不认为这是权限问题。任何线索都可以让我在凌晨 4:32 离开我的电脑!

答案1

我不能做得更好http://munin-monitoring.org/wiki/Debugging_Munin_plugins,但有一个步骤你没有做或没有发布,那就是运行插件/etc/munin/plugins并查看它们的内容。尝试

# /etc/munin/plugins/df

看看你得到了什么。你还应该知道,尽管 munin-node 以 root 身份运行,但插件不一定如此;请参阅/etc/munin/{plugins.conf,plugin-conf.d/*}以了解任何给定插件可以以哪个用户身份运行。

答案2

我发现了我的问题,所有的东西都打印到 STDERR 而不是 STDOUT,这个错误显然只发生在 OpenSUSE 9/10 中,奇怪的是它发生在 Ubuntu 10.04 上。

该错误可以在这里找到: http://munin-monitoring.org/ticket/846

补丁如下:

--- 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;
+
 } 

我也遇到过这种情况,所以我确信也许有人可以使用这个,不过在更改文件时要小心。我已经更新了我的原始问题,以便搜索引擎能够更好地找到类似查询,我知道我必须搜索很多次才能找到它。

相关内容