〇、摘要
munin是用於Linux系統(也可以監控windows系統)的監控軟件。munin除了可以監控系統的各項數值之外,最大的好處是可以自己編寫插件自定義監控需要的數值。整個系統的架構簡單明了,操作方便。如果是使用Debian或者Ubuntu安裝,安裝過程也非常簡單。munin除了可以監控結果,也可以設置報警。對於我個人對性能測試的工作來說,是個非常好的工具。
1. 內容
munin整個使用下來,篇幅會有點大,包括展示、自定義插件。這邊分成三個部分來說明。本次只講安裝和配置。
-
- munin master和munin-node的安裝;
- web服務展示結果和動態查看結果;
- 插件編寫與配置(mysql插件與自定義插件)。
2. 架構示意圖
munin的架構非常簡單。包含一個服務端munin和一個客戶端munin-node。munin-node可以部署在多台機器上面,munin用於定時向一台或者多台機器收集監控的信息。munin收集到數據后會生成靜態的html文件。為了展示監控的結果,需要一個web服務器。有了web也可以隨時隨地訪問監控結果。
一、Ubuntu/Debian 下安裝
在Ubuntu/Debian下安裝非常簡單。使用apt-get就可以直接安裝好了。安裝完了之后,Munin和Munin-node會順便啟動的。
1. Munin node(客戶端)
# apt-get install munin-node
2. Munin master(服務端)
# apt-get install munin
二、Redhat下安裝
在紅帽下安裝就略顯麻煩了。首先要把rpm的軟件包下載下來。但是除了Munin和Munin-node的軟件包,另外還涉及到perl的一些庫。
另外,Redhat下安裝,不同版本的系統包,使用的軟件包還不一樣。我們使用的是RHEL5版本的,所以下面例子以RHEL5為准(官方給的資料在RHEL5下安裝與RHEL4下安裝的過程是一樣的。只是每個可能軟件包根據系統而不一樣而已。這個直接替換掉最后的rpm為最新的版本號就好了)。
1. Munin node(客戶端)
下載程序包:
Munin-node包:
# wget http://dl.fedoraproject.org/pub/epel/5/i386/munin-node-2.0.20-1.el5.noarch.rpm
下載依賴包:
# wget ftp://195.220.108.108/linux/centos/5.10/os/x86_64/CentOS/sysstat-7.0.2-12.el5.x86_64.rpm
# wget http://dag.wieers.com/rpm/packages/perl-Net-SNMP/perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm
# wget http://dag.wieers.com/rpm/packages/perl-Crypt-DES/perl-Crypt-DES-2.05-3.2.el5.rf.i386.rpm (perl-Net-SNMP依賴此包)
# wget http://pkgs.repoforge.org/perl-Socket6/perl-Socket6-0.23-1.el5.rfx.x86_64.rpm (perl-Net-SNMP依賴此包)
# wget http://pkgs.repoforge.org/perl-Net-Server/perl-Net-Server-0.99-1.el5.rf.noarch.rpm
可以使用以下順序安裝:
# rpm -Uvh sysstat-7.0.2-12.el5.x86_64.rpm
# rpm -Uvh perl-Net-Server-0.99-1.el5.rf.noarch.rpm
# rpm -Uvh perl-Socket6-0.23-1.el5.rfx.x86_64.rpm
# rpm -Uvh perl-Crypt-DES-2.05-3.2.el5.rf.i386.rpm
# rpm -Uvh perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm
# rpm -Uvh munin-node-1.2.5-1rhel4.noarch.rpm(最后安裝Munin node)
即:
1:sysstat
2:perl-Socket6
3:perl-Crypt-DES
4:perl-Net-SNMP
5:perl-Net-Server
6:munin-node
如果遇到簽名驗證不通過的問題,可以加上[--force --nodeps] 參數強制安裝:
# rpm -Uvh perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm --force --nodeps
以上順利的話,munin-node就安裝好了。安裝完畢后,系統會自動啟動munin-node。
2. Munin master(服務端)
下載Munin包:
# wget http://dl.fedoraproject.org/pub/epel/5/i386/munin-2.0.20-1.el5.noarch.rpm
下載依賴包:
# wget http://dag.wieers.com/rpm/packages/perl-HTML-Template/perl-HTML-Template-2.8-1.2.el5.rf.noarch.rpm
# wget http://pkgs.repoforge.org/rrdtool/perl-rrdtool-1.4.7-1.el6.rfx.x86_64.rpm
# wget http://pkgs.repoforge.org/rrdtool/tcl-rrdtool-1.4.7-1.el5.rf.x86_64.rpm
# wget http://dag.wieers.com/rpm/packages/perl-Net-SNMP/perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm(munin node也用到)
# wget http://dag.wieers.com/rpm/packages/perl-Net-Server/perl-Net-Server-0.99-1.el5.rf.noarch.rpm(munin node也用到)
安裝順序:
1:perl-HTML-Template
2:rrdtool
3:perl-rrdtool
4:perl-Net-SNMP
5:perl-Net-Server
6:munin
以上,munin的客戶端和服務端都安裝好了。如果安裝期間遇到版本不對的地方,請根據自己的系統版本,自行替換為相應的依賴包。
三、配置和啟動
無論是Debian下安裝,還是RedHat下安裝,munin-node和munin master(即munin)都默認安裝在路徑/etc/munin下。配置文件與插件都是在這里配置的。
1. munin-node.conf(客戶端配置)
1.1 配置文件
munin-node.conf是客戶端(即munin-node)的配置文件。這邊的配置比較簡單,只需要配置服務器的IP地址就可以了。在allow新增一個服務器的IP配置。默認是配置了本機了,如果你的munin-node與munin master是在同一台機器上面,默認就可以了。這個配置是用來限制那些IP可以訪問的。
allow ^127\.0\.0\.1$ allow ^::1$ allow ^192\.168\.1\.2$
另外還可以修改端口、綁定IP地址等。都比較簡單,就不多說了。
1.2 啟動、停止和重啟
啟動程序是/etc/init.d/下的munin-node可執行文件。也可以直接以服務的形式啟動。
# service munin-node start #啟動 # service munin-node stop #停止 # service munin-node restart #重啟
1.3 測試
直接telnet就可以。端口默認是配置為4949的,那么telnet連接,輸入help可以查看監控命令。
$ telnet 127.0.0.1 4949 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. # munin node at machinename help # Unknown command. Try cap, list, nodes, config, fetch, version or quit
2. munin.conf
2.1 配置
munin.conf是服務端(即munin master)的配置文件。
首先去掉一下路徑配置的注釋。除了tmpldir,其它可自行配置。但是tmpldir要配置到munin的HTML模板上,默認是在/etc/munin/templates 下。基本上都有說明,還是比較容易看得懂的。
dbdir /var/lib/munin htmldir /var/cache/munin/www logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates
然后找到localhost.localdomain節點。這個是用於配置需要監控的目標機器的。默認會配置本機127.0.0.1。根據需要,可新增需要監控的機器。可以增加多台機器,只要目標機器安裝了munin-node就可以。如:
# a simple host tree [local.127-0-0-1] address 127.0.0.1 use_node_name yes [mytest.192-168-1-3] address 192.168.1.3 use_node_name yes [mysql.192-168-1-4] address 192.168.1.4 use_node_name yes
2.2 啟動
munin master安裝成功后。會給系統增加一個munin用戶。啟動服務端(munin master)是無法用root權限啟動的,只能使用munin用戶啟動。當然安裝的時候,會默認自己啟動的。並且會每隔5分鍾,會定時執行munin-cron定時任務。基本上,修改完配置表后可以完全不用理會,等待服務端自己去更新即可。
當然如果你一定要馬上更新,可以切換到munin用戶,執行munin-cron命令。
# su munin -c /etc/init.d/munin-cron
執行無報錯的話,是沒有打印信息的。
3 測試
在munin.conf 配置文件里面指定了生成的監控的html監控結果“htmldir /var/cache/munin/www”。只需要配置一個web服務器,可訪問到目標路徑“/var/cache/munin/www”即可。可以使用nginx、apache、resin等主流web服務器。html都是靜態文件,所以任何web服務器都是可以的。
訪問web服務器,就可以查看結果了。
四、參考資料
官方安裝說明:http://munin-monitoring.org/wiki/MuninInstallationLinux
近期研究獨立博客,逐漸會與獨立博客同步: