我尝试通过在单个图表中组合多个主机来比较使用 Munin 1.4.6-3ubuntu3 的多个服务器的平均负载。
我的尝试:
[domain.com;Totals]
load.graph_title Load
load.graph_category System
load.graph_order s1=s1.domain.com:load.load \
s2=s2.cisco.com:load.load \
s3=s3.cisco.com:load.load \
s4=s4.cisco.com:load.load \
s5=s5.cisco.com:load.load \
s6=s6.cisco.com:load.load \
s7=s7.cisco.com:load.load
结果是:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s2=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s3=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s4=s2;domain;com:load:
并且没有生成图表/var/cache/munin/www/domain.com/Totals
,只有index.html
和load.html
实现这一目标的实用示例是什么?
答案1
我自己也为组合图苦苦挣扎了好一阵子。从我的经验来看,munin 的输入验证非常糟糕。因此,如果您忘记设置必需选项或设置了太多选项,它通常会默默失败。此外,我还遇到了一个非常奇怪的问题,导致我的组合图在服务器启动几分钟后消失。升级到 Ubuntu 13.04(munin 2.0.9-1ubuntu1)解决了这个问题。
关于我们的设置的一些背景
我们目前在负载均衡器后面有三台生产服务器。每台服务器都会计算传入请求的数量。所有这些服务器都由 munin 监控,自定义插件 (myplugin) 会检索请求计数器并将其公开为名为“请求”的单个数据源。使用此设置,我们为三台不同的服务器提供了三张不同的图表。现在,这显然是组合图表的完美用例。
这是我的工作配置
[server-1.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[server-2.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[server-3.production]
address xxx.xxx.xxx.xxx
use_node_name yes
[aggregate.production]
update no
myplugin.update no
myplugin.graph_args --base 1000 -l 0
myplugin.graph_category myplugin
myplugin.graph_vlabel requests/s
myplugin.graph_title request rate
myplugin.graph_order \
total \
server-1=server-1.production:myplugin.requests \
server-2=server-2.production:myplugin.requests \
server-3=server-3.production:myplugin.requests
myplugin.total.sum \
server-1.production:myplugin.requests \
server-2.production:myplugin.requests \
server-3.production:myplugin.requests
myplugin.server-1.label server-1
myplugin.server-2.label server-2
myplugin.server-3.label server-3
myplugin.total.label total
重要的陷阱
- 配置最后部分的标签定义是必需的。省略它们会导致 munin 悄悄失败!
- 更新号是必需的,但我不确定你是否需要myplugin.update 没有。
- 确保您使用的是最新版本的 munin,因为错误已被积极修复。
答案2
您收到此警告消息是因为语法检查不理解用“\”分隔的多行,因此它认为您的变量“load”是配置命令结尾的有效关键字。我认为这是当前 munin 中的一个错误。
尽管它们被正确处理,你可以通过删除'\'并将所有以下行压缩为一行来避免该警告:
load.graph_order s1=s1.domain.com:load.load s2=s2.cisco.com:load.load s3=s3.cisco.com:load.load s4=s4.cisco.com:load.load s5=s5.cisco.com:load.load s6=s6.cisco.com:load.load s7=s7.cisco.com:load.load
除了上述解决方法之外,您还需要添加:
use_node_name no
update no
load.update no