分类:
2010-02-09 13:10:20
高可用负载均衡最佳实践四: 监控 | |
| |
发布者:IT168 日期: 2009-11-03 00:00:00 浏览次数:28 (共有0条评论) | | |
通过上述合理的方案设计(1,2,3),系统已经具备很高的可用性,即便有一些服务器实效或发生故障,也不会中断服务。但是,发生故障或失效的服务器,还是需要处理和恢复服务的,不要等到所有服务都停了,才知道发生了故障。为了随时知道整个系统的运行状态,我们需要一双"眼睛",时刻监控每个对象的运行情况,如当某个服务器负载过高时,给系统管理员发送报警信息。一旦有了这样一个平台,就实现了所有服务的可视性。 一、监控平台选择 这里使用网络监控软件Nagios,个人认为它最大的好处是可以发故障报警短信-只要Nagios监控的对象发生故障,系统就会自动发送短信到手机上。下面摘录Nagios官方网站的描述: Nagios is an open source host, service and network monitoring program. Who uses it? Lots of people, including many big companies and organizations:Nagios是一个用来监控主机、服务和网络的开放源码软件,很多大的公司或组织都在使用它。 Nagios 是开源的GNU源码包,可以安装在各种类unix平台,如centos、freebsd、solaris 等,并且在各个平台的安装方法基本上是相同的。 Nagios为了方便我们的管理工作,提供了至少3种表现手段: 1、web方式,即通过浏览器观看被监控的对象;如正常状态下,其状态(status)是以蓝色填充并显示一个OK。 2、邮件通知,发生故障时,到达设定重试次数和探测间隔时间后发送邮件给管理员或相关人员,报告问题的大致情况。 4、 手机短信,这是非常有用和及时的功能了;晚上熟睡中,再也没可能看web页面或查阅邮件,可以一旦发生故障,相关人员马上就能知道发生故障。 一般情况下,这3者是同时进行的:上班时间开个浏览器看页面显示、打开邮件程序定时收取邮件、手机24小时在线。 二、 nagios的监控对象 监控应该具备效率和有效性,不要把所有的对象都放在监控里面,否则会发生类似"狼来了"这样的问题。 1、负载均衡层监控对象 负载均衡层主要监控包括存活检查及vip服务状态检查。 负载均衡器有2个服务器,首先需要知道的是这2个服务器是否存活。由于负载均衡器运行中既不耗费资源又不产生大的日志(日志直接输出屏幕了),为了保证其转发效率和性能,不必再在上面安装NRPE(nagios远程插件执行)。 用户的访问通常被指引到负载均衡设定的vip(在DR模式中,所有的服务器都用这个vip实现负载均衡功能),监控系统只需模拟用户访问vip的url页面,即可获知服务是否正常。 2、 应用服务器层监控对象 应用服务器层需要监控的对象可归纳成2种:服务监控和资源监控。服务监控的目的是掌握服务的存活情况,资源监控是为了掌握系统的运行情况。在实际运行中,系统状态往往可以预测服务是否会出现问题,如较高的负载、较多的连接数、分区超过可用容量的80%等等。 应用层服务开启了2个基本的网络服务:sshd服务和web服务。前者用于远程连接,后者用于web服务。当我们配置了对sshd和web服务监控以后,默认状况下已经启用了服务器的存活检查,所以不必单独列出存活检查这个项目。 资源监控包括:负载监控、磁盘使用空间监控、进程数监控、ip连接数监控这4个项目。Nagios服务器本身不能像监控服务一样直接监控系统资源,它需要在被监控的服务器上安装NRPE-nagios remote plug execute,由NRPE收集信息,然后返还信息给nagios服务器。 图1是一个nagios监控真实服务器的运行状况。 图1 nagios监控服务器和主机资源示意图 应用服务器以fuse方式挂接和访问moosefs分布式文件系统,在监控资源里,加入了磁盘使用的空间检查,假如分布式文件系统不可用,则也可以通过这个磁盘监控可以体现出来。 3、 数据库层监控和分布式文件系统监控 数据库除了监控系统资源及服务端口外,需要额外创建一个空的数据库和一个权限极低的帐号,NRPE通过这个账号登陆mysql即可实现对mysql数据库有效的监控.在数据库复制过程中,辅助服务器很有可能复制失败而停止数据同步,nagios用常规的插件无法检查同步失败,所以需要手动写个脚本,然后根据脚本的输出来判别是否正常.在把脚本整合到NRPE. 分布式文件系统的监控分成两个部分:元数据服务器和数据存储服务器.除了监控系统资源外,还要监控这两者服务。元数据服务器和数据存储服务器分别使用不同的端口进行监听,监控元数据服务器,用tcp 9420端口;监控数据存储服务器,用tcp 9422端口。再综合应用服务器层对磁盘空间利用的监控情况,我们就可以很准确的知道整个moosefs分布式文件系统的运行状况。 |