基于阿里云云监控的企业级监控平台构建

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
简介: 随着阿里云云监控产品的日渐完善,基于云计算的IT资产监控越来越方便,结合已经开放的API和外部回调接口等功能,企业级客户的监控系统可以变得更加强大。传统需要在主机上装agent的监控体系,例如zabbix以及类似其他的商业软件都不再适用云IT资产,主要体现在:除了ECS可以继续安装agent以外,类似云RDS,云Redis,MaxCompute等云产品根本没有提供这种agent数据采集的入口。

随着阿里云云监控产品的日渐完善,基于云计算的IT资产监控越来越方便,结合已经开放的API和外部回调接口等功能,企业级客户的监控系统可以变得更加强大。传统需要在主机上装agent的监控体系,例如zabbix以及类似其他的商业软件都不再适用云IT资产,主要体现在:

  1. 除了ECS可以继续安装agent以外,类似云RDS,云Redis,MaxCompute等云产品根本没有提供这种agent数据采集的入口。
  2. 云平台的系统事件,例如RDS主机发生了主备切换这些事件,只有云平台本身才会感知,除非集成云平台本身的API,任何外部监控体系没法探测到这些事件。

所以当企业客户的IT资产逐步云化的过程中,至少Iaas层面的监控体系必须依赖于云平台本身的监控体系来做,这不仅仅限于阿里云的云监控,AWS用户中CloudWatch也一样成为了第一选择,大量的商业监控Saas工具围绕云平台本身的监控数据来做,这也是阿里云喊着“被集成”的最好案例。 本文结合阿里云云监控现有功能,以RDS for MySQL为例,列出了在控制台,API以及和自有监控体系对接的最佳实践。

1.基础实践

云监控中RDS 监控频率设置

云监控关于RDS的监控频率分为三档: 5 秒/次 60 秒/次 300 秒/次

· 基础版及内存小于8G的数据库实例不支持5 秒/次的采集频率。

· 默认为5分钟一次

· 修改为1分钟一次

RDS开通1分钟监控频率的实例检测

image001

配置告警规则

NO. 规则名称 报警规则 备注
1 连接数使用率 连接数使用率 >=80% Warn 连续3次就报警
2 只读实例延迟 只读实例延迟 >=5 秒 Warn 连续3次就报警 基础版除外,配置了也不生效
3 IOPS使用率 IOPS使用率 >=80% Warn 连续3次就报警
4 CPU使用率 CPU使用率 >=80% Warn 连续3次就报警
5 磁盘使用率 磁盘使用率 >=80% Warn 连续3次就报警

RDS 初始化告警规则明细

image002

这样报警规则生成后,监控和报警就会按照正常的设定进入到报警阶段,监控数据会在报警规则触发后发送到相应的告警联系人。

2.进阶实践

结合云监控中应用分组,告警模板,告警联系人等功能可以做更多高阶功能的使用,如下图所示

image003

步骤概览

  1. 新增告警联系人中的电话和邮件需要验证码,钉钉机器人可以不配置;
  2. 默认会有一个报警联系组:组名为阿里云主账号;联系人为主账号中填写的人和电话;
  3. 创建应用分组时可以将相同业务的云资源分配到一个组,例如生产环境、测试环境、开发环境;
  4. 当服务器和其他云产品实例非常多时,首先建议按照业务视角为资源创建不同的应用分组,然后通过应用分组来批量管理资源;
  5. 目前告警模板中支持“同比环比”的一些方法;
  6. 报警模板说明

ü 报警模板只能和应用分组配合使用,即报警模板只能使用在资源范围为应用分组的报警规则上。

ü 每个云账号最多能创建100个模板。

ü 每个模板最多包含30个监控项。

ü 报警模板只是创建报警规则的快捷方式,报警模板和报警规则不是一一绑定的关系,即修改报警模板后通过报警模板生成的规则不会被修改。

ü 如果需要批量修改分组的规则,需要将修改后的模板重新应用到分组上。

添加告警联系人

image004

配置告警组

image005

image006

创建应用分组

image007

image008

包含了“事件告警”,针对RDS,有如下RDS系统事件:

