设若taobao.com的服务器宕机临时辰,所以请保管您的类别现已启用了此服务

1.4.1.2 monitor程序表明

程序表明:

unction_sendEmail                     发送email到139邮箱,报警

function_change_ip                   
浮动改变ip,增多路由,修改db的arp表

function_start_nginx_server          
运维本机nginx服务器,这一步也足以调度,假设本机的nginx已开行的话

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

#ln –s /home/wwwroot/mrtg mrtg

1.2.1.2 内部存款和储蓄器监察和控制

关键监督内部存款和储蓄器的行使状态,包含内部存款和储蓄器使用量和空闲量。首要步骤和次序如下:

(1)编写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;}’

(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

(3)制作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把相应的数码摄影出来,形成图形。结果如图8-2-1-2-1所示。

图片 1

                  图8-2-1-2-1

如图8-2-1-2-1所示,横坐标表示时间,纵坐标表示内部存款和储蓄器使用量。其驼冰雪蓝部分为内部存款和储蓄器使用量,葱青部分为内部存款和储蓄器总的数量。图8-2-1-2-1为当天内部存款和储蓄器使用情况。周、月、年的呈现图省略。

# cd libpng-1.2.14

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

Legend2[disk]: Used Disk Space

1.4 故障转移

故障转移是指,当三个节点还是贰个劳动爆发故障,举例主机僵死,进度僵死之后,可以有照看的监察和控制种类开采故障,并在很短的时光内开发银行备用机器,实现故障转移。那是承接保险大型网址的高可用性最为关键的章程和议程之豆蔻梢头。故障转移有例外的几个品级,举个例子主机操作系统的故障转移,数据库的故障转移,应用进度的故障转移等。本节入眼给出应用进程的故障转移,以检查评定Nginx进程为例。

# cp scripts/makefile.linux makefile

1.2.1.3 外设磁盘监察和控制

要害监督磁盘的利用意况磁盘,包括磁盘的读出速度和写入速度

根本步骤和程序如下:

(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

(3)制作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-2-1-3-1所示。

图片 2

                       图8-2-1-3-1

如图8-2-1-3-1所示,横坐标表示时间,纵坐标表示磁盘速度。其青白色部分为磁盘读取速度,青黑部分为磁盘写入速度。

图8-2-1-3-1为当天磁盘scsi磁盘的首先块分区使用情形,周、月、年展示图省略。就算想增大监察和控制粒度,能够设想监控inode节点数使用状态。因为节点数相当不够用也会报错。

disk=/dev/$hd

1.1 监察和控制预先警示

当代大型网络公司根本有电子商务公司、社交网址集团和找寻引擎公司。在电子商务网址公司中,taobao.com的点击量在境内是最高的。日点击量20亿以上。而这些点击量还不是均匀分不到二十多少个钟头,而是遍及在多少个时间段。因为大家的购物时间是汇总在多少个差异的时日段的。那样,平均每小时的点击量越来越高。在二零零六年天猫.com的交易总额为300亿元,而平均每分钟交易总额为5-10万元。即使taobao.com的服务器宕机半小时,公司的直接损失为300-600万,在交易高峰期只怕更加的多。而在贸易高分期,宕机的票房价值更加大,因为服务器的载重在交易高峰期是最高的。不问可见监察和控制和预先警示在大型网址的平时运维中是十二分首要的。

在风姿洒脱切网址的后台架构中,物理设备根本由种种主机和置换设备组成。所以对整个后台系统的监察和控制入眼从主机监察和控制和置换设备监察为主。依据监察粒度以至工作须求,须求对利用进度展开督察举例web
server
、数据库等。数据库(譬喻MySQL)监察和控制,就算监察和控制粒度比异常的大,那么能够从以下多少个地点展开监督:

1) 监控连接数

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

3) 监察和控制查询缓存使用情状

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

5) 监察和控制innodb buffer pool  size使用状态

6) 监察和控制sql线程和io线程(有replication需要的架构)

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

8) MySQL的并存及data file&log file那些是更基本的

LegendO:从SHELL再次回到的多寡中的第4个

