為了嘗試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即可。