欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-09 13:21:18
...

本章主要从大型网站的后台监控机制、报警机制和故障转移、服务切换等内容来论述。然后给出一个监控、报警和故障转移的解决方案。

本章主要从大型网站的后台监控机制、报警机制和故障转移、服务切换等内容来论述。然后给出一个监控、报警和故障转移的解决方案。 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 Server

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所示。

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


图 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

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