I. 安裝
在安裝之前請確保已安裝EPEL,如果沒有,你可以參考centos安裝EPEL來安裝Munin
yum --enablerepo=epel install munin munin-common munin-node rrdtool
通過安裝提示我們可以發現,munin主要依靠perl來工作。
安裝完畢後系統會有如下改變:
/etc/munin/munin.conf : Munin master(伺服器端) 設定檔.
/etc/cron.d/munin : Munin 設定crontab計劃任務檔案.
/etc/httpd/conf.d/munin.conf : Munin Apache 設定檔.
/var/log/munin : Munin log日誌目錄.
/var/www/html/munin : Munin 網站目錄.
/etc/munin/munin-node.conf : Munin Node節點設定檔(指定監控哪些節點).
/etc/munin/plugins.conf : Munin plugins外掛程式設定檔.
/etc/rc.d/init.d/munin-node : Munin啟動指令碼
/etc/munin/plugin-conf.d/munin-node munin-node外掛程式配置.
II. 配置監控端
計劃任務
系統已經為我們建立好了計劃任務。
cat /etc/cron.d/munin
#
# cron-jobs for munin
#
MAILTO=root
*/5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron
配置監控選項
接下來我們要告訴程式我們需要監控那些主機,設定檔位於/etc/munin/munin.conf
vim /etc/munin/munin.conf
# 其中 localhost已經被我們配置好了
[localhost]
address 127.0.0.1
use_node_name yes
[new domai]
address 45.62.xxx.2xx
use_node_name yes
# use_node_name yes 的意思是使用[]內的名字作為當前IP的主機名稱
nginx服務
我們建立一個虛擬機器主機,綁定網域名稱munin.phpgao.com,然後將根目綁定錄到/var/www/html/munin/即可!
為了保證剛開始的正常服務,老高注釋了auth段配置,後面會講到如何使用。
server {
server_name munin.phpgao.com;
# Restrict access
# auth_basic "Restricted";
# auth_basic_user_file /var/www/html/munin/.htpasswd;
location / {
alias /var/www/html/munin/; #路徑地址為 munin.conf 配置 htmldir 的路徑。
}
}
檔案
監控端每天會產生四個記錄檔,曆史檔案會被壓縮,在/var/log/munin目錄下:
munin-graph.log
munin-html.log
munin-limits.log
munin-update.log
截圖:
監控端檔案
III. 配置被監控端
設定檔
被監控端只需要安裝munin-node即可,用來產生日誌供監控端使用。
監控端與被監控端可以是同一台主機,也可以不同。
我們先看看node的設定檔,檔案比較長,截取部分講解。
cat /etc/munin/munin-node.conf
log_file /var/log/munin-node/munin-node.log #產生日誌的的目錄
allow ^127\.0\.0\.1$ # IP白名單,如果不是監控本機,請修改為監控端的IP。
allow ^222\.222\.111\.111$ # 假設監控端的IP為222.222.111.111
port 4949 # 監聽的連接埠,為監控端服務
運行
# 重啟、啟動服務
service munin-node restart
# 查看是否啟用
netstat -lapn|grep 4949
# 運行 netstat -lapn|grep 4949 可以看到perl在監聽此連接埠
# tcp 0 0 :::4949 :::* LISTEN 22849/perl
## 加入開機啟動指令碼
chkconfig --level 35 munin-node on
IV. 等待資料
當以上的配置都搞定後,等待片刻,後台就會出現資料了!
munin後台
V. 進階設定
配置許可權
還記得nginx配置的時候用到的驗證功能嗎? centos搭建awstats簡單安裝教程裡面也用到了。
此功能使用了apache的htpasswd命令,如果遇到bash提示command not found,請使用yum install httpd安裝。
再次我們建立一個使用者名稱 phpgao,密碼為 hello 的驗證檔案
htpasswd -c /var/www/html/munin/.htpasswd phpgao
# 再輸入兩遍 hello 即可儲存成功
然後我們反注釋掉剛才的nginx配置
server {
server_name munin.phpgao.com;
# Restrict access
auth_basic "Restricted";
auth_basic_user_file /var/www/html/munin/.htpasswd;
location / {
alias /var/www/html/munin/; #路徑地址為 munin.conf 配置 htmldir 的路徑。
}
}
最後重載nginx
nginx -t
service nginx reload
nginx重啟
munin外掛程式
以memcached外掛程式為例,外掛程式首頁Memcached-Munin-Plugin。
下載外掛程式
cd /tmp
git clone https://github.com/mhwest13/Memcached-Munin-Plugin.git
拷貝至外掛程式目錄
cd Memcached-Munin-Plugin
cp memcached_multi_ /usr/share/munin/plugins/memcached_multi_
下面這條命令可以檢測外掛程式是否正確安裝成功。
munin-node-configure --suggest | grep memcached_multi_
編輯munin-node設定檔
vim /etc/munin/plugin-conf.d/munin-node
添加以下內容
[memcached_multi_*]
env.host 127.0.0.1
env.port 11211
env.timescale 3
env.cmds get set delete incr decr touch
env.leitime -1
建立軟串連
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_bytes'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_commands'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_conns'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_evictions'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_items'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_memory'
ln -s '/usr/share/munin/plugins/memcached_multi_' '/etc/munin/plugins/memcached_multi_unfetched'
重啟服務
service munin-node restart
至此外掛程式配置完成,稍等片刻會有資料了!