如何使用 Opserver 來監控 Elasticsearch

之前筆記 如何使用 Opserver 來監控 Redis 介紹該怎麼設定 Opserver for Redis,而 Opserver 官方介紹中也包含監控 Elasticsearch 的功能,立馬就來試試該如何設定

文章大綱

  1. 安裝 Opserver
  2. Opserver 安全性設定
  3. 監控 Elasticsearch

安裝 Opserver

  1. clone 專案

  2. 解壓縮至硬碟

  3. 設定啟始專案

    • 預設為 Opserver.Core

      1error

    • Opserver 專案,按右鍵,選 Set as StartUp Project

      2startup

  4. 編譯 (Build)

Opserver 安全性設定

  • 沒找到 SecuritySettings.config 的錯誤

    3needconfig

  • 加入 SecuritySettings.config

    • Opserver 專案, Config 資料夾下有 SecuritySettings.config.example

      4securityconfig

    • rename SecuritySettings.config.exampleSecuritySettings.config

    • 依需求設定權限(/about可以檢查現行安全設定)

    • AD (default)

      >`<SecuritySettings provider="AD" />`
      
      ![5AD](https://cloud.githubusercontent.com/assets/3851540/21705716/89100170-d3fc-11e6-9dc7-8b3576ba93b4.png)
      
    • alladmin

      >`<SecuritySettings provider="alladmin" />`
      
      ![6alladmin](https://cloud.githubusercontent.com/assets/3851540/21705715/88f40ab0-d3fc-11e6-96bf-c8d44582fac3.png)
      
    • View All

      >`<SecuritySettings provider="" />`
      
      ![7viewall](https://cloud.githubusercontent.com/assets/3851540/21705717/89103334-d3fc-11e6-8a9b-b024b7c8e224.png)
      
    • 如果不是使用 AD ,畫面需要帳號密碼,請使用 admin/admin

      login

監控 Elasticsearch

  • 加入 ElasticSettings.json

    • Opserver 專案, Config 資料夾下有 ElasticSettings.json.example

      1setting

    • rename ElasticSettings.json.exampleElasticSettings.json

  • ElasticSettings.json 設定連線資訊

    • clusters 可以同時監控多 Elasticsearch instance
    • name 顯示名稱
    • refreshIntervalSeconds 自動重新取得資訊的間隔
    • nodes 可以有多台,可以填 servername 或是 ip,預設 port 是 9200

      {
          "clusters": [
          {
              "name": "localhost",
              "refreshIntervalSeconds": 10,
              "nodes": [
              "serverName"
              ]
          }
          ]
      }
      
  • 更新頻率(RefreshIntervalSeconds)預設值可以參考 \Opserver.Core\Settings\ElasticSettings.cs

    • 預設 120 秒
  • Elasticsearch port 預設值 \Opserver.Core\Data\Elastic\ElasticCluster.KnownNodes.cs

    • 預設 port 9200

監控結果

  1. all cluster

    2all

  2. cluster

    3cluster

  3. node 4node

  4. indexes 5indexes

Elasticsearch Indice

顏色說明
yellow代表沒有備份到 cluster
green代表 cluster 裡面所有 node 都有
red代表有問題,需要recovery

參考資訊

  1. GitHub
  2. 如何使用 Opserver 來監控 Redis