您好,欢迎访问一九零五行业门户网

大型网站的监控、报警与故障转移

本章主要从大型网站的后台监控机制、报警机制和故障转移、服务切换等内容来论述。然后给出一个监控、报警和故障转移的解决方案。
本章主要从大型网站的后台监控机制、报警机制和故障转移、服务切换等内容来论述。然后给出一个监控、报警和故障转移的解决方案。1.1 监控预警
现代大型互联网公司主要有电子商务公司、社交网站公司和搜索引擎公司。在电子商务网站公司中,taobao.com的点击量在国内是最高的。日点击量20亿以上。而这个点击量还不是均匀分不到24个小时,而是分布在几个时间段。因为人们的购物时间是集中在几个不同的时间段的。这样,平均每小时的点击量更高。在2010年taobao.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这些是更基本的
1.2 主机监控一台主机包含cpu、内存、外设等设备,而cpu、内存、外设由总线相连(smp架构,numa架构监控类似)。如图8-2所示。
图8-2
如图所示,主机由cpu、外设、内存、总线组成。而一台主机要对外提供访问,需要由网卡提供网络接入。所以对一台主机的监控从cpu、内存、外设以及网卡入手。
常用的监控软件有nagios、cacti、mrtg等。如果公司有需求,可以自己开发相应的绘图软件及数据采集软件完成监控展示、报警和故障转移等功能。下面使用mrtg再结合shell程序实现监控,给出一个主机监控解决方案。
1.2.1 全方位监控主机对主机监控,主要从cpu、内存、外设、网卡使用情况及性能进行监控。包括cpu的使用量及空闲量、内存的使用量及空闲量、磁盘的使用量及读写速度、网卡的出入流量等。因为利用mrtg进行监控,所以之前要安装snmp和m rtg软件。
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           
#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]:
cpu stateof  servershortlegend[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所示。
图 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所示。
图8-2-1-1-2
图8-2-1-1-3
图8-2-1-1-4
其它类似信息

推荐信息