报告警察方与故障转移

本章首要从大型网址的后台监察和控制机制、报告警方机制和故障转移、服务切换等内容来演讲。然后提交1个监理、报告警察方和故障转移的缓解方案。

一.一 监察和控制预警

今世大型互连网集团重点有电子商务公司、社交网址公司和找出引擎集团。在电子商务网址公司中,taobao.com的点击量在国内是参天的。日点击量20亿上述。而以此点击量还不是均匀分不到2四个钟头,而是遍布在多少个日子段。因为人们的购物时间是汇总在多少个例外的光阴段的。这样,平均每小时的点击量更加高。在20十年天猫.com的交易额为300亿元,而平均每分钟交易额为5-10万元。借使taobao.com的服务器宕机一钟头,集团的间接损失为300-600万,在贸易高峰期可能越多。而在交易高分期,宕机的概率更加大,因为服务器的载荷在交易高峰期是最高的。同理可得监察和控制和预警在大型网址的平凡营业中是可怜首要的。

在整整网址的后台架构中,物理设备首要由种种主机和置换设备组成。所以对1切后台系统的监察重要从主机监察和控制和沟通设备监察为主。依据监察粒度以及业务必要,须要对利用过程张开监察比如web
server
、数据库等。数据库(比如MySQL)监控,假设监察和控制粒度相比大,那么可以从以下多少个地点开始展览监督检查:

1) 监察和控制连接数

二) 监察和控制时间段慢查询次数

三) 监察和控制查询缓存使用景况

4) 监察和控制主从延迟时间

5) 监控innodb buffer pool  size使用情形

陆) 监察和控制sql线程和io线程(有replication供给的架构)

柒) 监察和控制大结果集查询语句

8) MySQL的幸存及data file&log file那个是更基本的

一.2 主机监察和控制

1台主机包罗cpu、内存、外设等设备,而cpu、内部存款和储蓄器、外设由总线相连(SMP架构,NUMA框架结构监察和控制类似)。如图8-二所示。

皇冠直营现金网官方网 1

                                                                                    
图8-2

如图所示,主机由cpu、外设、内部存款和储蓄器、总线组成。而一台主机要对外提供访问,必要由网卡提供网络连接。所以对壹台主机的监察从cpu、内部存款和储蓄器、外设以及网卡入手。

常用的监察软件有Nagios、Cacti、Mrtg等。假使厂家有供给,能够友善付出相应的绘图软件及数量搜罗软件完成监察和控制显示、报告警察方和故障转移等成效。上边采纳Mrtg再结合shell程序实现监察和控制,给出2个主机监察和控制消除方案。

1.2.一 全方位监察和控制主机

对主机监察和控制,首要从cpu、内部存款和储蓄器、外设、网卡使用状态及质量举办监察和控制。包含cpu的使用量及空闲量、内部存款和储蓄器的使用量及空闲量、磁盘的使用量及读写速度、网卡的进出流量等。因为使用Mrtg举办监察,所以在此以前要设置SNMP和M
rtg软件。

1.2.1.1 cpu监控

重大监督检查cpu的运用比例,空闲百分比。在中标安装snmp和mrtg的前提下,首要步骤如下(整个监察和控制项目布局在/root/Desktop/monitor下):

(一)编写shell监察和控制程序 cpuinfo.sh并赋权限为750。

[root@localhost monitor]# cat cpuinfo.sh

#!/bin/bash

#author         longxibendi

#blog           http://blog.csdn.net/longxibendi

#function       getcpu usage information

/usr/bin/sar -u 1 3 > cpu.log

cat cpu.log | grep Average | awk ‘{ print$3+$5;}’

cat cpu.log | grep Average | awk ‘{ print$8;}’

/usr/bin/uptime

/sbin/ifconfig | grep “inet addr” |head -n 1 | awk ‘{print $2;}’

