用Munin监控Linux服务器性能

运维 系统运维
监控LINUX主机的性能是一个很复杂的操作,它有赖于命令行工具和集中数据。分析可能会很困难,需要大量的数据来建立相互关系从而得出结论。好在我们可以用一些现有工具来搭建这个过程的模型,让数据分析变得相对容易一些。接下来我们能看到其中的一个工具,它叫做Munin。

监控LINUX主机的性能是一个很复杂的操作,它有赖于命令行工具和集中数据。分析可能会很困难,需要大量的数据来建立相互关系从而得出结论。好在我们可以用一些现有工具来搭建这个过程的模型,让数据分析变得相对容易一些。接下来我们能看到其中的一个工具,它叫做Munin(代表记忆,是奥丁神的一只乌鸦的名字)。

Munin是通过客户端-服务器架构收集数据并将其图形化的工具。Munin允许你跟踪你的主机的运行记录,就是所谓的‘节点’,然后将它们发送到中央服务器,随后你就能在这里以图像形式展示它们。以下你可以看到一个用Munin图形界面显示磁盘IO信息的例子:

Munin,Linux,监控,服务器性能

Munin可以通过安装包快速简易地安装到大多数Linux系统上。在红帽和Ubuntu/Debian上你都需要Munin,munin-node和munin-common安装包(这个组合假设你还需要监控服务器的情况),以红帽为例:

$ yum install munin munin-common munin-node

Munin安装将它的配置文件放在目录/etc/munin下。让我们就从配置munin服务器开始吧。主要的服务器配置文件是munin.conf,它控制服务器的设置和每个节点的配置信息。在大多数情况下用默认设置就可以了,但是其它几个选项你也应该知道:dbdir、htmldir、logdir 和rundir。

Dbdir设置决定munin把收集到的RRD格式的统计数据放在哪个目录下,在红帽和ubuntu系统中默认的是放在/var/lib/munin这个目录下。

Htmldir设置控制munin输出数据的位置,它是以html文件来显示图形界面的。在红帽系统中默认的是放在/var/www/html/munin目录下,而在ubuntu中的是放在/var/cache/munin/www目录下。这个目录正是我们一般为网页服务器服务时所采用的目录,例如Apache。***的操作办法之一就是运用Apache虚拟主机,创建一个虚拟主机可以用来图形化显示我们的节点状态:

<VirtualHost *:80>
     ServerAdmin webmaster@localhost
     ServerName   munin.example.com
     DocumentRoot /var/www/html/munin
     <Directory />
         Options FollowSymLinks
         AllowOverride None
     </Directory>
     LogLevel notice
     CustomLog /var/log/apache2/munin.access.log combined
     ErrorLog /var/log/apache2/munin.error.log
     ServerSignature On
</VirtualHost>

Logdir和rundir设置控制munin的日志文件和pid文件放置位置。

***,我们也必须在munin.conf文件中定义所有将向服务器发送报告的节点主机,命令是:

[hostname.example.com]  address 10.0.0.1  use_node_name yes 
[hostname2.example.com]  address 10.0.0.2  use_node_name yes

括号中是每个节点的名字,后面是它的IP地址,use_node_name命令控制munin命名节点的方式,如果后面跟的参数为yes就是用括号中的值来命名,如果是no则将执行一个DNS查询。另外,你可以用includedir选项来命名一个单独的目录,munin将在这里加载所有的文件,例如:

includedir /etc/munin/munin-conf.d/

我经常用puppet导出资源来管理munin配置,首先在每个puppet客户端上创建一个独立的文件,然后用munin在这个文件中加载节点信息。

到这一步,服务器就已经配置好了,接下来我们需要配置节点。将munin-node包安装在每个节点并且配置/etc/munin目录下的munin-node.conf文件。大多数配置信息都不需要改变,但是你需要更改allow选项,它控制哪一个主机能访问munin和检索统计。我们用IP地址来配置munin服务器,例如:

allow ^10\.0\.0\.100$

正如你看到的,IP地址必须用perl常用格式来输入。如果你的munin服务器不只一台,那么你可以用多行允许命令来定义它们。

每个munin节点都用tcp端口4949来和munin服务器通讯,所以你必须确保这个端口在主机防火墙上是打开的,并且在节点和服务器中间环节的任何一个防火墙上都允许数据通过。你可以在munin-node.conf文件中的port选项来定义这个端口号。

除了基本设置外,我们还需要指示节点哪些数据是需要收集的。Munin采用插件程序的架构方式来定义监控内容。例如,有专门监控CPU的插件,还有监控负载、内存和其它内容的各种插件。Munin的所有插件清单可以在/etc/munin/plugins目录下找到,它们以链接到插件的sym-links形式显示。添加一个插件到munin的过程就是将插件文件的链接写入到/etc/munin/plugins目录下。如果插件需要某个配置,例如定义运行插件要求的用户,你都可以在目录/etc/munin/plugins.conf.d下找到该配置文件。

munin默认包含很丰富的内容,你可能不需要改变初始的基本设置,因为它们已经提供了足够的采集数据。Munin还提供大量有用的插件,你还能在社区中找到许多别人交流的插件。你可以用你熟悉的语言很容易开发出新的插件来。

***,我们通过运行munin-node init脚本来启动munin服务器和节点。

$ sudo /etc/init.d/munin-node start

这样就能开始munin监控并收集需要的数据,munin控制将周期性地查看每个节点的数据然后将其上传到munin服务器上。接着就可以通过munin控制上的网页服务来查看结果数据了。

所有的内容就是这些了。现在你可以用图形界面查看你的服务器的行为状态,并且可以探测到性能趋势和可能发生的问题。如果你觉得munin不适合你,也可以考虑使用另一个叫做collected的工具,它和munin比较相似,用C语言编写,它提供的功能可能比munin更加完善。它要求安装额外的软件来获取这些功能,但也是一个不错的可供参考的平台。

【编辑推荐】

  1. Nagios监控Windows 2003服务器的六大注意
  2. 国外十大流行的服务器监控工具(外篇)
  3. 超经典!五大Linux网络监控工具推荐
责任编辑:yangsai 来源: TechTarget中国
相关推荐

2009-04-28 19:38:02

LinuxSrvRepor远程监控

2020-10-24 15:31:10

Linux服务器工具

2022-05-05 09:27:31

Linux服务器优化

2021-11-26 13:43:01

服务器虚拟化数据中心

2014-01-02 15:16:42

PythonLinux服务器服务器监控

2011-03-25 15:01:25

Cacti监控Windows

2011-03-31 12:48:04

cactiLinuxWindows

2020-06-07 11:54:34

Linux服务器命令

2019-06-13 17:15:30

监控Linux服务器

2011-03-22 09:07:13

Nagios监控Linux

2011-04-02 11:12:48

cacti监控windows

2018-09-03 09:22:25

监控服务器性能

2011-04-06 14:24:28

nagios监控Linux

2011-04-06 15:05:56

nagios监控Linux

2011-08-22 12:25:08

nagios

2019-07-31 14:36:46

Linux服务器框架

2010-02-03 10:24:48

监控宝监控Linux

2011-04-06 15:05:58

nagios监控Linux

2011-01-21 14:52:37

Sendmail

2012-05-07 10:08:25

Linux
点赞
收藏

51CTO技术栈公众号