写点什么

初识 Opserver,StackExchange 的监控解决方案

  • 2013-12-12
  • 本文字数:1880 字

    阅读完需:约 6 分钟

Opserver 是闻名遐迩的网站 Stack Overflow 的开源监控解决方案,由 Stack Exchange 发布。它基于.NET 框架构建,这在监控工具领域有些与众不同。

旨在为每个受监控系统的健康状况提供一个快速的总体视图,还允许用户使用下钻方法进行深入挖掘。 Nick Craver 是 Opserver 的创建者之一,他告诉 InfoQ:

我们认为,监控系统应该在一个较高的层次上展示系统,出现了什么错误,并允许用户通过下钻来了解更多细节。

Opserver 以 Web 仪表板的形式进行组织,每个仪表板专门针对一个特定的系统。Opserver 目前支持 SQL Server ElasticSearch HAProxy StackExchange.Exceptional Redis Orion 是一款来自 SolarWinds 的商业工具。Opserver 还使用它提供基础设施和网络监控。一次 Opserver 安装并不需要使用所有这些系统,因为它们可以基于选择进行配置。

以 SQL Server 为例,Opserver 提供了关于 CPU 和内存消耗的高层次信息或者数据库的总体健康状况:

(点击图片可以查看大图)

在概览视图下面,Opserver 提供了额外的数据。例如,它提供了一个最常用查询的列表,可以按照多个条件进行排序(总执行时长、平均CPU 消耗)。对于每个查询,它提供了更多的细节信息,包括查询执行计划(查询执行步骤的详细分解)。

(点击图片可以查看大图)

SecuritySettings.config 文件定义诸如身份验证方法这样的设置项:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<SecuritySettings provider="AD">
<!—可选,这些网络无须身份验证就可以看到概览仪表板 -->
<InternalNetworks>
<Network name="SE Internal" cidr="10.0.0.0/8" />
</InternalNetworks>
</SecuritySettings>
<!--
面向所有人的全局访问示例
<SecuritySettings provider="alladmin" />
-->

每个系统有一个配置文件。目前支持 JSON 格式。下面是 SQL Server 配置的一个例子:

复制代码
{
"defaultConnectionString": "Data Source=$ServerName$;
Initial Catalog=master;Integrated Security=SSPI;",
"clusters": [ // 集群只能用于 SQL Server 2012
{
"name": "NY-SQLCL04",
"refreshIntervalSeconds": 20,
"nodes": [
{ "name": "NY-SQL03" }
]
}
],
"instances": [
{ // 该实例不能使用 defaultConnectionString,因此它得自己指定。
"name": "NY-DB05",
"connectionString": "Data Source=NY-DB05;
Initial Catalog=bob;Integrated Security=SSPI;",
},
// defaultConnectionString 中的服务器名会被“name” 替换
{ "name": "NY-DESQL01" } ]
}

如果 Opserver 没有包含某个特定场景,那么它还提供了若干扩展点,用户可以通过它们使用额外的仪表板和配置选项来增强该工具。按照计划,这个过程将来会更简单易用而且功能更强大:

若时间允许,即将到来的最大变化是加入插件模型。人们将能够增加其他人也可以使用的选项卡、视图、轮询器等。例如,用户可以增加一个 MongoDB 监控选项卡,并在上面可以添加想要添加的任何层次的细节。

在该工具的路线图上,Opserver 团队还有其它目标:

它还会在很大程度上与我们的监控解决方案集成,保存历史数据而不仅仅是实时数据。

如果用户使用了其它的第三方工具,那么我计划在基本安装中包含针对这些工具的功能,从而增强 Opserver。例如, sp_WholsActive 已经集成进来了,诸如 sp_Blitz sp_AskBrent 这样的东西和像 SQL Sentry 那样更大的产品也将会绑定到里面。他们肯定不是必须的,只是如果有了它们会增加视图和细节……因为随后便可以获得它们提供的信息。

Opserver 还通过 JSON 以 REST-feeling 方式暴露它所拥有的几乎全部数据。我计划使所有数据都可以通过这种方式获得,那样,用户界面就是完全可选的。这允许任何人针对返回 JSON 的路径编写脚本,并以其它方式使用返回结果,那真的会开辟许多新的应用场景。

InfoQ 问 Stack Exchange,为什么决定构建自己的监控工具。Nick 告诉我们,它是自然长成的:

开始的时候,它是 StackExchange.Exceptional 数据库的中央异常日志查看器,是我们所有应用程序日志的集中存放位置。从那开始,作为一个业余项目,我开始添加还没有监控的方面,或者已经存在但还不准确的方面(例如,一个关于 SQL Server 2012 永远在线的监控问题)。

从那开始,我为我们想要留意的东西添加 SQL 功能,因为我想在一个位置查看所有系统。之后,我开始添加我们在 Stack Exchange 用到的所有系统……目标从弥补现有监控的缺陷变成了要有一个基础设施的单一界面管理视图。

查看英文原文:**** A first look at Opserver, Stack Exchange’s monitoring solution

2013-12-12 05:274955
用户头像

发布了 256 篇内容, 共 99.6 次阅读, 收获喜欢 12 次。

关注

评论

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

制造业要用龙头带动整条产业链发展,阿里云智能制造加速器首次集结

B Impact

【web 开发基础】PHP 中数组的定义 (42)

迷彩

数据结构 数组 11月月更 数组的定义

【React技术】JSX在企业级项目的运用and一个元素渲染demo

恒山其若陋兮

前端 11月月更

支持向量机-ROC曲线中的概率和阈值

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

Python 操作Excel(xlrd和XlsxWrite)

度假的小鱼

11月月更 Python xlrd读取Excel Python xlrd

基于 Apache Flink Table Store 的全增量一体实时入湖

Apache Flink

大数据 flink 实时计算

python小知识-内置方法和属性应用:反射和单例

AIWeker

Python python小知识 11月月更

【web 开发基础】PHP中数组的遍历(45)

迷彩

数据结构 数组 foreach 11月月更 数组遍历

Python 操作Mysql

度假的小鱼

pymysql 11月月更 Python操作Mysql

投入上百人、经历多次双 11,Flink 已经足够强大了吗?

Apache Flink

大数据 flink 实时计算

AI简报-重参数化RepVGG

AIWeker

深度学习 AI简报 11月月更

Python 操作mongodb库

度假的小鱼

mongodb 11月月更 Python 操作mongodb库

【React技术】开发过程中遇到State和生命周期方法在类里面的运用

恒山其若陋兮

前端 11月月更

支持向量机-SVC的模型评估指标

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

「Go易错集锦」正确使用defer避免代码重复

Go学堂

golang 程序员 个人成长 defer 11月月更

细说值传递、引用传递和地址传递

闫同学

编程语言 计算机基础 11月月更

《2022开源大数据热力报告》发布,Flink 摘得「流处理」领域热力值 TOP1

Apache Flink

大数据 flink 实时计算

凝心聚力 开源共建 | 统信软件参与成立OpenKunlun开源固件社区

统信软件

开源 开源社区 开源技术

2022-11-29:查找重复的电子邮箱。以下数据中a@b.com是重复的,请写出sql语句。 DROP TABLE IF EXISTS person; CREATE TABLE person (

福大大架构师每日一题

数据库 福大大

华为云桌面Workspace,让云上工作更高效!

路过的憨憨

深度学习-浅谈keras的扩展性

AIWeker

深度学习 keras 11月月更

【web 开发基础】PHP中的数组 (41)

迷彩

php 数据结构 11月月更 关联数组 索引数组

一文了解 Go 标准库 strings 常用函数和方法

陈明勇

Go golang 字符串 11月月更 strings

“后 Hadoop 时代”,大数据从业者如何应对新技术趋势带来的挑战?

Apache Flink

大数据 flink 实时计算

Flink Forward Asia 2022 主论坛概览

Apache Flink

大数据 flink 实时计算

【web 开发基础】PHP中使用array()语言结构新建数组(43)

迷彩

数据结构 array 11月月更 array() 新建数组

【web 开发基础】PHP中多维数组的声明 (44)

迷彩

数据结构 一维数组 二维数组 11月月更 多维数组

python版本管理工具DVC

AIWeker

人工智能 版本管理 11月月更 dvc

Flink CDC 2.3 发布,持续优化性能,更多连接器支持增量快照,新增 Db2 支持

Apache Flink

大数据 flink 实时计算

华为云大数据平台,助力企业数字化转型成效明显

路过的憨憨

读《程序是怎样跑起来的》体会

听风go

读书笔记 后端 计算机 计算机原理 读书总结

初识Opserver,StackExchange的监控解决方案_DevOps & 平台工程_João Miranda_InfoQ精选文章