(二配置mrtg的配置文件mrtg.cfg增添以下内容。

Target[localhost_cpu]:`/root/Desktop/monitor/cpuinfo.sh`

Xsize[localhost_cpu]: 300

Ysize[localhost_cpu]: 100

Ytics[localhost_cpu]: 10

MaxBytes[localhost_cpu]: 100

Title[localhost_cpu]: CPU State

PageTop[localhost_cpu]: <H1>CPU Stateof  Server</H1>

ShortLegend[localhost_cpu]: %

YLegend[localhost_cpu]: CPU (%)

Legend1[localhost_cpu]: Used

Legend2[localhost_cpu]: Total

LegendI[localhost_cpu]: CPU Used

LegendO[localhost_cpu]: CPU IDEL

Options[localhost_cpu]:  growright,gauge,nopercent

(三)制作index.html并扭转监察和控制数据

indexmaker  /etc/mrtg/mrtg.cfg >/var/www/html/index.html

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

该监察和控制措施是先经过施行顺序cpuinfo.sh获得cpu的使用量和空闲量,然后通过mrtg把相应的数量水墨画出来,形成图形。结果如图八-贰-1-壹-1所示。

皇冠直营现金网官方网 2

                                                 图 8-2-1-1-1

如图八-二-一-1-1所示,在纵坐标中,粉红白线条表示CPU空闲量,木色线条表示CPU使用量。横坐标为时间轴。改图为一天的CPU使用状态的总结音信。其余MRTG还会总结处十一二21日、7月、一年CPU的采用情状。分别入下图捌-二-一-一-二、八-二-一-1-三、8-贰-壹-壹-肆所示。

皇冠直营现金网官方网 3

                                                     图8-2-1-1-2

皇冠直营现金网官方网 4

                                                图8-2-1-1-3

皇冠直营现金网官方网 5

                                          图8-2-1-1-4

一.二.一.二 内部存款和储蓄器监察和控制

重在监督内部存款和储蓄器的选拔状态,包罗内存使用量和空闲量。首要步骤和次序如下:

(壹)编写shell监察和控制程序 meminfo.sh并赋权限为750。

[root@localhost monitor]# cat meminfo.sh

#!/bin/bash

#author         longxibendi

#blog           http://blog.csdn.net/longxibendi

#function       getmem usage information

/usr/bin/free | grep Mem > mem.log

cat mem.log | awk ‘ { print $3;}’

cat mem.log | awk ‘ { print $2;}’

/usr/bin/uptime

/sbin/ifconfig | grep “inet addr” |head -n 1 | awk ‘{print $2;}’

(二布置mrtg的布置文件mrtg.cfg增多以下内容。

Target[localhost_mem]:`/root/Desktop/monitor/meminfo.sh`

Xsize[localhost_mem]: 300

Ysize[localhost_mem]: 100

Ytics[localhost_mem]: 10

MaxBytes[localhost_mem]: 4096

Title[localhost_mem]: Memory Stateof  Server

PageTop[localhost_mem]: <H1>MemoryState of Server</H1>

ShortLegend[localhost_mem]: B

kmg[localhost_mem]: M

YLegend[localhost_mem]: Memory Usage

Legend1[localhost_mem]: Used

Legend2[localhost_mem]: Total

LegendI[localhost_mem]: Used

LegendO[localhost_mem]: Total

Options[localhost_mem]:growright,gauge,nopercent

(三)制作index.html并转移监控数据

indexmaker  /etc/mrtg/mrtg.cfg >/var/www/html/index.html

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

该监察和控制措施是先经超过实际行顺序meminfo.sh获得内部存款和储蓄器的使用量和空闲量,然后通过mrtg把相应的多少美术出来,变成图形。结果如图捌-二-一-贰-壹所示。

皇冠直营现金网官方网 6

                  图8-2-1-2-1

如图八-二-一-2-1所示,横坐标表示时间,纵坐标表示内存使用量。其棕辣椒红部分为内部存款和储蓄器使用量,品蓝部分为内部存款和储蓄器总的数量。图八-二-一-二-一为当天内部存款和储蓄器使用处境。周、月、年的来得图省略。

1.二.1.三 外设磁盘监察和控制

珍视监督检查磁盘的施用情况磁盘,包含磁盘的读出速度和写入速度

首要步骤和程序如下:

(一)编写shell监察和控制程序 ioinfo.sh并赋权限为750。

[root@localhost monitor]# cat ioinfo.sh

#!/bin/bash

#author         longxibendi

#blog           http://blog.csdn.net/longxibendi

#function       getinformation  of  sda’s io

/usr/bin/iostat  |grep  “sda ”   > ioinfo.log

cat ioinfo.log | awk ‘ { print $3;}’

cat ioinfo.log | awk ‘ { print $4;}’

/usr/bin/uptime

/sbin/ifconfig | grep “inet addr” |head -n 1 | awk ‘{print $2;}’

(2计划mrtg的铺排文件mrtg.cfg增添以下内容。

Target[localhost_io]:`/root/Desktop/monitor/ioinfo.sh`

Xsize[localhost_io]: 300

Ysize[localhost_io]: 100

Ytics[localhost_io]: 10

MaxBytes[localhost_io]: 100

Title[localhost_io]: IO Stateof  Server

PageTop[localhost_io]: <H1>SDA State ofServer</H1>

ShortLegend[localhost_io]: blocks

YLegend[localhost_io]: Blk_read/s Blk_wrtn/s

Legend1[localhost_io]: Blk_read/s

Legend2[localhost_io]: Blk_wrtn/s

LegendI[localhost_io]: Blk_read/s

LegendO[localhost_io]: Blk_wrtn/s

Options[localhost_io]: growright,gauge,nopercent

(三)制作index.html并扭转监察和控制数据

indexmaker  /etc/mrtg/mrtg.cfg >/var/www/html/index.html

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

该监督措施是先通过进行顺序ioinfo.sh得到磁盘的读速度和写速度,然后通过mrtg把相应的数量美术出来,变成图形。结果如图8-贰-一-3-一所示。

皇冠直营现金网官方网 7

                       图8-2-1-3-1

如图八-二-一-三-一所示,横坐标表示时间,纵坐标表示磁盘速度。其蟹黄色部分为磁盘读取速度,棕色类部分为磁盘写入速度。

图八-2-一-三-1为当天磁盘scsi磁盘的第2块分区使用意况,周、月、年体现图省略。假使想增大监察和控制粒度,能够设想监控inode节点数使用情况。因为节点数不够用也会报错。

壹.二.一.四 网卡监察和控制

重大监督网卡的流量,包蕴网卡的入数据流量和出多少流量

驷马难追步骤和程序如下:

(一)
生成新的MRTG配置文件,通过local登612七.0.0.一,并依照网卡设备名进行数量流量计算,总括的时辰轴从右到左推移,并以bit为单位,总计结果保存在/var/www/html中。

cfgmaker –global “WorkDir: /var/www/html” –global”Options[_]:
growright,bits” –ifref=name local@127.0.0.1 >/etc/mrtg/mrtg.cfg

(贰)通过mrtg.cfg配置文件生成用于http访问的页面文件mrtg.html。

indexmaker /etc/mrtg/mrtg.cfg > /var/www/html/mrtg.html

(三) vi /etc/cron.d/mrtg中输入以下内容

*/1 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg
/etc/mrtg/mrtg.cfg–lock-file /var/lock/mrtg/mrtg_l –confcache-file
/var/lib/mrtg/mrtg.ok

(四)执行以下内容

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
–lock-file/var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok

该监察和控制措施用于监察和控制网卡的流量,然后通过mrtg把相应的数量美术出来,形成图形。结果如图捌-贰-一-四-1所示。

皇冠直营现金网官方网 8

                   图8-2-1-4-1

如图四-二-1-4-一所示,横坐标表示时间,纵坐标表示网卡的流量。其淡白法国红部分代表网卡的入流量,蛋黄部分代表网卡的出流量。周、月、年的来得图省略。

1.三 短信报告警方

乘机移动通信设备的推广以及自动化报告警察方的供给,短信报警进而首要。在集团级应用中,通过买卖短信运维商,比如中国邮电通讯、中国电信、中国移动的短信网关服务器的劳动再组成脚本程序完毕短信报告警察方。实际上短信网关服务器起到调换传输通讯格局的功效。

1.三.一 短信报告警察方达成

在店堂级应用中,通过购买短信运行商的短信网关服务器的服务来转载短信,在上面方案中,我们利用139信箱绑定手提式有线电话机号码,开通邮件提示功效,同样实现短信报警。架构图如图捌-三-一所示。

皇冠直营现金网官方网 9

                                                                             
图8-3-1

如图八-三-一所示,节点C为被监察和控制的服务器,节点B为监察系统的服务器,节点A为运动运行商的短信网关服务器。通过脚本程序从C得到监察和控制数据,判读是或不是超越阈值,要是超越,则将报告警察方新闻作为内容通过B上的sendEmail软件将1陆三信箱作为发送方,发送邮件到13九邮箱
longxibendi@13九.com,然后由于开始展览邮件短信唤醒,移动运行商会将邮件消息转变为短信通过短信网关服务器发送新闻到基站,最终传输到手提式有线电话机中。详细新闻如下所述。

一.三.一.1 短信报警,监察和控制CPU质量负载

CPU的属性指数,主要查看CPU近来的负荷情形,因为CPU某1整日的使用量达到十分大值是足以承受的,但只要某三个小时段负载持续走高,那么
CPU的天性以及全部种类的特性将会下落,甚至主机会宕机,截止服务。所以大家编辑程序uptime.sh监察和控制CPU负载景况,mail_uptime.sh对CPU的载荷进行判别然后实践报告警察方,最后经过cron义务设置进行顺序的间隔时间来定期的监督CPU。因为测试原因,暂时把CPU在在一份之内的载荷阈值设为0.0一,假设赶过此数值,则张开短信报告警察方。代码如下。

(1)uptime.sh

#!/bin/bash

#author      longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     to get load

cat/proc/loadavg   | awk ‘

             ( $1 >= 0.01 )  { print $0;}

(2)mail_uptime.sh

#!/bin/bash

#author         longxibendi

#blog           http://blog.csdn.net/longxibendi

#function       to send mail if   system load averages for the past 1 
minutes greater than  0.01 .

#ERROR:  if you write like this         

######################ERROR##################################

#####   if test  ! -z ” ` sh uptime.sh `”  ;then

if     test  !  -z   “`sh  uptime.sh`”      ; then

/usr/local/bin/sendEmail-f monitor_sys@163.com -t longxibendi@139.com
-s smtp.163.com -u “loadWarning” -xu monitor_sys -xp 123456789 -m ”  `
uptime ` “

fi

壹.三.一.贰 短信报告警察方,监控CPU使用量

运用程序mail_cpu.sh对CPU的使用量举行监察和控制,CPU的使用量首要包含系统经过(线程)使用量和用户过程使用量。利用sar搜集数据,实行决断。sar的5/10搜罗结果如下:

sar–u 1 2

Linux2.6.18-194.el5 (localhost.localdomain)    06/13/2011

07:58:50PM       CPU     %user    %nice   %system   %iowait   %steal    
%idle

07:58:51PM       all      1.00     0.00      2.00      0.00     0.00    
97.00

07:58:52PM       all      0.00     0.00      0.00      0.00     0.00   
100.00

Average:          all      0.50     0.00      1.01      0.00    
0.00     98.49

程序mail_cpu.sh如下:

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     email and SMS  alert if usage of cpu  is greater than 1%

if[   `/usr/bin/sar -u 1 3 | grepAverage  | awk ‘ { printf(
“%d”,$3+$5);}’` -ge 1  ] ;then

      /usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “cpu warning” -xu monitor_sys -xp
123456789  -m “` /usr/bin/sar -u 1 3  |  sed-e ‘1,2d’ -e  ‘4,6d’ `” ;

fi

程序mail_cpu.sh当发现cpu使用量超越一%时,举行短信报告警察方。

1.叁.1.三 短信报警,监察和控制内部存款和储蓄器使用量

内部存款和储蓄器的使用量,是另三个反馈当前服务器品质和负载的目的。使用free.sh对内部存款和储蓄器使用量实行搜罗,使用mail_free.sh对内部存款和储蓄器的使用量进行监察,达成短信报告警方。具体程序如下:

free.sh程序

#!/bin/bash

#author      longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     get the percentage of memory usage

fr=”`free`”;

free| grep Mem   |  awk -v f=”$fr”  ‘

                           ($3/$2 >= 0.5) {print  f ;}

                          ‘

unsetfr

mail_free.sh程序

#!/bin/bash

#author      longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     to send email to  longxibendi@139.com   if  the
percentage of  memoryusage    greater than or equal

iftest ! -z   “`sh free.sh`” ;then

/usr/local/bin/sendEmail-f monitor_sys@163.com -t longxibendi@139.com
-s smtp.163.com -u “memorywarnning” -xu monitor_sys -xp 123456789 -m
“` sh free.sh| awk -va=”****” ‘ { print
$1,a,$2,a,$3,a,$4,a,$5,a,$6;}’`”

Fi

一.三.一.4 短信报告警察方,监察和控制磁盘使用量

重大对磁盘的分区使用量实行监察,通进度序df.sh对磁盘使用量举行数据搜罗,通过mail_df.sh对df.sh搜聚的多少开始展览解析,如若发现超过阈值,举办短信报警。设置的阈值为十一分之7。即磁盘分区使用量超过七成开始展览报告警察方。程序如下。

df.sh程序

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     find which   disk‘s    Available amount   less than 20%

df -hm | awk ‘

      ( $3/$2 >= 0.7 ) {  printf “%s\n” ,$0; }

       ‘

mail_df.sh程序

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     sendmail to   longxibendi@139.com  if the  amount of
available disk    less than 20%

#if[  `./df.sh | wc -l `   >=  1     ] ; then

if  [   `./df.sh | wc -l `   >  0  ]  ; then

/usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “disk warning” -xu monitor_sys
-xp 123456789  -m “`./df.sh | awk ‘ { print  $5,$6}’ ; date ` “

fi

一.3.1.5 短信报告警察方,监察和控制磁盘的读写速度

读速度监察和控制以及短信报告警察方,使用程序mail_io_read.sh。当发现磁盘读速度低于每秒100Blocks时,推行短信报告警察方。程序如下。

mail_io_read.sh程序

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     SMS and Email  alert if   IO  error

if[ `/usr/bin/iostat | grep sda | head -n 1 | awk
‘{printf(“%d”,$3);}’`-le 100 ] ;then

       /usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “IO warning” -xu monitor_sys -xp
123456789  -m ” `iostat | sed -e ‘1,5d’ -e ‘8,21d’|awk -v a=”||”
‘{print $1,a,$2,a,$3,a,$4,a,$5,a,$6;}

‘`”;

fi

写速度监察和控制以及短信报告警察方,使用程序mail_io_write.sh。当发现磁盘写速度低于每秒拾0Blocks时,推行短信报告警察方。程序如下

mail_io_write.sh程序

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     SMS and Email  alert if   IO  error

if[ `/usr/bin/iostat | grep sda | head -n 1 | awk
‘{printf(“%d”,$4);}’`-le 100 ] ;then

       /usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “IO warning” -xu monitor_sys -xp
123456789  -m “`iostat | sed -e ‘1,5d’ -e ‘8,21d’|awk -v a=”||” ‘{print
$1,a,$2,a,$3,a,$4,a,$5,a,$6;}

‘`”;

fi

一.三.1.陆 短信报警,监控网卡的情形

提供网络服务器的服务器,必须有网卡,1旦网卡出现难题,若是只有一块出口网卡,那么预示着本机的劳动也停下了。所以网卡的督察11分关键。下边选择mail_eth0.sh对网卡实行状态监察和控制。程序如下。

mail_eth0.sh

!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     SMS and Email alert

if[ `sar -n DEV 1 1 | grep Average | sed -e ‘2d’ -e ‘4d’ | tail -n 1 |
awk'{printf(“%d”,$5);}’` -eq 0 ];then

/usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “eth0 error” -xu monitor_sys -xp
123456789  -m “`date `” ;

fi

壹.四 故障转移

故障转移是指,当二个节点依然一个劳务发生故障,比如主机僵死,进度僵死之后,能够有相应的监督检查系列发现故障,并在较短的时辰内开发银行备用机器,达成故障转移。那是承接保险大型网址的高可用性最为主要的法子和方法之1。故障转移有两样的几个品级,比如主机操作系统的故障转移,数据库的故障转移,应用进度的故障转移等。本节任重先生而道远给出应用进度的故障转移,以检验Nginx进程为例。

一.四.一 WebServer故障转移化解方案

运营条件如图捌-四-1所示。

皇冠直营现金网官方网 10

                                                                                             
图8-4-1

如图8-四-一所示,在IP:17二.2玖.141.11二和172.2九.1四一.113上同时安排多少个web
server
Nginx服务器,并且布署故障转移程序monitor_nginx程序相互监督对方的Nginx运转状态。当发现另壹方的Nginx服务器结束今后,马上改换本机IP为对方IP,发送短信报告警察方然后启用本机的Nginx程序来提供劳务。详细布置情况如下所示:

17二.2九.1四一.11贰    布置  Nginx  与  法斯特CGI(对外开放)

17二.2九.1肆一.11三    铺排  Nginx  与  法斯特CGI(作为热备)

172.29.141.115    部署  MySQL(或者MySQL-Proxy)

1.4.1.1 monitor_nginx程序

monitor_nginx 程序如下:

#!/bin/bash

#author      longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     failover the  web server    and send message to SA

#  send email to   longxibendi@139.com

function_sendEmail()

{

       /usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “web sever down” -xu monitor_sys
-xp123456789  -m “` date ` “

}

#皇冠直营现金网官方网,  change  ip address  

function_change_ip()

{

         /sbin/ifconfig eth0     172.29.141.112  broadcast
172.29.141.255  netmask 255.255.255.0  up

         /sbin/route     add    -host   172.29.141.112   dev eth0

         /sbin/arping    -I eth0                -c   3  -s  
172.29.141.112    172.29.141.115

       ### /sbin/arping   is   to   add  arp list     in 
172.29.141.115   

}

#  to  start  local    nginx   web   server 

function_start_nginx_server()

{

       ulimit -SHn 65535

         /usr/local/webserver/php/sbin/php-fpmstart

         /usr/local/webserver/nginx/sbin/nginx

}

#main function

function_main()

{

while    true

do

      http_status_code=`curl  -o /dev/null -s -w %{http_code} 
http://172.29.141.112/wordpress/\`

#    echo “$http_status_code”;

      if [ ${http_status_code}  !=  200  ];then

                    function_sendEmail ;

                    function_change_ip ;

                    function_start_nginx_server;

      fi

      # execute    curl   per  3  seconds

      sleep  3

done

}

function_main;

一.4.1.2 monitor程序表达

先后表达:

unction_sendEmail                     发送email到139邮箱,报警

function_change_ip                   
浮动更换ip,加多路由,修改db的arp表

function_start_nginx_server          
运维本机nginx服务器,这一步也能够调动,假如本机的nginx已运营的话

function_main                         主函数,通过curl 网站获得状态码

1.4.1.3 monitor_nginx程序算法

宗旨算法

一.因而curl检验故障

2.经过转变修改(ifconfig)ip  完成故障切换(failover)

一.五 主机节点监察和控制(宕计算机检索查实验与报警)

一台主机除了对其CPU、内存、外设、网卡举办监督检查告警,更亟待对全部主机实行监察,这些监察和控制告警首借使监督检查主机是还是不是在运作。宕机对运行人士来讲,最愁肠了。怎么着检查实验一台服务器是或不是还在正规运转,即便该服务器宕机,怎么样在第一时半刻间监测到并文告一线运营人士张开体贴,最大化收缩损失。上边包车型地铁顺序
monitor_down.sh正是化解上述难点。

1.5.1 monitor_down.sh程序

monitor_down.sh程序如下。

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     ping a  host   and  output  to  file   
ping_longxibendi.log

#ping  destination

function_ping()

{

ping  -c3     172.29.141.115  > ping_longxibendi.log

}

#downtimedetection and  send email to   SA

function_downtime_detection_AND_sendemail()

{

      if  [“`cat ping_longxibendi.log | grep Unreachable`”  != “”   
] ; then

             /usr/local/bin/sendEmail -fmonitor_sys@163.com -t
longxibendi@139.com -s smtp.163.com -u “Serverdowntime” -xu monitor_sys
-xp 123456789 -m “`date;echo”172.29.141.115” ` “

       fi

}

#mainfunction

function_main()

{

while    true

do

      function_ping ;   

      sleep  2

      function_downtime_detection_AND_sendemail;

      sleep 2

done

}

function_main;

壹.5.一.壹 程序表达

(1)通过function_ping,每隔肆秒对 主机 172.2玖.141.1一五 举行ping
操作,(当然,假使主机17二.2九.1四一.1一伍的防火墙,或然内过滤ICMP包,那么那个程序鲜明无法用)将出口重定向到
ping_longxibendi.log 文件中。

    
(2)通过function_downtime_detection_AND_sendemail,每隔4秒,通过ping_longxibendi.log判定是不是有未有ping通的迹象,借使有,则调用
sendEmail 邮件(手提式有线电电话机短信)报告警察方。

(3)监察和控制间隔时间表达,能够将第3个sleep
改为150,第贰个sleep改为150,那样每隔4秒钟监察和控制一遍。

一.伍.一.贰 程序扩张

在地方的程序基础上,依照使用须求,实行对应的代码增加,能够完成故障转移、服务器切换功能。具体方法与八.四.一节相仿。

1.6 MySQL数据库监察和控制

数据库的要紧对商厦来书,总来说之,1旦数据库出现难点,上层的应用服务将不能够打开。所以对数据库的监察告警至关心珍视要。遵照厂家的选拔分歧,监察和控制粒度也大相径庭,比如,监察和控制MySQL的运行处境,监察和控制MySQL数据库的缓存使用状态,监察和控制MySQL的询问线程使用情形等。达成MySQL运维情状监察和控制告警程序mail_mysql.sh。

1.6.1 mail_mysql.sh程序

mail_mysql.sh程序如下。

#!/bin/bash

#author        longxibendi

#blog           http://blog.csdn.net/longxibendi

#function     monitoring mysql

SS=`/usr/local/webserver/mysql/bin/mysql  -uadmin -p12345678  -h
172.29.141.112 -P3306 -e “show databases;” 2> /dev/null`

if[  -z “$SS”   ]; then

      /usr/local/bin/sendEmail  -f monitor_sys@163.com -t
longxibendi@139.com-s smtp.163.com -u “MySQL Down” -xu monitor_sys -xp
123456789  -m “`date `”;

fi

1.6.1.1 mail_mysql.sh程序表达

透过接纳mysql –e 参数施行mysql命令,(把错误输出重定向到/dev/null)若是得到结果,则证实MySQL服务器常规运作,如若未有博得结果,大概获得结果为空,则表明MySQL数据库有失常态。发送短信报告警察方音讯。

一.六.1.二 程序扩张

在高可用的网址后夏洛特,会用到MySQL的主从复制,这样只要发现主数据库出现难题,通过退换本程序,能够兑现故障转移。基本方法与一.四.一类似。

一.7 本章小结

本章重要详细阐释了八个问题:服务器的监督、报告警察方与故障转移。通过shell程序结合mrtg绘图工具,达成了三个完好无损的督察主机的方案。通过shell程序结合博客园和活动的邮箱服务,落成了一个总体的短信报告警察方方案。通过shell程序达成了故障转移的方案。

宣称:本文书档案能够4意变动,但必须签字原版的书文者

我:凤凰舞者 qq:578989855

相关文章