|
munin是用于Linux系统(也可以监控windows系统)的监控软件。munin除了可以监控系统的各项数值之外,最大的好处是可以自己编写插件自定义监控需要的数值。整个系统的架构简单明了,操作方便。如果是使用Debian或者Ubuntu安装,安装过程也非常简单。munin除了可以监控结果,也可以设置报警。对于我个人对性能测试的工作来说,是个非常好的工具。 1. 内容 munin整个使用下来,篇幅会有点大,包括展示、自定义插件。这边分成三个部分来说明。本次只讲安装和配置。 - |3 y$ z& M4 w7 `
- munin master和munin-node的安装;
- web服务展示结果和动态查看结果;
- 插件编写与配置(mysql插件与自定义插件)。
, G) t0 p9 r/ | ; c6 h) E5 ?: ]& J! F
2. 架构示意图 
munin的架构非常简单。包含一个服务端munin和一个客户端munin-node。munin-node可以部署在多台机器上面,munin用于定时向一台或者多台机器收集监控的信息。munin收集到数据后会生成静态的html文件。为了展示监控的结果,需要一个web服务器。有了web也可以随时随地访问监控结果。 5 z. M0 V c3 V+ @' G9 L l! v
一、Ubuntu/Debian 下安装在Ubuntu/Debian下安装非常简单。使用apt-get就可以直接安装好了。安装完了之后,Munin和Munin-node会顺便启动的。 1. Munin node(客户端) # apt-get install munin-node 2. Munin master(服务端) # apt-get install munin " _. j2 m, G5 F/ t
二、Redhat下安装在红帽下安装就略显麻烦了。首先要把rpm的软件包下载下来。但是除了Munin和Munin-node的软件包,另外还涉及到perl的一些库。 另外,Redhat下安装,不同版本的系统包,使用的软件包还不一样。我们使用的是RHEL5版本的,所以下面例子以RHEL5为准(官方给的资料在RHEL5下安装与RHEL4下安装的过程是一样的。只是每个可能软件包根据系统而不一样而已。这个直接替换掉最后的rpm为最新的版本号就好了)。
& j; u3 Y, ~8 H5 P1. Munin node(客户端) 下载程序包: Munin-node包:
8 i2 P4 Y6 [# `! n#yum install -y epel-release #yum install -y munin-node4 {/ b2 \2 s1 G4 R) f
+ e J6 y, n, Z, F9 v
下载依赖包: # wget ftp://bo.mirror.garr.it/1/slc/ce ... .5-7.el7.x86_64.rpm/ o! y, j# [& k1 ?& I
# wget ftp://195.220.108.108/linux/cent ... 2-12.el5.x86_64.rpm
/ d7 x! o6 m5 k5 J/ [; S& J# wget http://dag.wieers.com/rpm/packag ... 2.el5.rf.noarch.rpm
, F5 x( U9 O8 _. Y2 q# wget http://dag.wieers.com/rpm/packag ... 3.2.el5.rf.i386.rpm (perl-Net-SNMP依赖此包)
. T2 s' L& L) |2 Y. H# wget http://pkgs.repoforge.org/perl-S ... .el5.rfx.x86_64.rpm (perl-Net-SNMP依赖此包)8 P0 ?9 w7 T& C# \
# wget http://pkgs.repoforge.org/perl-N ... 1.el5.rf.noarch.rpm
4 q! b+ i) G ^* X5 [4 p- X
" V9 g8 v b' k, r. I W, {可以使用以下顺序安装: v6 ^0 _ ]6 c
# rpm -Uvh sysstat-7.0.2-12.el5.x86_64.rpm6 U, T& A& Z' h% P- b3 y9 o7 N
# rpm -Uvh perl-Net-Server-0.99-1.el5.rf.noarch.rpm* V0 u1 h" \7 V7 O
# rpm -Uvh perl-Socket6-0.23-1.el5.rfx.x86_64.rpm
: H6 M; f) @3 V& {) d" \* u4 U# rpm -Uvh perl-Crypt-DES-2.05-3.2.el5.rf.i386.rpm
3 J1 d- s, o, ]. N- q ^& L5 U# rpm -Uvh perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm
: W# X# e3 C6 ^3 S* b0 _7 ~' E0 q# rpm -Uvh munin-node-1.2.5-1rhel4.noarch.rpm(最后安装Munin node)
- b, a! Q" G( r% {1 |0 }2 T2 g' F9 [, c
即:
) \% j- V n% m6 [1:sysstat% ?4 g4 s+ ]. ~7 X% H0 O
2:perl-Socket6
: y( Z! a$ Y6 C& q8 |: U$ g3:perl-Crypt-DES" M8 G; d& K& I( c0 e6 j2 F" M
4:perl-Net-SNMP. ]# N- S. c+ T2 [ Z9 F, Y# H
5:perl-Net-Server
+ G- L0 G1 e o# K9 D6:munin-node
: [, i$ R8 }, q1 r. {5 l4 l1 D
( k9 o/ Z2 c+ w- q3 T: p2 @3 B( K如果遇到签名验证不通过的问题,可以加上[--force --nodeps] 参数强制安装:
( R& F4 J; a6 d" T+ C7 O# rpm -Uvh perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm --force --nodeps
' u4 ]1 Q7 i2 K& y. T; q 以上顺利的话,munin-node就安装好了。安装完毕后,系统会自动启动munin-node。 $ r7 M) k, k$ G p2 W2 L
2. Munin master(服务端) 下载Munin包: # wget http://dl.fedoraproject.org/pub/ ... 20-1.el5.noarch.rpm
: i& W7 F: C! n4 l" x. b下载依赖包: # wget http://dag.wieers.com/rpm/packag ... 2.el5.rf.noarch.rpm # wget http://pkgs.repoforge.org/rrdtoo ... .el6.rfx.x86_64.rpm # wget http://pkgs.repoforge.org/rrdtoo ... 1.el5.rf.x86_64.rpm # wget http://dag.wieers.com/rpm/packag ... 2.el5.rf.noarch.rpm(munin node也用到) # wget http://dag.wieers.com/rpm/packag ... 1.el5.rf.noarch.rpm(munin node也用到)
5 Z2 F' I# {7 b3 W# }安装顺序: 1:perl-HTML-Template 2:rrdtool 3:perl-rrdtool 4:perl-Net-SNMP 5:perl-Net-Server 6:munin
/ T/ `" U/ u! } a- N以上,munin的客户端和服务端都安装好了。如果安装期间遇到版本不对的地方,请根据自己的系统版本,自行替换为相应的依赖包。 9 p4 E$ o' u) f% S
三、配置和启动无论是Debian下安装,还是RedHat下安装,munin-node和munin master(即munin)都默认安装在路径/etc/munin下。配置文件与插件都是在这里配置的。 + b3 p1 @5 D8 B9 h# X- X7 G; z
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$4 V5 L6 N5 Q! C" p5 S
另外还可以修改端口、绑定IP地址等。都比较简单,就不多说了。 + r8 F( A( S1 _; I# }. @
1.2 启动、停止和重启 启动程序是/etc/init.d/下的munin-node可执行文件。也可以直接以服务的形式启动。 # service munin-node start #启动# service munin-node stop #停止# service munin-node restart #重启: C# q4 {! r' f' Y }! ` E% n ?. l
systemctl start munin-node, ~/ l* _3 V) Y
# e# W/ z/ {0 m/ ^5 W: J; U
1.3 测试 直接telnet就可以。端口默认是配置为4949的,那么telnet连接,输入help可以查看监控命令。 [url=] [/url]" S% E" p) @7 S$ F
$ telnet 127.0.0.1 4949Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is ''.# munin node at machinenamehelp# Unknown command. Try cap, list, nodes, config, fetch, version or quit[url=] [/url]5 n* E: ^) ?% D1 L* N% w/ v9 B; q6 p
u% i& l' ~7 y* K- Y' f8 Y" j) j8 g1 N) J6 d
2. munin.conf 2.1 配置 munin.conf是服务端(即munin master)的配置文件。 首先去掉一下路径配置的注释。除了tmpldir,其它可自行配置。但是tmpldir要配置到munin的HTML模板上,默认是在/etc/munin/templates 下。基本上都有说明,还是比较容易看得懂的。 [url=] [/url] L1 L8 y T d- Y/ T& r
dbdir /var/lib/muninhtmldir /var/cache/munin/wwwlogdir /var/log/muninrundir /var/run/munintmpldir /etc/munin/templates[url=] [/url]
6 _# H0 Q. D$ A. k' Q8 x4 O: {' L* K4 P8 ]$ [0 s
k& [% M+ `/ F# f+ _1 U
然后找到localhost.localdomain节点。这个是用于配置需要监控的目标机器的。默认会配置本机127.0.0.1。根据需要,可新增需要监控的机器。可以增加多台机器,只要目标机器安装了munin-node就可以。如: [url=] [/url]. Q. K! v. H3 J" I, b
# 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[url=] [/url]
% n$ a0 | d! q& j+ \
! S. G- a1 `5 \9 w% J9 M& F- A T* y
2.2 启动 munin master安装成功后。会给系统增加一个munin用户。启动服务端(munin master)是无法用root权限启动的,只能使用munin用户启动。当然安装的时候,会默认自己启动的。并且会每隔5分钟,会定时执行munin-cron定时任务。基本上,修改完配置表后可以完全不用理会,等待服务端自己去更新即可。 & u- F2 B3 K$ O0 h7 i
当然如果你一定要马上更新,可以切换到munin用户,执行munin-cron命令。 # su munin -c /etc/init.d/munin-cron
~1 q+ i( u- u% t( Y执行无报错的话,是没有打印信息的。 ( L) m/ N! e: a
3 测试 在munin.conf 配置文件里面指定了生成的监控的html监控结果“htmldir /var/cache/munin/www”。只需要配置一个web服务器,可访问到目标路径“/var/cache/munin/www”即可。可以使用nginx、apache、resin等主流web服务器。html都是静态文件,所以任何web服务器都是可以的。 访问web服务器,就可以查看结果了。  * ?) G# p8 Y. T" ]! W
* e7 o- a T) J& x
|