商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 服务器频道 > 正文

用Heartbeat配置Linux高可用性集群(下)

六、配置Mon

    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
    4 下载安装fping

     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
    5 下载安装Mon
#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
    建立Mon报告目录和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
    #vi /etc/mon/mon.cf

    内容如下:
    不要写跟随他们的箭和数字; 他们仅仅出现在这里说明参数。
alertdir = /usr/lib/mon/alert.d ← [1] mondir = /usr/lib/mon/mon.d ← [2] logdir = /usr/lib/mon/logs ← [3] histlength = 500 ← [4] dtlogging = yes ← [5] dtlogfile = /usr/lib/mon/logs/dtlog ← [6] hostgroup clusternodes clnode1 clnode2 clnode3 ← [7] ← [8] watch clusternodes ← [9] service cluster-ping-check [10] interval 5s [11] monitor fping.monitor [12] period wd {Sa-Su} [13] alert mail.alert alert@domain.com ← [14] upalert mail.alert alert@domain.com ← [15] alertevery 1h ← [16]

    说明如下:

    [ 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 输出如下: start time: <current date> end time : <current date> duration : 0 seconds -------------------------------------------------------- reachable hosts rtt -------------------------------------------------------
209.100.100.2 58.10 ms
    上面的报告IP地址为209.100.100.2以58.10个秒响应fping。
    如果这脚本不适当地工作,你能需要告诉Perl找到fping的工具。编辑fping.monitor文件:
    my $CMD = "/usr/local/sbin/fping -e -r $RETRIES -t $TIMEOUT";
    要测试电子邮件警报,输入:
    #echo "Testing 123" | /usr/lib/mon/alert.d/mail.alert alert@domain.com
    alert@domain.com 是电子邮件的发送地址。

    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高可用性集群的从部署到监视完整过程。
1 2 3 4
【内容导航】
第1页: 配置Stonith 第2页: 配置内核看门狗支持Heartbeat
第3页: 测试Heartbeat配置 第4页: 配置Mon
©版权所有。未经许可,不得转载。
[责任编辑:杨晓勇]
[an error occurred while processing this directive]
本类最新产品
本类最热产品