大型互联网企业全链路应用监控系统解决方案


大型互联网企业全链路应用监控系统解决方案 Mercury 姚捷@唯品会 特卖 闪购 正品+ + 500 error “Logview之痛” Logview是一款基于Nginx日志的监控平台 但随的业务规模的不断扩展,遇到的问题 •  基于Nginx access log,无法从代码级别进行监控 •  随着服务化的改造,流量已经不经过Nginx •  支持告警,但无法通过告警跟踪到问题的root cause •  告警规则配置呆板 ,维护变更代价大 •  无法跟踪业务之间的调用关系 •  无法快速定位应用性能瓶颈 •  应用出了问题无法关联异常信息 •  大促经常挂 •  …… “寻求新方向” Google Dapper…… “行业解决方案” •  淘宝 - Eagle Eye •  点评/携程 - CAT •  新浪微博 - Watchman •  Twitter - Zipkin •  听云Server “为什么选择自建平台?” 除了…… •  系统复杂 上千个业务域,异构系统,同时存在多种技术(JAVA,PHP,OSP,Play等) •  海量数据 峰值每分钟上亿日志量,端到端海量数据的收集/计算/存储/检索 •  自建服务化体系监控 服务框架客户端,Proxy端,服务端需要定制化埋点和数据透传机制 •  高度可治理 端到端的监控体系自监控,大促动态调整采样率和日志采集降级 •  快速接入/升级便捷 无侵入埋点,快速接入,同时为在复杂的体系中的推广和升级提前布局 •  与公司体系无缝对接 满足不同角色的需求,同时与唯品会的发布/监控/问题跟踪流程无缝对接 •  灵活的告警策略/高效告警 多维度告警,多梯度告警,多级别告警,多时效性告警,同时支持告警收敛 •  唯品会自主研发的应用性能监控和问题跟踪平台 •  基于客户端探针上报应用调用链相关日志 •  基于流式计算和大数据存储和检索技术 •  提供实时和准实时告警,并快速定位根源问题 •  分布式应用调用链路跟踪 •  提供快速有效的数据展现和分析平台 “Mercury 介绍” “为唯品会的监控生态而设计” 人 流程 技术 •  开发人员 •  监控人员 •  运维人员 •  运营人员 •  管理人员 •  发布流程 •  监控流程 •  故障/问题定位流程 •  故障/问题修复流程 •  故障/问题回顾流程 •  大数据采集技术 •  大数据实时计算技术 •  大数据存储/分析技术 “核心价值” 生产环境 端到端 性能可视化 完整体现应用 拓扑 关系 快速故障 告警 并定位 根源 问题 01 02 03 “海量数据” •  > 1万+应用服务器接入 •  接入业务域 500+ •  大促峰值每分钟处理日志 1个亿 •  日均处理日志量 150亿+ •  日均存储日志 5T+ •  日均索引量 1T “完整的全链路监控系统” •  数据埋点/采集 •  指标计算 •  指标存储/查询/展现 •  调用链存储/查询/展现 •  告警/问题定位 •  自监控 •  治理 “技术栈” Spark AspectJ Flume Kafka HBase Open TSDB Elastic Search Bootstrap Angular JS Dynamic Weaving Real-Time Search and Analytic Big Data Processing Time Series Database Distributed Database Google Dapper Distributed Collection Distributed, publish-subscribe Messaging System Grunt Python “系统架构” APP MC Client ZK/MySQL Config Center 策略/配置下发 Flume Agent MC Agent Trace/Error Log 日志落盘 日志收集 Kafka 日志上报 Real-Time MC Alarm Spark 实时秒级告警指标计算 指标聚合结果推送 MC FlumeToHBase HBase Open TSDB 收集指标数据 指标数据落地 收集原始日志 原始日志落地 Elastic Search MC FlumeToES 收集Trace日志 建立索引 MC Alarm 告警推送到ES 周期性指标告警规则判定 告警推送ES Data Service 查询数据 MC Dashboard MAT 查询数据,绘图 推送告警到问题 跟踪系统 查询数据 告警规则下发 调用耗时 调用参数 调用结果 异常日志 业务关键字 事件“调用链” 每个请求都生成全局唯一的Trace ID/Span ID,端到端透传到上下 游所有的节点,通过Trace ID将不同系统的孤立的调用日志和异常日志串联在 一起,同时,通过Span ID表达节点的父子关系 ᕆ௔ҁ᫷ᰁᕆਮಁᒒᨮᨱ෭ப៧ፏ ҄ Agentᨮᨱතᵞ޾വᭆ෭ப҂܋•  ݢ ᚙභ௳מ•  භఽ Ӥಸ௳מ•  ਮಁᒒҁMercury Client ҄ Flume Agent҂ᇇ๜҈ᇫா ᯻໏҂ڦ•  ᯻໏ሲۖாᦡᗝҁრ१᯻໏ ҄ ऒᕆ •  ෭ப᯻ᵞᔉଶݢᴳᕆҁHTTP҅OSP҅SQL҅Cache҅Method҅ALL҂ •  ᵞ౮ᯈᗝӾஞ҅ਮಁᒒṛݢᯈᗝ௔ “客户端 - 举重若轻” 高可治理 高性能 ٞ֟හഝع•  ݳቘᦡᦇ෭பහഝ໒ୗ҅᭿ ۸փᬌ҅ྲJSONᜓ፜ᬪӞ܎ଃ਼ڜ•  ᭗ᬦAVROଧ ࣁ5%զٖګ•  හഝ᯻ᵞ֗ᨮ᫹҅੒ଫአጱ୽ߥഴ ۸෭ப໒ୗ҅አಁ෫ఽᎣٵ•  ຽ •  PHP᯻አSDK҅ᶼईࣁ໛ຝӾ҅੝ᰁդᎱ •  Java᯻አAOPईᅩ҅Zero Coding҅੒ଫአ᭐ก 高效率 Elastic Search҅ٚӞᲫਧ֖᧣አ᱾ັض  • Ӟ๵᧣አ᱾ਂכHbase҅TraceId؉ԅRowKey҅Ӟᤈف•  Trace Log ᬰ ᵞᗭړ•  ᭗ᬦElastic SearchୌᒈTraceᔱ୚҅ೲ෭ୌᒈᔱ୚҅ݳቘೆ 高速查询 海量存储 •  ᯻አShift to metricොୗᦡᦇMetric Name (E.g. response_time_osp_cart) Cardinalityय़ੜګ•  ഴ ᰁ೰ຽقኸכ•  चԭOpenTSDB҅ •  内核参数/JVM参数调优 •  数据流控 •  纪录数据回放Checkpoint,支持容错 •  二阶段计算模式 •  Wall Time or Event Time •  Kafka端建立多Topic,Spark按需消费,降级内存开销 流式计算 服务端-海纳百川”“ ᗑἕᦊ҈ӻ௔۸҈ऒ҈Ԇ๢҈API҂قᦄҁޞ•  ग़੶ ᯈᗝڞᦄᥢޞڦ•  ग़ᖌଶ҅ग़ༀଶ҅ग़ᕆ ၝړᦄޞᦄᒽኼ҈ޞᐶړ  • 告警策略 指标告警 ᦄय़ፏޞᦄവᭆޞ  • ᯈړᦄ๢ۖாޞ  • ᰦٖړᒒ୊෸2ک•  ᒒ ᦄත඼ޞ  • ᦄޞ•  ୑ଉ෭ப޾୑ଉԪկ ᒒ୊෸30ᑁٖک•  ᒒ 秒级告警 告警平台建设”“ 功能都有了,我们还缺什么? Compaction Ძ೰ຽ҅e.g. Read Request҈Write Request҈ى•  ፊഴHBase •  ፊഴSpark Slow Batch Job Ძ೰ຽ҅e.g. Channel Sizeى•  ፊഴFlume ࣁ୊᬴ਂވ•  ፊഴKafka Lag҅Ꮯᦊӥ჋ၾᩇฎ ݗၾ௳හف•  ፊഴKafka Topic҅೮ᖅᥡ੊topic 组件监控 •  ፊഴagentጱஞ᪡ᇫா ୑ଉ҅channel sizeय़ੜํވᭆ෭பጱᇫா҅ฎݎ•  ፊഴagent •  ፊഴਮಁᒒ෭ப៧ፏᇫா 客户端监控 •  监控跨机房网络流量 GC 等指标做全面监控和告警 •  服务端各组件接入Zabbix,对CPU/Mem/Disk/Net/JVM/ 系统层监控 监控质量保障-笃定泰山”“ 看看画面 THANK YOU
还剩25页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

五嘎子

贡献于2016-08-06

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf