生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

Stack Overflow 监控系统内部架构初探

  • 2018-12-24
  • 本文字数:1566 字

    阅读完需:约 5 分钟

Stack Overflow监控系统内部架构初探

Stack Exchange 架构主管 Nick Craver 在最近的一篇文章中介绍了他们的监控系统。他在文章中讨论了监控策略背后的理念和动机,并介绍了他们的工具集——主要是 Bosun、Grafana 和 Opserver。


Stack Overflow 及其姐妹站点 Stack Exchange 运行在.NET 和 MS SQL Server、IIS Web 服务器、HAProxy(作为负载均衡器)以及 Redis 和 Elasticsearch 提供的服务上。他们的主要数据中心位于纽约,在俄勒冈州有一个故障转移中心。Craver 指出,Stack Exchange 的监控通常包括“日志、指标、运行状况检查和分析”,他们使用 Bosun、Opserver、Grafana 和 MiniProfiler 作为主要工具。


Stack Exchange 监控系统的数据源是日志、运行状况检查和时间序列指标。在日志方面,他们使用了标准机制和自定义库将日志推送到数据库中。日志包含了来自 HAProxy 负载均衡器的 HTTP 请求汇总日志以及来自 Logstash 的日志事件。他们的运行状况检查可以测试最终用户看到的内容,例如主页。度量指标被收集并保存在自己构建的开源监控工具 Bosun 中,Bosun 将 OpenTSDB 作为后端存储。Bosun 还会发送警报,Pagerduty 负责处理事故升级。他们还有一个叫作 Opserver 的工具——显示整个监控系统的仪表盘视图。



所有 Stack Exchange 的应用程序都使用一个叫作 StackExchange.Exceptional 的日志记录库,这个库将日志发送到 MSSQL Server。它其实是.NET 日志库 ELMAH 的一个分支。Redis、Elasticsearch 和 SQL Server 将日志记录到标准的位置,但不清楚这些日志是否会被发送到中央服务器进行聚合和搜索。来自网络设备的日志将被发送到 Logstash,并可以通过 Kibana 仪表盘查看。可以使用 MiniProfiler 详细分析页面加载时间,MiniProfiler 将显示跨越各层的方法调用时间。


Bosun 先是由 Stack Exchange 开发,然后被开源出来。Bosun 的主要功能是根据历史数据测试警报,提供了用于计算时间序列数据的查询语言、模板化警报以及时间序列趋势的警报和预测。与 Nagios、Zabbix 等传统监控工具不同,但与 Prometheus 等现代监控工具类似,Bosun 不需要为每台服务器设置单独的警报。对于跨所有服务器的时间序列测量(例如 CPU 使用率),设置单个阈值检查就足够了。警报当中包含了违反阈值的时间序列清单,可以用来识别有问题的服务器。


Bosun 支持多个后端存储,Stack Exchange 还使用了 OpenTSDB(和 HBase 一起)。Bosun 的原始作者之一 Kyle Brandt 在文章写道,这是他们的痛点之一,由于他们“在其他地方没有使用 HBase,所以管理 HBase 会占用他们大量的时间”。Bosun 的附加代理是 scollector,它负责从受监控的机器收集指标。它使用 Go 语言开发,用于替换 OpenTSDB 的 tcollector 代理。他们使用 BosunReporter 推送应用程序的指标。


健康检查侧重于检查最终用户体验以及内部服务的健康状况。Pingdom 检查外部可访问的 URL。Craver 写道,面向最终用户 URL(如主页)的检查非常关键,因为“主页检查可能会检查到我们无法检查到的问题,进行整体检查也很重要”。Fastly 充当 Stack Exchange 站点的 CDN 和代理,它的运行状况检查可以确保在主数据中心发生故障时可以故障转移到辅助数据中心。除服务器端监控外,他们还使用浏览器 API 跟踪客户端的时间。


将所有这些结合在一起的是 Grafana 和 Opserver。Grafana 接入 Bosun 数据,用以显示时间序列指标。Opserver 专注于整个基础设施的整体监控状态。为什么团队要自己构建 Opserver,而不是使用 Nagios 或类似的工具?Craver 解释说,当时没有一种工具可以满足他们的所有需求。与大多数工具一样,它是根据特定要求而开发出来的。Opserver 仪表盘可用于深入查看各个服务和服务器。它需要以 JSON 格式进行静态配置,如果用于监控云环境(可能包含了一些临时主机)可能会有些问题。


查看英文原文:


https://www.infoq.com/news/2018/12/stackoverflow-monitoring


2018-12-24 15:333185
用户头像

发布了 731 篇内容, 共 433.2 次阅读, 收获喜欢 1997 次。

关注

评论 1 条评论

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

性能测试中QPS取样器和RT取样器

FunTester

[Day25]-[二叉树]二叉搜索树中的插入操作

方勇(gopher)

LeetCode 二叉树 数据结构算法

最新云原生网络技术标准来了,为企业提供基础架构能力权威指南

York

架构 云原生 网络性能

如何通过灵魂复盘大幅降低业务风险?

Samson

技术管理 复盘 事故 SRE 4月月更

求推荐一款免费的项目(OKR)管理系统?

优秀

OKR 项目管理系统

JWTToken在线编码生成

入门小站

工具

云原生应用配置中心简述

穿过生命散发芬芳

4月月更

OpenHarmony,一路前行,为了奇迹

脑极体

中国科技人,在残酷春天里翘首等待

白洞计划

直播回顾 | 看完这篇入门数仓研发,跑通复杂业务数据建模

个推

数据中台 数据仓库 数据建模 维度建模 范式建模

聊聊项目外包

石云升

创业 项目管理 职场经验 4月月更 项目外包

「Spring」@ConfigurationProperties——从基础到源码

翊君

Java spring 源码

测试自动化最佳实践指南

阿里云云效

云计算 阿里云 测试 自动化测试 测试自动化

直播预告丨Hello HarmonyOS进阶系列课程重磅来袭,4月27日开播

HarmonyOS开发者

HarmonyOS 智能家居 原子化服务

RTE NG-Lab:一起探索下一代实时互动新世界

声网

NG-Lab 声网动态

企评家|国家电网有限公司成长性报告简述

企评家

天翼云:加速推进云网融合共赢算力时代

天翼云开发者社区

大数据

全场景式全流程监控,博睿数据为券商IT运维难题提供了范例

博睿数据

攻克编译器技术(1)

刘旭东

编译器 4月月更

在线Excel转TSV工具

入门小站

工具

Android C++系列:string最佳实践

轻口味

c++ android 4月月更

企评家|广州珐玛珈智能设备股份有限公司企业成长性报告简述

企评家

OpenHarmony 技术日| 锻英才以应时需 协教育同繁生态

科技汇

低代码在线文档 — VitePress网站生成

源字节1号

软件开发

开源社区问与答

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

区块链行业一周热点回顾|马斯克回应狗狗创始人;虎符交易所回购HOO

区块链前沿News

马斯克 Hoo 虎符交易所 doge

linux之service命令

入门小站

Windows 11 修改 PIN 的长度为 4 位

HoneyMoose

小程序赛道的发展,让智能电视业务发展如虎添翼

Speedoooo

小程序 物联网 IoT 小程序容器 智能电视

企评家|天津三英精密仪器股份有限公司成长性报告简述

企评家

「微服务的细节」—— 如何获取本地IP?

袁世超

微服务

Stack Overflow监控系统内部架构初探_架构_Hrishikesh Barua_InfoQ精选文章