目录
概述
监控系统一般特指对数据中心的监控,主要针对数据中心内的硬件和软件进行监控和告警。企业的IT架构逐步从传统的物理服务器,迁移到以虚拟机为主导的 IaaS 云,抑或当前流行的容器云PaaS 平台。无论基础架构如何调整,都离不开监控系统的支撑。
不仅如此,越来越复制的数据中心环境,对监控系统提出了越来越高的要求:需要监控不同的对象,例如容器、分布式存储、SDN网络、分布式系统、各种应用程序等,种类繁多;还需要采集和存储大量的监控数据,例如每天数TB数据的采集汇总,以及基于这些监控数据的智能分析、告警及预警等。
监控系统处理能提供实时监控和告警,还能辅助决策,所有决策都以数据为支撑,而非主观臆断。在大数据时代,数据变得越来越重要,监控数据不仅能提供实时状态展现,更能帮助故障回溯和预测风险等。当我们充分了解当前数据中心的真实资源使用情况时,才能绝对是否需要迁移服务、重新调度资源、清理垃圾数据及采购新的服务器。在故障发生后,通过分析历史监控数据,可以准确定位故障源,确定故障的发生时间及持续时间等,从而避免后续相关故障的发生。
从监控对象的角度来看,可以将监控分为网络监控、存储监控、服务器监控和应用监控等。因为需要监控数据中心的各个方面,所以监控系统需要做到面面俱到,在数据中心充当 “天眼” 角色。
从程序设计的角度来看,可以将监控分为基础资源监控、中间件监控、应用程序监控和日志监控。
基础资源监控
从监控对象的角度来看,可以将基础监控分为网络监控、存储监控和服务器监控。
网络监控
网络监控主要分为以下几个方向。
(1)网络性能监控(Network Performance Monitor,NPM)
主要涉及网络监测、网络实时流量监控(网络延迟、访问量、成功率等)和历史数据统计、汇总和历史数据分析等功能。
目前,有很多公司提供了 NPM 解决方案,比如天旦、nCompass、SolarWinds、Nagios(已开源)等。
(2)网络攻击检查
主要针对内网或外网的网络攻击如 DDoS 攻击等,通过分析异常流量来确定网络攻击行为。
(3)设备监控
主要针对数据中心的多种网络设备进行监控,包括路由器、防火墙和交换机等硬件设备,可以通过 SNMP 等协议收集数据。
存储监控
存储主要分为云存储和分布式存储两部分。
-
云存储主要通过存储设备构建存储资源池,并对操作系统提供统一的存储接口,例如块存储的 SCSI 和文件存储 NFS 等。它们的特点是存储接口统一,并不识别存储数据的格式和内容,例如块存储只负责保存二进制数据块,这些二进制数据可能来自图片或视频,对于块存储来说都是一样的。
-
分布式存储主要构建在操作系统之上,提供分布式集群存储服务,主要是针对特定数据结构的数据存储。例如 HDFS 的大文件存储、Dynamo 的键值数据存储、Elasticsearch 的日志文档存储等。
我们通常说到的存储监控主要是指云存储监控,主要监控数据中心内部的存储使用量和读写速度。
我们可以将云存储监控分为存储性能监控、存储系统监控及存储设备监控。
-
存储性能监控方面,块存储通常监控块的读写速率、IOPS、读写延迟、磁盘使用量等;文件存储通常监控文件系统 Inode、读写速度、目录权限等。
-
存储系统监控方面,不同的存储系统有不同的指标。例如,对于 Ceph 存储,需要监控 OSD、MON的运行状态,各种状态的数量,以及集群 IOPS 等信息。
-
存储设备监控方面,对于构建在 x86 服务器上的存储设备,设备监控通过每个存储节点上的采集器统一收集磁盘、SSD、网卡等设备信息;存储厂商以黑盒方式提供的商业存储设备通常自带监控功能,可监控设备的运行状态、性能和容量等。