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