1.5 主机节点监察和控制(宕机检查测量试验与报告急察方)

生龙活虎台主机除了对其CPU、内部存款和储蓄器、外设、网卡进行督察告急,更亟待对全体主机进行监察,这么些监察和控制告急主假设监督主机是不是在运维。宕机对运营人士的话,最悲哀了。如何检查测量试验旭日初升台服务器是或不是还在正规运作,若是该服务器宕机,怎么样在第临时间监测到并布告一线运行职员开展有限支撑,最大化收缩损失。上面包车型客车程序
monitor_down.sh就是消除上述难题。

查阅端口的张开情况也可確認其是或不是已經被啟動

1.2 主机监察和控制

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

图片 3

                                                                                    
图8-2

如图所示,主机由cpu、外设、内存、总线组成。而风流倜傥台主机要对外提供访谈,需求由网卡提供互联网相联。所以对意气风发台主机的监督从cpu、内部存款和储蓄器、外设以致网卡动手。

常用的监督软件有Nagios、Cacti、Mrtg等。若是厂商有供给,能够本身费用相应的绘图软件及数据搜罗软件产生监察和控制显示、报告急察方和故障转移等职能。上面接受Mrtg再结合shell程序达成监察和控制,给出二个主机监察和控制建设方案。

kmg[diskIO]: KB,MB,GB

1.2.1.1 cpu监控

第生龙活虎监督检查cpu的施用比例,空闲百分比。在求名求利安装snmp和mrtg的前提下,首要步骤如下(整个监察和控制项目布局在/root/Desktop/monitor下):

(1)编写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;}’

