监控多个系统与munin(Debian Etch)
版本1.0
作者:Falko Timme
在本文中,我将介绍如何使用munin监控多个系统。 munin在服务器的几乎每个方面(负载平均值,内存使用率,CPU使用率,MySQL吞吐量,eth0流量等)都可以生成漂亮的小图形,无需太多的配置。 我将在所有要监视的系统上安装munin客户端(包括munin服务器本身); munin客户端将向munin服务器报告。
本教程是针对Debian Etch编写的,但是配置也应该适用于其他发行版本,而且这些配置也没有什么变化。
我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1初步说明
我们的munin服务器的主机名是server1.example.com
(IP地址: 192.168.0.100
),我们有一个网站www.example.com
,其上有文档根/var/www/www.example.com/web
。
我在这里使用一个munin客户端, server2.example.com
(IP地址: 192.168.0.101
)。 当然,您可以添加任意数量的客户端系统。
2在服务器上安装并配置munin
munin服务器(server1.example.com):
要在Debian Etch上安装munin客户端和服务器,我们这样做:
apt-get install munin munin-node
接下来,我们必须编辑munin配置文件/etc/munin/munin.conf
。 我们希望munin将其输出放在目录/var/www/www.example.com/web/monitoring中
,因此我们更改htmldir的值,我们希望它使用名称server1.example.com
而不是localhost。本地域
在HTML输出中,因此我们将localhost.localdomain
替换为server1.example.com
。 通过这种配置,munin服务器能够监控自身。 没有注释,更改后的文件如下所示:
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes |
接下来,我们创建目录/var/www/www.example.com/web/monitoring
并将其所有权更改为用户和组munin
,否则munin无法将其输出放在该目录中。 然后我们重新启动munin:
mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init.d/munin-node restart
现在等待几分钟,以便munin可以生成第一个输出,然后在浏览器中访问http://www.example.com/monitoring/
,然后看到第一个统计信息。 几天之后,可能看起来像这样:
(这只是munin生产的许多图形的一小部分)
3密码保护munin服务器上的munin输出目录(可选)
munin服务器(server1.example.com):
现在,密码保护目录/var/www/www.example.com/web/monitoring
是一个好主意,除非您希望每个人都能够看到有关您的服务器的每一个小小的统计信息。
为此,我们在/var/www/www.example.com/web/monitoring
中创建一个.htaccess
文件:
vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType Basic AuthName "Members Only" AuthUserFile /var/www/www.example.com/.htpasswd <limit GET PUT POST> require valid-user </limit> |
然后我们必须创建密码文件/var/www/www.example.com/.htpasswd
。 我们要用用户名admin
登录,所以我们这样做:
htpasswd -c /var/www/www.example.com/.htpasswd admin
输入管理员
的密码,你已经完成了!
4在客户端上安装并配置munin
munin客户端(server2.example.com):
在客户端系统上,我们只需安装名为munin-node
的munin客户端软件包即可:
apt-get install munin-node
接下来,我们必须告诉munin客户端,我们的munin服务器server1.example.com
与IP地址192.168.0.100
允许连接从客户端检索细节。 为此,我们打开/etc/munin/munin-node.conf
,并在其底部添加行允许^ 192 \ .168 \ .0 \ .100 $
。 之后,该文件应如下所示:
vi /etc/munin/munin-node.conf
# # Example config-file for munin-node # log_level 4 log_file /var/log/munin/munin-node.log port 4949 pid_file /var/run/munin/munin-node.pid background 1 setseid 1 # Which port to bind to; host * user root group root setsid yes # Regexps for files to ignore ignore_file ~$ ignore_file \.bak$ ignore_file %$ ignore_file \.dpkg-(tmp|new|old|dist)$ ignore_file \.rpm(save|new)$ # Set this if the client doesn't report the correct hostname when # telnetting to localhost, port 4949 # #host_name localhost.localdomain # A list of addresses that are allowed to connect. This must be a # regular expression, due to brain damage in Net::Server, which # doesn't understand CIDR-style network notation. You may repeat # the allow line as many times as you'd like allow ^127\.0\.0\.1$ allow ^192\.168\.0\.100$ |
最后,我们重新启动munin客户端:
/etc/init.d/munin-node restart
5更新munin服务器配置
munin服务器(server1.example.com):
现在我们必须告诉munin服务器有另外一个监控系统( server2.example.com
,IP地址为192.168.0.101
)。 为此,我们打开/etc/munin/munin.conf
,并为server2.example.com
添加一个节,使文件如下所示:
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes [server2.example.com] address 192.168.0.101 use_node_name yes |
接下来,我们重新启动munin:
/etc/init.d/munin-node restart
几分钟后,您应该在munin页面( http://www.example.com/monitoring/
)上找到server2.example.com
的链接:
当您点击该链接时,您将看到server2.example.com
的图表。
6链接
- munin: http : //munin.projects.linpro.no