CloudFront服务如何做好POP节点覆盖率监控?巧用亚马逊云科技日志通!

Amazon CloudFront
0
0
## AWS CloudFront服务介绍  AWS CloudFront 是亚马逊云科技(Amazon Web Services,AWS)提供的全球内容分发网络(CDN)服务,其主要目的是加速内容传递、提供低延迟、高可用性和高性能的用户体验。CloudFront 将内容(如网站、图像、视频、应用程序数据等)缓存在全球各个边缘位置,使用户能够更快速地访问这些内容。 ## 客户案例分享 ### 客户需求 客户使用了 AWS CloudFront 服务,为了保障静态资源的快速下载,能给客户访问应用提供良好的用户体验,客户打算对 CDN 服务质量进行监控,该监控是为了确保静态资源能就近下载,而不是跨其他区域边缘节点下载导致下载速度变慢,进而影响客户浏览体验。 ### 问题挑战 AWS CloudFront 服务依赖的 POP 站点资源属于第三方公司运营,并非属于 AWS 平台资源,所以在监控 CDN 服务质量方面面临了较大的挑战,无法直接获取对 POP 站点服务状态的监控指标。 ### 解决方案 在充分了解客户的需求和痛点之后,聚云科技选择结合亚马逊云科技日志通解决方案,为客户搭建和提供便捷的服务日志收集功能,通过对 AWS CloudFront 站点资源访问日志的 x-edge-location 进行统计,计算其覆盖率来实现对 CDN 服务质量的监控,通过在规定时间段内统计日志字段 x-edge-location 的占比从而确定 POP 站点的服务质量,达到预先告警的需求目标。 > 关于日志通:日志通解决方案(Centralized Logging with OpenSearch)是亚马逊云科技提供的基于多个AWS大数据产品组件集成的一整套解决方案,该方案提供全面的日志管理和分析功能,帮助用户简化日志分析管道的构建。方案基于[Amazon OpenSearch Service](https://aws.amazon.com/cn/opensearch-service/?trk=cndc-detail) 构建,可有效地完成日志摄取、日志处理和日志可视化。 ### 操作步骤 **Step 1.1 部署日志通** [参考链接](https://link.zhihu.com/?target=https%3A//aws-solutions.github.io/centralized-logging-with-opensearch/zh/implementation-guide/deployment/with-cognito/) 使用 [AWS CloudFormation](https://aws.amazon.com/cn/cloudformation/?trk=cndc-detail) 模板部署示例图片如下: ![01.png](https://dev-media.amazoncloud.cn/863fa8c43c91477fa150e2d3e6259774_01.png "01.png") ![02.png](https://dev-media.amazoncloud.cn/9ef0f3c5f5f744dc9ed858f92592e856_02.png "02.png") 部署完成后,使用网页浏览器打开 WebConsoleUrl ![03.png](https://dev-media.amazoncloud.cn/f45cc61054fe4e3693ef4b23370c1cc4_03.png "03.png") **Step 1.2 创建OpenSearch实例** [OpenSearch参考链接](https://link.zhihu.com/?target=https%3A//docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html)(具体操作步骤不再阐述) **注意事项:**仅支持启用了细粒度访问控制的 [Amazon OpenSearch Service](https://aws.amazon.com/cn/opensearch-service/?trk=cndc-detail) 域。在security configuration(安全配置)中,access policy (访问策略)应该和下图类似: ![04.png](https://dev-media.amazoncloud.cn/edde8c03e05e4326aad1e3864c61c210_04.png "04.png") 创建实例如截图所示: ![05.png](https://dev-media.amazoncloud.cn/c5955fc96b8d4c19be001710d599a352_05.png "05.png") **Step 1.3 日志通导入 [Amazon OpenSearch Service](https://aws.amazon.com/cn/opensearch-service/?trk=cndc-detail) 域** ![06.png](https://dev-media.amazoncloud.cn/3c6f039b9df1464db534ee341630ab50_06.png "06.png") **Step 1.4 AWS CloudFront 日志摄取到 [Amazon OpenSearch Service](https://aws.amazon.com/cn/opensearch-service/?trk=cndc-detail) 中** [日志摄取操作参考链接](https://link.zhihu.com/?target=https%3A//aws-solutions.github.io/centralized-logging-with-opensearch/zh/implementation-guide/aws-services/cloudfront/) 选中定位geo_country(最好定位的字段都选中) ![07.png](https://dev-media.amazoncloud.cn/c780bf79b3894eac9be75920432292a9_07.png "07.png") 示例图片如下: ![08.png](https://dev-media.amazoncloud.cn/48d25d2352334130b8e298c0fd0910f3_08.png "08.png") 生成的index如下图: ![09.png](https://dev-media.amazoncloud.cn/45da065ccb4e42ecb55ad5dccd36dff6_09.png "09.png") 查看数据情况: ![10.png](https://dev-media.amazoncloud.cn/d8d9c8ec568e40eda74fd7cf149fb263_10.png "10.png") **Step 2.在kibana上面配置alerting监控** 配置告警Destinations: ![11.png](https://dev-media.amazoncloud.cn/07c99ebaedaf41d6a36ea5f3d4bfdb6b_11.png "11.png") 配置monitor: ![12.png](https://dev-media.amazoncloud.cn/76366495a19443ba84a534914f680bce_12.png "12.png") 配置内容如下(因出口为香港地址,所以以香港为例): ```JSON { "size": 0, "query": { "bool": { "filter": [ { "range": { "timestamp": { "from": "{{period_end}}||-60m", "to": "{{period_end}}", "include_lower": true, "include_upper": true, "format": "epoch_millis", "boost": 1 } } } ], "adjust_pure_negative": true, "boost": 1 } }, "aggregations": { "percentage": { "filters": { "filters": [ { "match": { "geo_region": { "query": "Hong Kong", "operator": "OR", "prefix_length": 0, "max_expansions": 50, "fuzzy_transpositions": true, "lenient": false, "zero_terms_query": "NONE", "auto_generate_synonyms_phrase_query": true, "boost": 1 } } } ], "other_bucket": false, "other_bucket_key": "_other_" }, "aggregations": { "total": { "value_count": { "field": "x-edge-location" } }, "part": { "filter": { "terms": { "x-edge-location": [ "HKG54-C1", "HKG60-C1", "HKG62-C1", "HKG62-C2" ], "boost": 1 } }, "aggregations": { "part_count": { "value_count": { "field": "x-edge-location" } } } }, "percentage": { "bucket_script": { "buckets_path": { "num_hk_pop": "part>part_count", "total": "total" }, "script": { "source": "params.num_hk_pop / params.total ", "lang": "painless" }, "gap_policy": "skip" } } } } } } ``` 需要调整的内容如下: 1. "from": "{{period_end}}||-60m这个为1小时,可以自行调整粒度 2. "geo_region"目前为"Hong Kong",客户可以调整自己想要的国家/地区 3. "x-edge-location"要修改为与"geo_region"对应可正常提供服务的pop点列表 结果输出如下: ```JSON { "_shards": { "total": 25, "failed": 0, "successful": 25, "skipped": 0 }, "hits": { "hits": [], "total": { "value": 1489, "relation": "eq" }, "max_score": null }, "took": 10, "timed_out": false, "aggregations": { "percentage": { "buckets": [ { "doc_count": 937, "total": { "value": 937 }, "part": { "doc_count": 863, "part_count": { "value": 863 } }, "percentage": { "value": 0.9210245464247598 } } ] } } } ``` Trigger:\ ctx.results\[0].aggregations.percentage.buckets.percentage > 0.9 (0.9做为自定义阈值,低于该值可以告警。从而判断pop的覆盖率) ![13.png](https://dev-media.amazoncloud.cn/9e398ffaffa6485c8c41560cdf6818dd_13.png "13.png") 查看监控 ![14.png](https://dev-media.amazoncloud.cn/1d6cc7a92b77486c857088db9b07587c_14.png "14.png") ## 总结 日志通解决方案可帮助客户收集AWS CloudFront站点资源的访问日志,最终将CDN资源访问日志落地OpenSearch。 在此基础上,聚云科技利用kibana的alert模块的monitor功能,以“包含有香港区域pop站点全部访问日志与香港区域总访问日志的占比”的数据,监测该区域CDN资源的有效使用情况,在低于既定阈值的触发条件下实现告警,最终帮助客户实现监控AWS CloudFront服务质量的需求目标。
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