[Linux实用工具]Linux监控工具munin的安装和配置
〇、摘要
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 ^\.\.\.$
allow ^::$
allow ^\.\.\.$
另外还可以修改端口、绑定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
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.---]
address 127.0.0.1
use_node_name yes [mytest.---]
address 192.168.1.3
use_node_name yes [mysql.---]
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
近期研究独立博客,逐渐会与独立博客同步:
[Linux实用工具]Linux监控工具munin的安装和配置的更多相关文章
- [Linux实用工具]Linux监控工具munin的展示(Nginx)
Munin的安装和配置可以参考第一篇文章: [Linux实用工具]Linux监控工具munin的安装和配置 http://www.cnblogs.com/rond/p/3757804.html Mun ...
- [Linux实用工具]munin-node插件配置和插件编写
前面介绍了2篇munin使用的相关文章: [Linux实用工具]Linux监控工具munin的安装和配置 [Linux实用工具]Linux监控工具munin的展示(Nginx) 这次介绍一下mun ...
- [转发]Linux性能测试工具之Lmbench特性、安装及使用
Linux性能测试工具之Lmbench特性.安装及使用2015年07月16日 10:13:48 Michaelwubo 阅读数:2466Linux性能测试工具Lmbench 是一套简易可移植的,符合A ...
- [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)
场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...
- Linux学习总结(3)——Linux实用工具
1. Windows下同步Linux文件(Linux安装Samba和配置) 场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果wind ...
- Linux操作系统CentOS7.2发行版本的安装与配置(安装是选择服务器类型)
原文地址:http://1130739.blog.51cto.com/1120739/1738791 由于CentOS 7出来不久,对于这个版本的系统安装与配置的教程较少,今天就索性介绍一下CentO ...
- Linux学习入门-------------------------VMvare与镜像的安装与配置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_39038465/article/d ...
- Linux 系统下原版 texlive 2016 的安装与配置
尽管大部分常见的linux系统的包管理器内都会包含texlive,然而最好还是安装TUG发布的原版texlive.这是由于:1,软件仓库内的texlive通常版本较陈旧:2,由于版权因素一些tex宏包 ...
- linux之 NFS服务器与客户端的安装与配置
今天实验室需要搭建NAS,我负责的是NFS的安装与配置,现将整理的文档分享一下: 参考一:Linux下rpm 安装包方式安装 http://linux.chinaunix.net/techdoc/be ...
随机推荐
- .Net jsc.exe 编译js 成exe
- Debian下的crontab保存
nano编译器 ctrl+x然后y,保存退出
- dig 命令
dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法 dig(选项)(参数) 选项 @<服务器地址>:指定进行域名解析的域名服务器: -b<ip地址>:当主 ...
- PHP中的$_SERVER超全局变量
详细参数 PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document ...
- ldconfig命令
ldconfig是一个动态链接库管理命令 为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib) ...
- 验证码识别 图像降噪 Python (一)
原始图片: 降噪后的图片 实现代码: # coding:utf-8 import sys, os from PIL import Image, ImageDraw # 二值数组 t2val = {} ...
- HBase中多Filter查询示例
在Hbase查询中有时需要用到多个Filter关联的查询. 代码如下: ArrayList<Filter> listForFilters = new ArrayList<Filter ...
- JavaWeb 返回json数据的两种方式
1.说明 由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明: A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述! 2. ...
- 如何使用好android的可访问性服务(Accessibility Services)
原文:http://android.eoe.cn/topic/android_sdk * 主题* Manifest声明和权限 可访问性服务声明 可访问性服务配置 AccessibilityServic ...
- jmeter经验----java 读取文件中文乱码问题
很少写java io的代码,今天整了一个发现 本地调试好好的,放到jmeter里就打印乱码.一番折腾,终于搞定~直接上代码: List<Order> orderList = new Arr ...