[主機監控] 初探Opserver

透過Opserver單一介面,監控主機資訊,降低管理負擔,將時間投資在更好的創新應用之上。

前言

主機管理的工作經常吃力不討好,因為大部分老闆認為,主機運作正常本來就是應該的事情,根本談不上績效。但事實上,系統正常運行,這一切絕非偶然,而是有辛苦的管理人員在默默的付出才可有這樣的結果。

可現實生活的環境就是如此,需要管理的主機會隨著企業的發展大幅度的增加,但編制的管理人力卻不動如山。與其抱怨公司制度,倒不如思考是不是管理方式需要做些改變。

最近DevOps這個詞炒得很火,其中的一個精神就是,如何降低管理和維運成本轉而將時間花在創新應用上。工欲善其事,必先利其器,毫不猶豫地拒絕土法煉鋼,轉而利用開源社群的資源站在巨人的肩膀上向前邁進,是現代資訊人基礎必備的技能之一,也是資訊人員價值的重要指標。

 

主機管理者的痛點

  • 需花大量時間在登入登出各系統,確認系統是否正常運作。
  • 系統出錯時,管理者通常是最後一個才知道,影響系統使用者體驗。
  • 主機的相關資訊,大多透過文件方式管理,文件與實際狀況無法對應,時有耳聞。
  • 缺乏視覺化的報表。

綜合以上情形,不難發現,吃力不討好是因為在沒產值的事情上出了很多力(花費時間登入登出、製作文件、製作報表),可是卻沒有得到應有的價值(出事時缺乏預警功能,使用者體驗依然下降)。

而接下來要介紹的便是如何透過Opserver開源工具來改變這一切。

 

Opserver是甚麼?

Operver是一個開源的專案,Github位置,使用.NET 技術(C# + ASP.NET MVC),主要用途是提供單一的視覺化監控平台來管理主機和服務。

下表列出有支援的監控項目

  • Servers/Switches & anything supported by Bosun, Orion, or direct WMI(Windows Management Instrumentation)  monitoring
  • SQL Clusters & Single Instances
  • Redis
  • Elasticsearch
  • Exception Logs (from StackExchange.Exceptional)
  • HAproxy
  • PagerDuty
  • CloudFlare DNS

這對原本就使用ASP.NET MVC技術的企業可說是一大福音,因為是開源專案,所以可以輕易地將相關功能與企業ERP整合。

 

安裝指南

首先將專案Clone下來後,掛載到IIS上。

接下來的工作就是設定客製化的Config。Config大致可分為下列四個區塊

  • Security Configuration (設定登入驗證的方式)

  • Monitoring Configuration (設定要監控的項目資訊,例如目標如果是資料庫服務,就須設定連線資訊等等)

  • Jira Actions Configuration(當發生例外時,可自動建立issue)

  • PagerDuty Configuration (發生異常時的自動告警機制)

在專案的Config資料夾裡都有佛心的範例可參考。

下載後的專案直接跑起來,會出現下面的錯誤畫面

只需將Config資料夾的"SecuritySettings.config.example"檔案複製一份,檔名改成"SecuritySettings.config"就可順利執行,但在登入畫面直接按登入,會出現以下錯誤。

主要是因為"SecuritySettings.config.example"預設是以AD(Active Directory)驗證,Opserver提供的內建驗證有以下三種

  • Active Directory ("ad")
  • "Everyone's an admin" ("alladmin")
  • "View All" (the default)

本階段目的只要能登入就好,所以就改成不驗證,更改"SecuritySettings.config"如下圖所示。

再重新執行專案,然後按下登入,便可成功登入系統。

 

建立第一個SQL監控

打開Config資料夾的"SQLSettings.json",輸入以下設定

{
  "defaultConnectionString": "Data Source=(localdb)\\.\\ErpNextTestShare;Initial Catalog=COMMON; ;Integrated Security=true;",

  "instances": [
    {
      "name": "LocalDB1",
      "connectionString": "Data Source=(localdb)\\.\\ErpNextTestShare;Initial Catalog=COMMON; ;Integrated Security=true;"
    }
  ]
}

以上範例是加入SqlloaclDb來進行監控,Localdb的建立可參考此篇文章,config設定完成再執行一次專案,會出現下列畫面。

以上,完成了第一個SQL監控的建立。

 

小節

透過本篇文章了解如何建置Opserver,並加入首個SQL監控。下一篇文章會介紹透過SQL監控服務可以幫助我們完成哪些應用的使用案例情境。