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

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

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

Opserver以Web仪表板的形式进行组织,每个仪表板专门针对一个特定的系统。Opserver目前支持SQL ServerElasticSearchHAProxyStackExchange.ExceptionalRedisOrion是一款来自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_Blitzsp_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

查看中文原文:初识Opserver,StackExchange的监控解决方案

监控系统Opserver的配置调试

What Does Opserver Monitor?

Using Stack Exchange’s Opserver Step 1: Will it Build?

Using Stack Exchange’s Opserver Step 2: SQL Configuration

初识Opserver,StackExchange的监控解决方案的更多相关文章

  1. IT运维监控解决方案介绍

    现状 •小公司/ 创业团队< 500台服务器规模 开源方案:Zabbix.Nagios.Cacti- 云服务提供商:监控宝.oneAlert等 •BAT级别> 10万台服务器 投 ...

  2. Zabbix监控解决方案

    思通运维监控主要用来监控IT 基础设施组件的可用性和性能.监控项目是不受限制的,并且可以对IT 基础设施健康状态进行复杂分析.通过确定IT 系统问题的“来源”,使用户快速响应故障来降低宕机成本. 网络 ...

  3. Azure 为 SAP 提供的增强监控解决方案

    正如大家在之前公告中所看到的,多个SAP应用程序已获得认证可在 Azure虚拟机中运行,未来还会有更多 SAP应用程序获得认证.对于希望在 Azure中运行 SAP应用程序的客户来说,这是个激动人心的 ...

  4. OpenStack 监控解决方案

    正如你们看到的那样,到目前为止(OpenStack Kilo),OpenStack自己的监控组件Telemetry并不是完美, 获取的监控数据以及制作出来的图表有时候让人匪夷所思,因其重点并不是监控而 ...

  5. Promethus+Grafana监控解决方案

    [MySQL]企业级监控解决方案Promethus+Grafana Promethus用作监控数据采集与处理,而Grafana只是用作数据展示 一.Promethus简介 Prometheus(普罗米 ...

  6. zabbix企业级的分布式开源监控解决方案 v5.0 LTS

    目录 zabbix简介 服务模块 客户端守护进程 监控流程 功能拆解 安装 zabbix 5.0 LTS 参考官网 zabbix 5.0.12-1.el7 zabbix-server相关优化 1. 字 ...

  7. Greenplum数仓监控解决方案(开源版本)

    Greenplum监控解决方案 基于Prometheus+Grafana+greenplum_exporter+node_exporter实现 关联图 一.基本概念 1.Prometheus ​ Pr ...

  8. Zabbix企业级开源监控解决方案

    Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...

  9. 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-上

    @ 目录 概述 定义 监控作用 使用理解 监控对象和指标 架构组成 常用监控软件分析 版本选型 俗语 安装 部署方式 部署 zabbix-agent 概述 定义 Zabbix 官网地址 https:/ ...

随机推荐

  1. js new

    如果一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上 即: function B(){} var a=new B( ...

  2. Fragment滑动切换简单案例

    Fragment的产生与介绍Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神 ...

  3. JavaScript高级程序设计-(4) 引用类型

    1.object var person={};//与new Object()相同 一般创建对象 var person=new Object(); person.Name="admin&quo ...

  4. Copy-On-Write容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...

  5. npm 基础

    npm账户 npm adduser npm whoami 初始化项目: npm init --scope=<username> 项目必要文件 README.md pageage.json: ...

  6. AJAX 同步异步笔记

    就在刚才,做一个很简单的Demo, 预览MP4视频文件 这就是一个video标签嘛,然后再动态的给src赋值嘛.这还不是so easy? 好,说做就做.先简单的测试一下.先给src赋值一下. 嗯,可以 ...

  7. a 标签中加 onclick事件,根据事件中的校验情况来决定是否执行a标签的链接

    a 标签中加 onclick方法后,先执行onclick方法,在去执行a标签href下属性对应的动作,如果不想执行href属性下动作需要用false作为返回值. <a href="ht ...

  8. React 学习,需要注意几点

    最近要开始学习 React 框架了,在学习的过程中,个人作为一个新手觉得需要注意的一些问题 小细节有以下几点: 1:在JSX语法当中,如果遇到 HTML 标签(以 < 开头),将用 HTML 规 ...

  9. fly bird

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 解决ugui中Image使用iTween的ColorTo、ColorFrom等不生效

    查看iTween的源码找到ColorFrom函数,看该函数的注释“/// Changes a GameObject's color values instantly then returns them ...