事件名称 事件含义 事件状态 事件等级
Instance_Failover 实例主备切换 Executed WARN
Instance_Failure_Start 实例故障开始 Executing CRITICAL
Instance_Failure_End 实例故障结束 Executed CRITICAL

image009

配置报警模板

可以在一个模板上添加多个云产品的告警规则;此处我选择分产品创建模板,方便各云产品负责人维护更新对应模板。

image010

image011
image012

告警表达式包括以下:
image013
image014

除了普通的数值对比外,增加了“同比环比”。

image015
image016
image017
image018
image019

3.API生成模板实践

上述实践中的实施都是基于控制台的手动配置,结合云监控已有的API借口,可以把这些配置规则全部脚本化,方便批量部署,结构如下

image020

No. Action CMS API URL
1 添加告警联系人 PutContact 创建或者修改报警联系人信息
2 配置告警组 PutContactGroup 创建或者修改报警联系人组
3 创建应用分组 CreateMonitorGroup 创建一个应用分组
CreateMonitorGroupInstances 添加资源到应用分组
4 配置报警模板 CreateMetricRuleTemplate 创建报警规则模板
5 应用模板生效 ApplyMetricRuleTemplate 将报警模板应用到分组,生成报警规则

需要提前准备的数据清单:

报警联系人

ContactName String 报警联系人姓名
Describe String 描述
Channels.SMS String 电话
Channels.Mail String Email地址
Channels.DingWebHook String 钉钉机器人Webhook
Channels.AliIM String 旺旺联系方式

示范数据 展开源码

{
    "Contacts": {
        "Contact": [
            {
                "Channels": {
                    "DingWebHook": "https://oapi.dingtalk.com/robot/send?access_token=***",
                    "Mail": "test1@cloudcare.cn",
                    "SMS": "186****3996"
                },
                "Name": "test1",
                "Desc": "test1"
            },
            {
                "Channels": {
                    "DingWebHook": "https://oapi.dingtalk.com/robot/send?access_token=98d8ca511f903cdce23c6ba77559e5ef4316a621b19e7698f572f551ae102ffd",
                    "Mail": "test2@cloudcare.cn",
                    "SMS": "186****3090"
                },
                "Name": "test2",
                "Desc": "test2"
            }
        ]
    }
}

如果API添加联系人时,同时添加联系人的邮件或手机,阿里会发送邮件或短信给联系人进行确认。此处与控制台配置的验证方式不同。

image021

报警联系人组

ContactGroupName String 报警联系组的名称。
ContactNames.N RepeatList 报警联系人名称。N的取值范围为 1~100。
Describe String 报警联系组描述信息。

示范数据 展开源码

{
    "ContactGroupName": "Test",
    "Describe": "测试",
    "ContactNames": ["test1", "test2"]
}

应用分组名

GroupName String 应用分组名称。
ContactGroups String 报警联系人组。应用分组的报警通知会发送给此处指定的报警联系人组

示范数据 展开源码

{
    "GroupName": "生产A",
    "ContactGroups": "TestGroup,云账号报警联系人"
}

应用分组资源明细

GroupId Long 应用分组ID。
Instances.N.Category String 资源实例所属的云产品名或者产品的规格 目前支持的产品有: 展开源码 ECS(包括阿里云和非阿里云主机),`RDS(云数据库RDS版),ADS(分析型数据库),SLB(负载均衡),VPC(弹性IP),APIGATEWAY(API网关),CDN,CS(容器服务Swarm版),DCDN(全站加速),DDOS,EIP(弹性公网IP),ELASTICSEARCH,EMR(E-MapReduce),ESS(弹性伸缩),HBASE,IOT_EDGE(iot边缘计算),K8S_POD(k8s pod),KVSTORE_SHARDING(Redis集群版),KVSTORE_SPLITRW(Redis读写分离版),KVSTORE_STANDARD(Redis标准版),MEMCACHE,MNS(消息服务),MONGODB(MongoDB 副本实例),MONGODB_CLUSTER(MongoDB集群版本),MONGODB_SHARDING(MongoDB分片集群),MQ_TOPIC(消息服务TOPIC),OCS(旧版云数据库Memcache),OPENSEARCH(开放搜索),OSS(对象存储OSS),POLARDB,PETADATA(HybridDB for MySQL),SCDN(安全加速),SHAREBANDWIDTHPACKAGES(共享带宽包),SLS(日志服务),`VPN(VPN网关)。
Instances.N.InstanceId String 资源实例ID。
Instances.N.InstanceName String 实例名称。
Instances.N.RegionId String 实例所在的RegionId,例如cn-hangzhou。

