【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

MakeMyTrip 在监控大规模电子商务网站中的做法

  • 2018-01-31
  • 本文字数:1506 字

    阅读完需:约 5 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

MakeMyTrip 是一家在线提供旅游服务的企业。近期,MakeMyTrip 团队在 Medium 上发表了一系列文章,介绍了企业实现大型电子商务网站监控的原理及架构设置。他们在实现对整个技术栈的监控中,主要使用了一种由开源工具构建的混合架构。

团队发表的前两篇文章主要针对如何监控系统、网络和应用,其中重点介绍了所使用的监控流水线。MakeMyTrip 的架构散布于多个数据中心和一些私有/ 公有云,由真实物理机以及虚拟机组成。架构中部署的关键工具包括实现报警的Zabbix,以及一个采集、聚合和存储度量的六阶段流水线。该流水线主要由开源工具构建,其中使用了OpenTSDB、Kafka、Elasticsearch 和Grafana,还有一些企业自研的工具。

文章中介绍了企业所监控的一些关键度量,包括CPU 平均负载、内存、线程、网络连接、磁盘空间和性能等。对于电子商务网站而言,网络监控至关重要。MakeMyTrip 的网络监控实现为多个层级,包括使用ping 监控跨数据中心的连通性,使用 Observium 监控网络设备带宽,使用 Uptime Robot 监控外部可访问性和系统运行时间及负载情况(uptime)。监控的实现原理通常分为两大类,即拉取模式(Pull)和推送模式(Push)。在拉取模式下,存在一个集中式系统,轮询各个被监控系统并从中拉取数据。 Nagios 等多种传统的监控系统主要遵循该模式,但是其中部分系统也提供推送模块。在推送模式下,每个被监控系统中需要运行一个代理程序。该代理程序采集监控数据,并将数据推送到一个中央系统。 Prometheus 等工具使用了推送模式,它们提供推送功能选项。MakeMyTrip 团队选择使用推送模式,并在每台服务器上运行了Zabbix 代理。

监控流水线分六个阶段,实现从日志中抽取度量并推送到时序数据库 OpenTSDB 。第一个阶段负责收集日志。流水线通过运行在每个服务器上的 syslog-ng 代理,以 UDP 方式汇集到一个中央 Logstash 服务器。syslog-ng 可在类 UNIX 系统上实现 syslog 协议。第二阶段进而使用 grok 分析器分析收集的日志,并推送到两个不同的 Elasticsearch( ELS )集群。每天分析的日志总量可达 700GB。第三阶段使用称为“Data Monster”的企业自研工具,周期性轮询 Elasticsearch 集群,从中抽取度量。进而在第四阶段使用调度系统计算各个度量。该调度系统基于 Celery Beat、RabbitMQ 和 MySQL 实现,使用 Data Monster 从 ELS 拉取数据,并推送到 Kafka 集群。第五阶段生成实际写入到 OpenTSDB 的PUT语句。 Apache Kafka 通常用于构建持久化流数据队列。在流水线中,Kafka 消费者处理消息,并推送到 OpenTSDB 中持久存储。第六阶段使用 Grafana 查询数据库中的消息,生成可视化的仪表盘展示。架构使用了 Zabbix 生成报警。此外为保证高可靠性,OpenTSDB 是安装在多个节点上的。但是文中并未给出具体的设置情况。

在云环境中,机器的生命周期是短暂的,这对于需要掌握被监控机器的监视工具而言是一个挑战。MakeMyTrip 的团队通过使用 Zabbix 的自动注册功能解决了这一问题。Zabbix 支持使用模板注册一个新机器。团队使用了一种基本的 Linux 模板,用于 CPU 使用率、平均负载、Java 线程等通用系统度量。还使用了一种特定于应用的模板,用于健康检查和应用性能管理。

团队的关键关注点还包括,如何确定实时监控下的度量粒度问题,以及如何对 HTTP 响应代码和请求趋势等度量进行近距离观察。前者可支持团队快速地响应并定位问题,后者可作为一种早期预警系统,对客户或服务器端错误和应用性能突发问题做出预警。对请求数量变化趋势的深入研究,也有助于团队进一步规划容量。

查看英文原文: How MakeMyTrip Monitors Its Large-Scale E-Commerce Website

2018-01-31 18:001091
用户头像

发布了 391 篇内容, 共 126.8 次阅读, 收获喜欢 255 次。

关注

评论

发布
暂无评论
发现更多内容

自定义对象池在Caffeine框架中实践

FunTester

抓包神器wireshark安装保姆级教程

霍格沃兹测试开发学社

nft外包开发团队流程和注意事项

西安链酷科技

NFT开发链游开发

架构实战营 - 模块五作业

满心

架构实战营

软件测试学习笔记丨什么是装箱和拆箱

测试人

软件测试

构建只涨不跌的DApp代币合约系统:LP分红项目开发详解

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Telegram电报机器人系统开发,关键词回复系统开发

西安链酷科技

tg机器人开发

智能推送SDK,你知道的东西太多了!

MobTech袤博科技

区块链公链搭建终极流程 西安公链搭建技术团队

西安链酷科技

交易所开发 dapp开发 公链开发 区块链软件开发

X314协议发型、币安链协议发币

西安链酷科技

五大“数据安全咨询服务能力”,让数据安全建设不再迷茫!

极盾科技

数据安全

云手机运营TikTok需要流量吗?

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok运营

从零基础到精通,抓包神器fiddler保姆级使用教程(一)

霍格沃兹测试开发学社

电商新宠:淘宝拍立淘API接口助力精准搜索商品信息

技术冰糖葫芦

API Explorer api 货币化

海外短剧系统开发,多语言搭建影视类分销软件开发

西安链酷科技

短剧app开发

交易所钱包系统开发

西安链酷科技

交易所开发软件开发

【教程】四种方法将App打包为IPA文件类型

雪奈椰子

运维工具如此割裂,九招帮你统一纳管

观测云

运维‘

小米14 Ultra影像私享会在长春万象城成功举办

Geek_2d6073

碳实践 | 你真的会做碳数据收集么?入门必看!

AMT企源

碳管理 碳实践 碳资产

dapp开发流程以及应用

西安链酷科技

DAPP系统开发

深入了解 Docker:革命性的容器化技术

霍格沃兹测试开发学社

从IoTDB的发展回顾时序数据库演进史

Apache IoTDB

ios ipa包上传需要什么工具

海外短剧APP开发:短视频出海,多语言爽剧,国际支付定制开发

西安链酷科技

短剧app开发

海外云手机提供的当地IP有什么好处?

Ogcloud

云手机 海外云手机 云手机海外版 海外原生IP 海外IP

如何使用pgvector为RDS PostgreSQL构建专属ChatBot?

阿里云瑶池数据库

数据库 阿里云 数据库开发 ChatGPT

二维码使用技巧:自动填充信息,提高表单填写效率

草料二维码

二维码 草料二维码

海外云手机怎样助力Tik Tok运营

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok运营

如何在 Pytest 中添加日志记录

霍格沃兹测试开发学社

天天挖宝零撸游戏app项目软件开发搭建

西安链酷科技

软件开发

MakeMyTrip在监控大规模电子商务网站中的做法_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章