为了尝试Munin,我们将再次使用Docker容器运行Munin服务
docker run—p 3000:80 lrivallain/munin:latest
第一次运行Munin需要一点时间,所以,在浏览web界面前先稍等一下。如果你不喜欢等待,可以在容器中手动运行munin-update的命令,如下所示。它会显式地轮询所有的Munin节点来获取统计数据。
现在你应该可以看到第一次运行过程中创建的图。如果让它运行一段时间,你可以看到图是如何发展的。
实现一个监控应用程序栈的特定数据统计的Munin插件并不困难。你可以编写一段shell脚本让Munin调用,来获得你想要追踪的统计数据。
Munin是用Perl实现的,但是你可以用大多数的语言实现Munin的插件,只要遵从一个简单的接口即可。
程序使用config参数调用时应当返回一些元数据。这是为了让Munin在图上标出正确的标签。
下面是一个图配置的例子:
graph title Load average
graph_vlabel load
load.label load
发送数据只要打印到stdout即可。
printf "load.value "
cut -d' ' -f2 /proc/loadavg
下面这段脚本可以绘制出机器的平均负载
#! /bin/sh
case$1 in
config)
Cat<< 'EOM'
graph_title Load average
graph_vlabel load
load.label load
EOM
exit 0; ;
esac
printf "load.value "
cut -d' ' -f2 /proc/loadavg
这个系统很简单也很可靠,你也能很容易为自己的应用实现它。需要做的只是将你的数据统计打印到stdout即可。