示范数据 展开源码

{
        "Resource": [
            {
                "Category": "ECS",
                "InstanceId": "i-uf669udf3ficd8huv1q3",
                "RegionId": "cn-shanghai",
                "InstanceName": "财务人工管理系统FMS"
            },
            {
                "Category": "RDS",
                "InstanceId": "rm-uf66dbs496flz4118",
                "RegionId": "cn-shanghai",
            }
        ]
}

报警规则

报警规则 example 展开源码

{
    "Resource": {
        "Name": "生产数据库模版v.19.05.28.01",
        "Description": "针对生产环境的数据库自定义的监控模板",
        "AlertTemplates": {
            "AlertTemplate": [
                {
                    "Category": "rds",
                    "MetricName": "ConnectionUsage",
                    "Namespace": "acs_rds_dashboard",
                    "Selector": {},
                    "RuleName": "连接数使用率",
                    "Escalations": {
                        "Critical": {
                            "Statistics": "Average",
                            "Threshold": "90",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        },
                        "Info": {
                            "Statistics": "Average",
                            "Threshold": "70",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        },
                        "Warn": {
                            "Statistics": "Average",
                            "Threshold": "80",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        }
                    }
                },
                {
                    "Category": "rds",
                    "MetricName": "DiskUsage",
                    "Namespace": "acs_rds_dashboard",
                    "Selector": {},
                    "RuleName": "磁盘使用率",
                    "Escalations": {
                        "Critical": {
                            "Statistics": "Average",
                            "Threshold": "90",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        },
                        "Info": {
                            "Statistics": "Average",
                            "Threshold": "70",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        },
                        "Warn": {
                            "Statistics": "Average",
                            "Threshold": "80",
                            "Times": 3,
                            "ComparisonOperator": "GreaterThanOrEqualToThreshold"
                        }
                    }
                }
            ]
        }
    }
}

应用模板生效

GroupId Long 应用分组ID。
TemplateIds String 报警模板的ID。
ApplyMode String o GROUP_INSTANCE_FIRST:实例分组优先, 即应用报警模板的时候,以分组实例优先,如果分组中不存在这种实例则忽略模板中的规则。 o ALARM_TEMPLATE_FIRST:模板实例优先,即应用报警模板的时候,不管分组中是否存在这种实例,都创建出这种规则。
EnableEndTime Long 报警生效的结束时间周期, 选值为00-23,表示00:59 到23:59。
EnableStartTime Long 报警生效的起始时间周期, 选值为00-23,表示00:00 到23:00。
SilenceTime Long 通道沉默周期,单位为秒。默认86400秒(1天)。监控数据持续超过报警规则阈值时,每个沉默周期内只发送1次报警通知。
Webhook String 报警发生时会回调指定的URL地址。向URL发送POST请求。

示范数据 展开源码

{
    "SilenceTime": 86400,
    "EnableStartTime": 00,
    "EnableEndTime": 23,
    "ApplyMode": "GROUP_INSTANCE_FIRST",
    "Webhook": "https://oapi.dingtalk.com/robot/send?access_token=98d8ca511f903cdce23c6ba77559e5ef4316a621b19e7698f572f551ae102ffd",
    "TemplateIds": "139182,139185",
    "GroupId": 5217650
}
 
 

报警结果验证

返回数据格式 展开源码

{
    "Resource": {
        "AlertResults": [
            {
                "RuleId": "applyTemplate0fb2127a-98df-4cf6-b563-22f19d16ced6",
                "Success": true,
                "RuleName": "连接数使用率",
                "Code": 200,
                "GroupId": 5217650
            },
            
            {
                "RuleId": "applyTemplate06d81824-e95d-4d94-839a-a9d32f35e8a8",
                "Success": true,
                "RuleName": "CPU使用率",
                "Code": 200,
                "GroupId": 5217650
            }
        ],
        "GroupId": 5217650
    },
    "RequestId": "1E754CA9-932C-4859-B814-69E7460508BA",
    "Success": true,
    "Code": 200
}