(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

(3)制作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把相应的数量美术出来,产生图形。结果如图8-2-1-1-1所示。

图片 4

                                                 图 8-2-1-1-1

如图8-2-1-1-1所示,在纵坐标中,土黑线条表示CPU空闲量,肉桂色线条表示CPU使用量。横坐标为时间轴。改图为一天的CPU使用意况的计算音讯。另外MRTG还只怕会总结处七日、十三月、一年CPU的使用状态。分别入下图8-2-1-1-2、8-2-1-1-3、8-2-1-1-4所示。

图片 5

                                                     图8-2-1-1-2

图片 6

                                                图8-2-1-1-3

图片 7

                                          图8-2-1-1-4

#!/bin/bash

1.3.1.6 短信报告急察方,监察和控制网卡的气象

提供网络服务器的服务器,必需有网卡,后生可畏旦网卡现身难题,要是唯有生机勃勃块出口网卡,那么预示着本机的劳务也停下了。所以网卡的监控极度主要。上面接受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

#cd /usr/local/src/mrtg-2.14.5

1.6 MySQL数据库监控

数据库的尤为重要对商厦来书,综上可得,后生可畏旦数据库出现难题,上层的应用服务将无法开展。所以对数据库的督察告急至关心爱戴要。遵照公司的行使不一样,监察和控制粒度也大有径庭,举例,监控MySQL的周转情形,监察和控制MySQL数据库的缓存使用情状,监察和控制MySQL的查询线程使用状态等。完结MySQL运营状态监察和控制告急程序mail_mysql.sh。

# when run.

1.2.1.4 网卡监察和控制

主要监督检查网卡的流量,包涵网卡的入数据流量和出多少流量

要害步骤和次序如下:

(1)
生成新的MRTG配置文件,通过local登陆127.0.0.1,并借助网卡设备名举办数据流量总计,总括的年华轴从右到左推移,并以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

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

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

(3) 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

(4)推行以下内容

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把相应的数据美术出来,产生图形。结果如图8-2-1-4-1所示。

图片 8

                   图8-2-1-4-1

如图4-2-1-4-1所示,横坐标表示时间,纵坐标表示网卡的流量。其深桔深湖蓝部分代表网卡的入流量,浅米灰部分代表网卡的出流量。周、月、年的来得图省略。

*/1 * * * * /root/mrtgbin/mrtg /root/mrtg/lxy.cfg

1.6.1.2 程序扩张

在高可用的网址后新竹,会用到MySQL的主从复制,那样只要发掘主数据库出现难点,通过退换本程序,能够达成故障转移。基本方式与1.4.1类似。

把第89行前边的注明符号#去掉,变成  www.2cto.com  

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;

hd=sda

1.4.1.3 monitor_nginx程序算法

骨干算法

1.经过curl检验故障

2.由此变化修改(ifconfig)ip  达成故障切换(failover)

(2)配置MRTG

1.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。当开采磁盘写速度低于每秒100Blocks时,实践短信报告急察方。程序如下

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

kilo[memory]:1024

本章主要从大型网址的后台监察和控制机制、报告急察方机制和故障转移、服务切换等内容来阐释。然后交给二个监理、报告急察方和故障转移的解决方案。

Legend2[diskIO]: Disk I/O KBwrite/sec

1.3.1.2 短信报警,监控CPU使用量

动用程序mail_cpu.sh对CPU的使用量进行监督,CPU的使用量首要总结系统经过(线程)使用量和顾客进度使用量。利用sar收集数据,进行推断。sar的50%征集合果如下:

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%时,进行短信报告急察方。

# make install-lib

1.4.1 WebServer故障转移实施方案

运作条件如图8-4-1所示。

图片 9

                                                                                             
图8-4-1

如图8-4-1所示,在IP:172.29.141.112和172.29.141.113上还要陈设五个web
server
Nginx服务器,何况配备故障转移程序monitor_nginx程序相互监督对方的Nginx运市场价格况。当开掘另豆蔻梢头方的Nginx服务器停止现在,立刻退换本机IP为对方IP,发送短信报告急方然后启用本机的Nginx程序来提供劳动。详细陈设处境如下所示:

172.29.141.112    布署  Nginx  与  法斯特CGI(门户开放)

172.29.141.113    铺排  Nginx  与  法斯特CGI(作为热备)

172.29.141.115    部署  MySQL(或者MySQL-Proxy)

#crontab -e

1.7 本章小结

本章首要详细解说了七个难点:服务器的监督检查、报告急察方与故障转移。通过shell程序结合mrtg绘图工具,达成了一个整机的监察主机的方案。通过shell程序结合和讯和活动的信箱服务,实现了叁个完完全全的短信报告急察方方案。通过shell程序完成了故障转移的方案。

宣示:本文书档案能够轻便改换,但不能够不具名原文者

我:凤凰舞者 qq:578989855

# mkdir -p /usr/local/libxml2

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;

Title[memory]:Memory Usages

1.5.1.1 程序表达

(1)通过function_ping,每间距4秒对 主机 172.29.141.115 实行ping
操作,(当然,假诺主机172.29.141.115的防火墙,恐怕内过滤ICMP包,那么那一个顺序明显不能够用)将出口重定向到
ping_longxibendi.log 文件中。

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

(3)监察和控制间距时间表明,能够将首先个sleep
改为150,第叁个sleep改为150,那样每间距5分钟监察和控制贰次。

kilo:平时是写1024,就算需求的话,是1000在Computer里的单位

1.3.1.3 短信报告警察方,监察和控制内部存款和储蓄器使用量

内部存款和储蓄器的使用量,是另贰个影响当前服务器品质和负载的指标。使用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

# 30402503

1.5.1.2 程序扩张

在上头的次第基础上,依据使用须要,进行相应的代码增加,能够兑现故障转移、服务器切换功用。具体方法与8.4.1节类似。

 

1.6.1.1 mail_mysql.sh程序表明

透过动用mysql –e 参数实行mysql命令,(把错误输出重定向到/dev/null)假诺得到结果,则注明MySQL服务器常规运营,若无到手结果,只怕获得结果为空,则印证MySQL数据库有题目。发送短信报告急察方音讯。

/usr/local/apache/bin/apachectl -k start

1.3.1.1 短信报告急察方,监察和控制CPU质量负载

CPU的质量指数,主要查看CPU这两天的负荷景况,因为CPU某临时时的使用量达到相当大值是能够选用的,但即使某贰个时日段负载持续走高,那么
CPU的属性甚至任何系统的品质将会下落,以致主机缘宕机,甘休服务。所以大家编辑程序uptime.sh监察和控制CPU负载情况,mail_uptime.sh对CPU的负荷举行决断然后实践报告急察方,最后经过cron任务设置进行顺序的间隔时间来定期的监察CPU。因为测验原因,权且把CPU在在乎气风发份之内的载重阈值设为0.01,借使超越此数值,则开展短信报告急察方。代码如下。

(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

usedmem=`/usr/bin/free |grep Mem |awk ‘{print $3}’`

1.3.1 短信报告急察方达成

在店堂级应用中,通过购销短信运转商的短信网关服务器的劳务来转载短信,在上边方案中,大家选用139邮箱绑定手提式有线电话机号码,开通邮件提示成效,一样达成短信报告急察方。架构图如图8-3-1所示。

图片 10

                                                                             
图8-3-1

如图8-3-1所示,节点C为被监察和控制的服务器,节点B为监察类别的服务器,节点A为活动运转商的短信网关服务器。通过脚本程序从C获得监察和控制数据,判读是还是不是超过阈值,假设超出,则将报告急察方新闻作为内容通过B上的sendEmail软件将163信箱作为发送方,发送邮件到139信箱
longxibendi@139.com,然后由于开展邮件短信提示,移动运转商会将邮件音讯转换为短信通过短信网关服务器发送新闻到基站,最终传输到手提式有线电话机中。详细信息如下所述。

# In which case, this script returns :

1.2.1 全方位监督主机

对主机监察和控制,重要从cpu、内部存款和储蓄器、外设、网卡使用情形及质量举行监察。蕴含cpu的使用量及空闲量、内部存款和储蓄器的使用量及空闲量、磁盘的使用量及读写速度、网卡的出入流量等。因为使用Mrtg实行监察和控制,所早前面要设置SNMP和M
rtg软件。

加上如下黄金年代行

1.3 短信报告急方

随着移动通讯设备的推广以致自动化报告急察方的须求,短信报警进而主要。在铺子级应用中,通过买进短信运行商,譬喻中国移动、中国际缔盟通、中国移动的短信网关服务器的劳动再组成脚本程序完结短信报告急察方。实际上短信网关服务器起到转变传输通讯方式的法力。

(2)linux Mrtg监察和控制主机流量运转http服务和snmp服务:

1.3.1.4 短信报告急察方,监察和控制磁盘使用量

重在对磁盘的分区使用量举办督察,通进程序df.sh对磁盘使用量进行数据搜罗,通过mail_df.sh对df.sh搜罗的数码进行分析,假使发掘超越阈值,进行短信报告急察方。设置的阈值为百分之九十。即磁盘分区使用量超越十分之九展开报告急察方。程序如下。

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

#/root/mrtgbin/indexmaker –output=/root/mrtg/index.html
–title=”Lidalin’s MRTG” /root/mrtg/lxy.cfg

LegendO[cpu]: & CPU USER

#!/usr/bin/perl

MaxBytes[cpu]: 100

Legend2[memory]:   Used Memory :

#chmod 0755 *.pl

#tar zvxf mrtg-2.14.5.tar.gz

hostname

 

kmg: Change the default multiplier prefixes

MaxBytes[diskIO]: 100

Legend1[memory]:   Total Memory :

  www.2cto.com  

(4)測試配置檔

第生意盎然为mrtg的主页在web目錄下建构二个索引,即使web目錄是:/home/wwwroot/

加上如下脚本:

YLegend[memory]:   Memory Usage :

啟動之後最佳是用setup配置服務,讓其隨機自動啟動

Unscaled[diskIO]: dwym

安装

 

将 #WorkDir:/home/http/mrtg 去掉注释并改为 WorkDir: /home/wwwroot/mrtg
(此处是MRTG的WEB目录)

kmg[swap]:kB,MB

#make install

PageTop[swap]:<H1>Swap</H1>

LegendO[disk]: Used Disk Space

# make

 

echo $UPtime

4.安装freetype-2.1.10

YLegend[cpu]: CPU loading (%)

print “$usage\n”;

#cp ./images/*.* /root/mrtg/

#tar zxvf zlib-1.2.3.tar.gz

# mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/{,man1},man1}

 

echo $UPtime

(5)生成MRTG網站首頁文件:已在root目录下

#!/bin/bash

(1)伊始设置mrtg

Legend2[swap]: Used Swap

echo “$totalmem”

# run this script to check the mem usage.

日增如下兩行

UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`

(2)编辑/mrtg/lxy.cfg并加上如下内容:

MaxBytes[memory]: 2048000

 

保存后要让其负有執行权限

# chkconfig –level 35 nginx on

Target[disk]: `/root/mrtg/sh/df.pl`

view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

#cp xml2-config /usr/bin

编写制定MRTG的配置文件:马克斯Bytes根據實際狀況修改

#make install

 

echo “$KBwrite_sec”

LegendI[memory]:   Total Memory :

KBwrite_sec=`iostat -x $disk|grep $hd |awk ‘{print $9}’`

#vi /root/mrtg/lxy.cfg

#cd /root

在这目录下新建目录mrtg和sh即:

(4)修改系統語言配置

LegendI[diskIO]: Disk I/O KBread/sec

ShortLegend[cpu]:%

二、開始安裝

打開瀏覽器,輸入 http://改成本機IP/mrtg
应该就足以看看网络使用景况的曲线了,一分鐘后再看比較準確!

下一场需求创建三个布局文件:

 

#make

echo “$KBread_sec”

# Creater: CCC IT loren ext:2288 2005/8/3

Unscaled[swap]: dwym

PageTop[cpu]: <H1>CPU</H1>

#service nginx start

echo $usedmem

# Disk used

$usage += $df[2];

# ./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/
–with-png=/usr/local/lib/ –with-zlib=/usr/local/zlib/
–with-freetype=/usr/local/freetype/

# run this script to check the mem usage.

1.安装zlib-1.2.3

# make install

# Mem

在乎:修改了配置必定要重設第二大步驟中的第(3)(4)(5)(6)步驟

# output(df -kl) looks like this:

Legend1[memory]:   Total Memory :

(1)MEMORY:mem.sh

 

 

Options[memory]: growright,gauge,nopercent

LegendO[memory]:   Used Memory :

假使路线嫌长以为不方便人民群众的话可以制造軟連接:

编排MRTG的铺排文件:马克斯Bytes的值根據實際狀況修改

未曾运维的话须要修改下在怎样运转方式下要团结运维:

# make install

# cd libxml2-2.6.19

jpeg暗中同意不会自行建造目录,由此需手动创建目录:

usedswap=`/usr/bin/free |grep Swap |awk ‘{print $3}’`

usedmem=`/usr/bin/free |grep Mem |awk ‘{print $3}’`

 

3.安装libpng-1.2.14

Title:标题

ShortLegend[swap]: &

来源 http://www.cnblogs.com/see7di/archive/2012/12/10/2811041.html

#cd /root/mrtg/sh

http://www.bkjia.com/Linuxjc/552231.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/552231.htmlTechArticlelinux(CentOS)下Mrtg的安装詳解 如日方升、中期準備
(1)MRTG供给以SNMP服务为底蕴,所以请保管您的系统已经启用了此服务,修改SNMP的布局:
#vi /etc/s…

Xsize:生成图表的横向宽度(最大600)

LANG=C /root/mrtgbin/mrtg /root/mrtg/lxy.cfg

5.安装jpegsrc.v6b

ShortLegend[memory]: &

#chkconfig –list | grep nginx

#chmod 755/root/mrtg/sh/mem.sh

  www.2cto.com  

编排MRTG的布局文件:MaxBytes根據實際狀況修改

#./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd
–enable-so –enable-track-vars –enable-rewrite
–with-z-dir=/usr/local/zlib

PageTop[memory]:<H1>Memory</H1>

# tar -zvxf freetype-2.1.10.tar.gz

LegendO[swap]: Used Swap

(3)MRTG生成供浏览图像须求http服务的支撑,同期也亟需gd、libpng和zlib七个软件包的帮助,而gd的正规运作也须要其余的多少个软件,(系統默認自帶,倘诺沒有自帶則须要作者們手工业安裝)

ShortLegend[diskIO]: &

totalmem=`/usr/bin/free |grep Mem |awk ‘{print $2}’`

7.安装GD-2.0.33库

 

YLegend[memory]:   Memory Usage :

echo $totalmem

#./configure –prefix=/usr/local/mrtg
注意:“–prefix=/usr/local/mrtg”是点名的设置路线

编排MRTG的配备文件:马克斯Bytes根據實際狀況修改

(1)監視内部存款和储蓄器使用狀況

# make;make install

#cd mrtg

LegendI[memory]:   Total Memory :

 

 

udp 0 0 0.0.0.0:161 0.0.0.0:* 4973/snmpd

#mkdir sh

Options[diskIO]: growright,gauge,nopercent

Options: growright,表示图表向右延展

 

$total += $df[1];

#make install

(4)磁盤佔用:df.pl

Title[memory]:Memory

将62行:

#/root/mrtgbin/mrtg /root/mrtg/lxy.cfg 有的人用這種方法啟動#env LANG=C
/root/mrtgbin/mrtg /mrtg/lxy.cfg

Target:是要实践的剧本

kmg[memory]:kB,MB

# mkdir -p /usr/local/freetype

#vi /etc/snmp/snmpd.conf

 

echo “$totalswap”

 

 

(3)CPU:cpu.sh

#service snmpd start

echo $usedmem

 

Target[memory]: `/root/mrtg/sh/mem.sh`

#vi mem.sh

hostname

ShortLegend[disk]: &

# Swap

print “$total\n”;

usedmem=`/usr/bin/free |grep Mem |awk ‘{print $3}’`

保存,然后reboot

# Filesystem 1k-blocks Used Available Use% Mounted on

# ./configure –prefix=/usr/local/libxml2

kilo[memory]:1024

(5)磁盤I/O:io.sh

(3)修改.sh檔案讓其可執行(.sh檔案內容在人世)

Title[swap]:SWAP

# mkdir -p /usr/local/gd2

Legend1[swap]: Total Swap

# cd gd-2.0.33

Title[disk]: Disk Space

echo $totalmem

(1)MRTG须要以SNMP服务为底蕴,所以请确认保证您的系统已经启用了此服务,修改SNMP的布局:

 

LegendI:从SHELL重返的数量中的第三个

(2)SWAP:swap.sh

对 snmpd 服务使用一样的安装,未来手动运营下

#!/bin/bash

kmg[memory]:kB,MB

# Cpu

PageTop[memory]:<H1>Memory Usages</H1>

# netstat -tunlp |grep snmp

#chmod 0755 *.sh

#make

UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`

 

意气风发、早先时代準備

马克斯Bytes:图表纵向数值的最大上限

要是有警报或錯誤,則多运维两次,當警报或錯誤不重现身時就OK了

totalmem=`/usr/bin/free |grep Mem |awk ‘{print $2}’`

#cd mrtg-2.14.5

#/root/mrtgbin/cfgmaker
[email protected]改费用機IP
–output=/root/mrtg/lxy.cfg

#!/bin/bash

LC_ALL=C

# This script to monitor the mem usage.

PageTop[disk]: <H1>Disk Space</H1>

# This script will monitor the KBread/sec &KBwriten/sec of Disk.

Title[cpu]: CPU

Title[diskIO]: Disk HDA I/O

totalswap=`/usr/bin/free |grep Swap |awk ‘{print $2}’`

LANGUAGE=on

# cd freetype-2.1.10

#./configure –prefix=/usr/local/zlib

Unscaled[disk]: dwym

#cd /home/wwwroot/

ShortLegend[memory]: &

# make install

#

2.安装httpd-2.2.4

 

kilo[swap]:1024

# /dev/md0 95645100 30401312 64272080 33% /

Options[swap]: growright,gauge,nopercent

 

# /dev/hde1 14119 1159 12231 9% /boot

Target[diskIO]: `/root/mrtg/sh/io.sh`

 

#make

foreach $filesystem (`df -kl | grep -v “Filesystem”`){

将 #Options[_]: growright, bits 前面的#去掉,靠左对齐

Options[disk]: growright,gauge,nopercent

MaxBytes[memory]: 4096000

echo “$usedmem”

 

启动httpd

# tar -zxf libxml2-2.6.19.tar.gz

#vi /etc/profile

linux(CentOS)下Mrtg的装置詳解

 

Target[swap]:`/root/mrtg/sh/swap.sh`

 

首先查看五个劳务在系统运营时是还是不是曾经拉开

(6)接下去运营程序

#cd zlib-1.2.3

LegendI[disk]: Total Disk Space

PageTop[diskIO]: <H1>Disk I/O</H1>

YLegend[diskIO]: Megabytes

 

YLegend[disk]: Megabytes

# As sda ,sdb,sdc,sdd,hda.

hostname

@df = split(/\s+/,$filesystem);

MaxBytes[disk]: 115247550

#ln –s /usr/local/mrtg/bin mrtgbin

access notConfigGroup “” any noauth exact mib2 none none

任何安顿的部份均放入此資料夾下

access notConfigGroup “” any noauth exact systemview none none

MaxBytes[swap]: 3048000

 

三、mrtg.cfg 里面参数的意趣

 

echo “$usedswap”

Ytics:纵向划分为多少个块(格子)

#tar zxvf jpegsrc.v6b.tar.gz

Target[cpu]: `/root/mrtg/sh/cpu.sh`

LegendO[diskIO]: Disk I/O KBwrite/sec

# ./configure –prefix=/usr/local/freetype

# make
(如果提示找不到zlib库文件大概头文件,多半是makefile文件里zlib的暗许路径有误。可编写制定makefile文件,找到zlib项并再度钦赐路径到/usr/local/zlib/lib和/usr/local/zlib/include)。

 

# Disk I/O

Target[memory]: `/root/mrtg/sh/mem.sh

YLegend[swap]: Swap Usage

把部分圖片複製過去

 

totalmem=`/usr/bin/free |grep Mem |awk ‘{print $2}’`

LegendI[swap]: Total Swap

#!/bin/bash

# 95659219

Options[memory]: growright,gauge,nopercent

# This script to monitor the swap usage.

#mkdir mrtg

只顾:纵然您设置了中等防火墙而又从不张开80端口访谈,要求编辑/etc/sysconfig/iptables允许旁人访谈80端口

#cd httpd-2.2.4

6.安装libxml2-2.6.19

确立脚本文件

KBread_sec=`iostat -x $disk|grep $hd |awk ‘{print $8}’`

Unscaled[memory]: dwym

tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 4973/snmpd

(7)MRTG生成的web页面是静态的,为了能让其持续的刷新,要求将以上命令增加进crontab

 

# ./configure –prefix=/usr/local/jpeg6/ –enable-shared
–enable-static

Legend2[memory]:   Used Memory :

  www.2cto.com  

#cd /root/mrtg/sh

修改配置文件:

#tar zxvf httpd-2.2.4.tar.gz

#tar zxvf libpng-1.2.14.tar.gz

LegendI[cpu]: & CPU SYSTEM

编辑MRTG的布局文件:假若急需檢測更加多的分区則修改io.sh

#cd /usr/local/src

在结尾加上Language: big5,然后保留

Options[cpu]: gauge,nopercent,growright

# tar -zvxf gd-2.0.33.tar.gz

改为

四、配置其余範例

kmg[disk]: KB,MB,GB

Ysize:生成图表的纵向中度(最大200)

Legend1[disk]: Total Disk Space

 

LegendO[memory]:   Used Memory :

# make; make install

五、种种SHELL(修改了安顿之後要再度生成首頁,然後重啟)

PageTop:页面上边的提醒

# make

}

# disk=sda

Legend1[diskIO]: Disk I/O KBread/sec

相关文章