為了嘗試Munin,我們將再次使用Docker容器運行Munin服務
docker run—p 3000:80 lrivallain/munin:latest
第一次運行Munin需要一點時間,所以,在瀏覽web界面前先稍等一下。如果你不喜歡等待,可以在容器中手動運行munin-update的命令,如下所示。它會顯式地輪詢所有的Munin節(jié)點來獲取統(tǒng)計數(shù)據(jù)。
現(xiàn)在你應該可以看到第一次運行過程中創(chuàng)建的圖。如果讓它運行一段時間,你可以看到圖是如何發(fā)展的。
實現(xiàn)一個監(jiān)控應用程序棧的特定數(shù)據(jù)統(tǒng)計的Munin插件并不困難。你可以編寫一段shell腳本讓Munin調用,來獲得你想要追蹤的統(tǒng)計數(shù)據(jù)。
Munin是用Perl實現(xiàn)的,但是你可以用大多數(shù)的語言實現(xiàn)Munin的插件,只要遵從一個簡單的接口即可。
程序使用config參數(shù)調用時應當返回一些元數(shù)據(jù)。這是為了讓Munin在圖上標出正確的標簽。
下面是一個圖配置的例子:
graph title Load average
graph_vlabel load
load.label load
發(fā)送數(shù)據(jù)只要打印到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
這個系統(tǒng)很簡單也很可靠,你也能很容易為自己的應用實現(xiàn)它。需要做的只是將你的數(shù)據(jù)統(tǒng)計打印到stdout即可。