1 什么是Mon
mon是针对linux开发的工具,但众所周知在sorlaris下他也可以工作。因为客户和服务端都是由perl语言书写,因此在轻便性上不会有问题。
简单来说Heartbeat用来实现心跳和高可用性,Mon用来监控服务 。
2 Mon方案
图 4 是基于集群监视的Mon方案。

图 5 是Mon检查每个集群节点MIB的过程

3 首先自行搜尋以下的 Perl 模块
| perl-Mon-0.11-2.2.el5.rf.noarch.rpm perl-Convert-BER-1.31.01-1.2.el5.rf.noarch.rpm perl-Net-Telnet-3.03-1.2.el5.rf.noarch.rpm perl-Time-HiRes-1.55-3.i386.rpm perl-Time-Period-1.20-2.el5.rf.noarch.rpm |
| perl -MCPAN -e shell cpan>install Time::Period cpan>install Time::HiRes cpan>install Convert::BER cpan>install Mon::Protocol cpan>install Mon::SNMP cpan>install Mon::Client |
Ping命令大概是网管员最常用的命令了,使用Ping可以监测网络的通断、设备是否宕机,遗憾的是每次只能针对一台设备。在一个拥有20余台服务器和80多个可网管交换机的局域网内,Ping上一遍是很艰难的事情,而运行在Linux下的Fping(http://www.fping.com)可以轻松完成这一工作。Fping 命令与Ping命令非常相似,使用ICMP回应请求和应答来确定系统的可达性。它提供了一些Ping没有的特殊功能,比如,Fping可以在命令行上指定主机名或IP地址的列表、可以处理一个包含主机名或IP地址清单的文件。Fping并不是发送一个请求到单一目标(Ping的做法),而是用循环的方法发送ICMP请求到每个目标。另外,Fping可以用于脚本编程中。
| #wget http://www.kernel.org/pub/software/admin/mon/fping-2.2b1.tar.bz2 #bunzip2 fping-2.2b1.tar.bz2 #./configure #make #make check #make install |
| #wget ftp://ftp.kernel.org/pub/software/admin/mon/mon-0.99.2.tar.gz #tar -xzf mon-0.99.2.tar.gz #cd mon-0.99.2 #mkdir /etc/mon #cp auth.cf mon.cf /etc/mon #mkdir /usr/lib/mon #cp -r alert.d mon.d state.d mon /usr/lib/mon |
|
#mkdir /usr/lib/mon/log.d #vi /etc/mon/auth.cf |
| disable: root dump: root enable: root get: root loadstate: root reset: root savestate: root set: root start: root stop: root term: root |
内容如下:
不要写跟随他们的箭和数字; 他们仅仅出现在这里说明参数。
|
alertdir = /usr/lib/mon/alert.d ← [1] hostgroup clusternodes clnode1 clnode2 clnode3 ← [7] |
[ 1 ]警报脚本的路径。
[ 2 ]监视器脚本的路径。
[ 3 ]报告文件的路径。
[ 4 ]→事件的最大限度数字在报告中节省。
[ 5 ]→启用宕机的日志记录成为可能。
[ 6 ]→报告到宕机事件。
[ 7 ]被分配到一组的丛群节点的列表。
[ 8 ]→在每个主机之后要求空的行。
[ 9 ]→监视组观看所有节点。
[ 10 ]→称为服务任何事物你想要。
[ 11 ] fping的工作频率。
[ 12 ]→使用fping.monitor脚本。
[ 13 ]→针对语法输入:perldoc Time::Period
[ 14 ]→当节点之一断开时。
[ 15 ]→当节点之一连接时。
[ 16 ]→每小时仅仅发送警报的电子邮件一次。
Vi /etc/services,添加两行:
mon 2583/tcp # MON
mon 2583/udp # MON traps
6 通过手工运行fping.monitor和mail.alert脚本的测试
脚本命令如下:
|
#/usr/lib/mon/mon.d/fping.monitor clnode1 -------------------------------------------------------- |
7 使用调试方式时开始Mon测试
#/usr/lib/mon/mon -d
正常输出如下:
PID 8211 (clusternodes/cluster-ping-check) exited with [0]
Mon发送的电子邮件警报如下:
Subject: ALERT clusternodes/process-check: localhost:ntpd,ypbind
Summary output : localhost:ntpd,ypbind
Group : clusternodes
Service : process-check
Time noticed : <Time and Date>
Secs until next alert :
Members : localhost
Detailed text (if any) follows:
-------------------------------
localhost:ntpd Count=0 Min=0 Max=0
localhost:ypbind Count=0 Min=0 Max=0
到此为止笔者简单介绍了使用Heartbeat 2.0配置Linux高可用性集群的从部署到监视完整过程。
![]() |

