一般来说,在本地数据中心我们会对基础设施进行监控,其中包括对主机实例的监控,以便系统地和随时地了解资源使用情况和性能变化,在出现性能瓶颈的时候合理地调配资源,或者在发生故障时追溯原因等等。

在阿里云上,ECS实例也承载着我们的业务应用,ECS实例的资源使用情况和性能负载直接影响着其上应用的运行稳定性和用户体验度。假如没有进行监控,就很有可能在业务高峰期性能不足却无人问津而导致宕机;也可能在出现异常和故障的时候,因为没有历史性能数据而无法进一步追查到原因,可见,没有监控,当问题出现的时候,都非常被动。

因此,监控是非常有必要的,是构建完整IT系统不可或缺的一个元素,下面就来介绍如何对ECS实例进行监控。

更详细的介绍以及最新的云监控功能,请参见元监控产品文档

使用Dashboard

云监控的Dashboard功能提供用户自定义查看监控数据的功能。用户可以在一张监控大盘中跨产品、跨实例查看监控数据,将相同业务的不同产品实例集中展现。既能满足排查故障时查看监控细节,又能满足总览大局时查看服务概貌。

操作步骤
  1. 登录 云监控控制台
  2. 在左侧导航栏选择 Dashboard > 网络监控大屏,可以看到指定IP地址的带宽监控信息。

  3. 如果业务比较复杂,需要自定义监控可视化需求时,可以选择 Dashboard > 自定义大盘,然后单击 创建监控大盘,输入监控大盘的名称。

  4. 添加 监控图表
    1. 选择监控图表展示类型。
    2. 选择要监控的产品及监控项。
    3. 单击 发布


主机监控

云监控主机监控服务通过在服务器上安装插件,为用户提供服务器的系统监控服务。主机监控服务采集丰富的操作系统层面监控指标,可以使用主机监控服务进行服务器资源使用情况的查询和排查故障时的监控数据查询。

操作步骤
  1. 登录 云监控控制台
  2. 在左侧导航栏选择 主机监控
  3. 单击实例列表中的 点击安装 安装云监控插件。

  4. 1-3分钟后,单击 操作 列的 监控图表 可查看监控数据。

  5. 可以看到 操作系统监控基础监控进程监控,涵盖了CPU、内存、负载、磁盘、网络、进程各面的性能统计,并且可以根据时间范围来展示图标数据。
  6. 创建报警规则。
    1. 切换到 报警规则 页面。
    2. 单击 这里 创建规则。
    3. 在新建报警规则页面填写设置报警的具体参数。
    4. 保存规则设置,完成报警规则的创建。

站点监控

如果ECS实例提供的主要业务应用是网站类型,可以考虑使用站点监控模拟真实用户访问情况,探测API可用性、端口连通性、DNS解析等问题。可以探测域名、IP、端口的连通性、访问响应时间,并对监控结果报警。

操作步骤
  1. 登录 云监控控制台
  2. 在左侧导航栏选择 站点监控 > 站点管理
  3. 单击页面右上角的 新建监控任务,添加新的监测点。

  4. 创建成功后可查看站点监控详情。

开源监控产品介绍

目前业内有不少开源的监控软件,包括zabbix、nagios、zenoss等,每个产品都有各自的特色和优势,下面分别简单介绍一下以上几款产品。

  • zabbix

Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件,85%以上的泛互联网企业都在使用Zabbix做监控解决方案。

zabbix入门容易、上手简单、功能强大并且开源免费,它易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户灵活进行数据采集,而分布式系统架构可以支持监控更多的设备。理论上,通过Zabbix提供的插件式架构,可以满足企业的任何需求。

  • nagios

Nagios是一款开源的企业级监控系统,能够实现对系统CPU、磁盘、网络等方面参数的基本系统监控,以及SMTP,POP3,HTTP,NNTP等各种基本的服务类型。另外通过安装插件和编写监控脚本,用户可以实现应用监控,并针对大量的监控主机和多个对象部署层次化监控架构。

Nagios最大的特点是其强大的管理中心,尽管其功能是监控服务和主机的,但Nagios自身并不包括这部分功能代码,所有的监控、告警功能都是由相关插件完成的。

  • zenoss

Zenoss Core是Zenoss的开源版本,其商用版本为ZenossEnterprise。作为企业级智能监控软件,Zenoss Core允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产。Zenoss同时提供与CMDB关联的事件和错误管理系统,以协助提高各类事件和提醒的管理效率。

Zabbix vs 云监控

Zabbix是第三方开源监控软件,是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

云监控既指在云端运行的监控工具,也指监控在云端运行的应用程序的工具。通过和云计算平台的整合,针对网络、系统、应用等内容提供可用性、用户体验和安全性方面的监控服务。

云监控的到来,无疑给那些对技术不太熟悉的人员带来了福音,可以通过页面单击就可以创建自己的监控项。

产品 优点 缺点
Zabbix
  • 支持多平台、分布式
  • 安装部署简单,多种数据采集插件灵活集成
  • 可实现复杂多条件告警
  • 自带画图功能,得到的数据可以绘成图形
  • 提供多种API接口,支持调用脚本
  • 出现问题时可自动远程执行命令
  • 项目批量修改不方便
  • 中文资料较少,服务支持有限
  • 入门容易,但是深层次需要非常熟悉zabbix并进行大量的二次定制开发,难度较大
  • 系统级别报警、报警邮件、自定义项目报警需要自己设置,过程繁琐
  • 缺少数据汇总功能,数据报表也需要进行二次开发
云监控
  • 无前期成本投入
  • 无需独立服务器
  • 配置及添加监控项简单
  • 页面风格比较适合国人操作
  • 部分平台免费版功能较少,企业级应用费用较高
  • 账户管理功能较弱
  • 修改监控点配置不方便
  • 自定义监控配置麻烦,部分需写脚本
  • 监控项目单一
  • 部分监控项无法实现图形化显示

可以看出,各有各的优劣势。云监控降低我们监控的门槛,给我们提供了便利,但是在一定程度上限制了自定义和扩展。而zabbix可以灵活集成并可通过二次开发实现复杂功能,但是对人员和技能的要求也比较高。

对于上监控以更好地保障系统上线后稳定运行,我们还需要关注监控的一些方法。

除了需要了解我们的常规的监控项如硬件资源、性能、带宽、端口、进程、服务的检测机制之外,还要具备安全意识,比如需要知道哪些服务器可能出现问题,可能被入侵等。

另外,需要定义监控策略,包括告警的优先级、告警内容等;对监控的业务系统进行分级,比如一级系统7*24小时告警,二级系统7*12小时告警。

如果架构比较庞大,也可以对监控对象范围进行分类,如服务器监控、应用程序监控、数据库监控、网络监控等,根据监控对象再细分监控项。每个维护人员都可以根据企业环境总结出一套适合于自身的监控体系,并逐渐精细化和智能化。

通过使用阿里云云监控,能较好地对我们的ECS实例进行监控,使我们及时了解业务的运行状态,并及时提供告警,让我们可以快速定位故障,对我们管理和维护ECS提供了可靠的支持。当然,在此基础上我们也可以结合如zabbix之类的开源监控软件,进一步实现对ECS实例更全面和精准的监控。