文章出處

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

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()