以上是基于RDS的阿里云云监控最佳实践,其他阿里云产品监控体系都可以围绕云监控展开。此外,云监控的数据展现和告警可以和企业自有的IT监控体系做深度结合,把中间件,日志,容器等对象的监控指标和图形展示结合,构建完整统一的监控平台。

相关实践学习
RocketMQ监控/告警一站式搭建应用
RocketMQ监控/告警一站式搭建演示
目录
相关文章
|
1月前
|
弹性计算 监控 数据安全/隐私保护
阿里云ECS云监控界面
阿里云ECS云监控界面
792 2
|
1月前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
401 2
|
1月前
|
机器学习/深度学习 人工智能 算法
【AAAI 2024】再创佳绩!阿里云人工智能平台PAI多篇论文入选
阿里云人工智能平台PAI发表的多篇论文在AAAI-2024上正式亮相发表。AAAI是由国际人工智能促进协会主办的年会,是人工智能领域中历史最悠久、涵盖内容最广泛的国际顶级学术会议之一,也是中国计算机学会(CCF)推荐的A类国际学术会议。论文成果是阿里云与浙江大学、华南理工大学联合培养项目等共同研发,深耕以通用人工智能(AGI)为目标的一系列基础科学与工程问题,包括多模态理解模型、小样本类增量学习、深度表格学习和文档版面此次入选意味着阿里云人工智能平台PAI自研的深度学习算法达到了全球业界先进水平,获得了国际学者的认可,展现了阿里云人工智能技术创新在国际上的竞争力。
|
2月前
|
弹性计算 人工智能 安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
431 0
|
2月前
|
Java Go Maven
阿里云云效问题之使用香港构建集群有审计要求如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
130 0
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
478 0
|
1月前
|
弹性计算 安全 定位技术
幻兽帕鲁服务器搭建攻略:【阿里云平台快速上手指南】
2024年,火爆畅销的《幻兽帕鲁》游戏让无数玩家着迷不已!那么,您是否急切想要拥有一个能与伙伴们一起畅快玩耍的游戏服务器呢?现在就跟随若城的脚步,一起动手搭建一个属于自己的《幻兽帕鲁》服务器吧!让这个新年有心意
|
2月前
|
弹性计算 Linux 数据安全/隐私保护
幻兽帕鲁服务器搭建攻略:阿里云平台快速上手指南
2024年,火爆畅销的《幻兽帕鲁》游戏让无数玩家着迷不已!那么,您是否急切想要拥有一个能与伙伴们一起畅快玩耍的游戏服务器呢?现在就跟随若城的脚步,一起动手搭建一个属于自己的《幻兽帕鲁》服务器吧!让这个新年有心意, 让这个寒假更有趣
75094 10
|
8天前
|
弹性计算 安全
电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
阿里云第八代ECS实例,搭载第五代英特尔至强处理器与飞天+CIPU架构,提升企业云服务安全与算力。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.76bf7e5al1Zn4U) ![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_f422f7cb775444bbbfc3e61ad86800c2.png)
33 14
|
28天前
|
弹性计算 网络协议 关系型数据库
网络技术基础阿里云实验——企业级云上网络构建实践
实验地址:<https://developer.aliyun.com/adc/scenario/65e54c7876324bbe9e1fb18665719179> 本文档指导在阿里云上构建跨地域的网络环境,涉及杭州和北京两个地域。任务包括创建VPC、交换机、ECS实例,配置VPC对等连接,以及设置安全组和网络ACL规则以实现特定服务间的互访。例如,允许北京的研发服务器ECS-DEV访问杭州的文件服务器ECS-FS的SSH服务,ECS-FS访问ECS-WEB01的SSH服务,ECS-WEB01访问ECS-DB01的MySQL服务,并确保ECS-WEB03对外提供HTTP服务。

热门文章

最新文章