在云计算平台中,资源的监控和管理是确保平台可靠性非常重要的一环。不仅是为了能够在资源监控的基础上方便提出有效的管理方案,从而提升资源利用率,同时还能够确保在故障发生时能最及时的探测到并采取一种最为有效的方法解决它。
云监控
云监控指的是一种针对网络、系统、应用等内容提供可用性、用户体验和安全性方面的监控服务。它的目的是保障云计算用户的业务稳定安全运行。当服务器发送故障时,及时的给网站管理人员发送邮件和短信报警。第一时间了解网站状态,将故障时间降低到最小。
云监控包含的范围有很多:首先就是对服务器本身的监控。监控的指标可以有多个,比如:
- CPU使用率
- CPU负载
- 内存使用率
- 磁盘空间使用率
- 磁盘I/O
- 网络流量
- 系统进程数、进程CPU/内存/状态监控
- 服务监控
- 日志监控
其次是对web站点的性能进行监控,包括:
- 站点URL(HTTP)可用性和响应时间
- UDP/TCP端口可用性和响应时间
- POP3/SMTP/FTP端口可用性和响应时间
告警
告警部分是与监控一脉相承的。其目的就是为了在监控系统检测到故障发生时,以某种形式通知给用户。一般包括以下几个方面:
- 通过网页控制台获得告警
- 通过Email接收告警
- 通过手机短信接收告警
触发告警的形式有很多。对于服务器本身监控而言,一般是由于监控指标的数据达到了报警阈值。对于站点监控而言,一般是网站不可达会触发告警。
告警牵涉到的几个条件包括:告警项目,告警门限和告警周期。当告警触发时,还需要进行写入日志操作,此外,告警项目无法进行开启时,还要向用户发出告警失败提示。
开源监控和报警系统
Nagios
Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。
Nagios可以提供以下几种监控功能。
- 监控网络服务(SMTP、POP3、HTTP、NNTP、Ping等)。
- 监控主机资源(处理器负荷、磁盘利用率等)。
- 简单的插件设计使得用户可以方便地扩展自己服务的检测方法。
- 并行服务检查机制。
- 具备定义网络分层结构的能力,并使用“parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态。
- 当服务或主机问题产生与解决时将告警发送给联系人(通过电子邮件、短信、用户定义方式)。
- 具备定义事件处理功能,可以在主机或服务的事件发生时获取更多问题定位。
- 自动的日志回滚。
- 可以支持并实现对主机的冗余监控。
- 可选的Web界面用于查看当前的网络状态、通知和故障历史、日志文件等。
Ganglia
Ganglia是UC Berkeley发起的一个开源实时监视项目,用于测量数以千计的节点,为云计算系统提供系统静态数据以及重要的性能度量数据。Ganglia系统基本包含以下三大部分。
Gmond:Gmond运行在每台计算机上,它主要监控每台机器上收集和发送度量数据(如处理器速度、内存使用量等)。
Gmetad:Gmetad运行在Cluster的一台主机上,作为Web Server,或者用于与Web Server进行沟通。
Ganglia Web前端:Web前端用于显示Ganglia的Metrics图表。