2017-03-16

如何使用 Opserver 監控 Redis

之前參加 twmvc 活動,由阿砮介紹 Stack Overflow open source 的監控專案 - OpServer,不僅是 open source 專案又是 .net MVC 寫的,實在非常有親切感,之前因為專案需要曾經嘗試安裝,最近為團隊安裝時發現又忘得差不多了XD 所以筆記一下


文章大綱

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

安裝 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

      • alladmin

        <SecuritySettings provider="alladmin" />

        6alladmin

      • View All

        <SecuritySettings provider="" />

        7viewall

    • 如果不是使用 AD ,畫面需要帳號密碼,請使用 admin/admin

      login

監控 Redis

8nomonitor

  • 加入 RedisSettings.json

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

      9redisconfig

    • rename RedisSettings.json.exampleRedisSettings.json
  • RedisSettings.json 連線資訊有兩種設定方式

    1. 只設定 Servers
      • 外層 name 為 ip or host name
      • 內層 name 為顯示名稱; port 為 redis port 號
      {
        "Servers": [{
                "name": "127.0.0.1",
                "instances": [ { "name": "local", "port": "6379" } ]
              }
          ]
      }
      
    2. allServersServers 搭配
      • allServers instances name 表示顯示名稱;port 為 redis port 號
      • Servers name 填 host ip or name
      {
        "allServers": {
          "name": "test",
          "instances": [
            {
              "name": "local",
              "port": "6379"
            }
          ]
        }
        ,
        "Servers": [{ "name": "127.0.0.1" } ]
      }
      
  • connection 邏輯可以參考 \Opserver.Core\Data\Redis\RedisModule.cs

  • 預設值可以參考 \Opserver.Core\Settings\RedisSettings.cs

    • 更新頻率(RefreshIntervalSeconds) 預設 30 秒
    • redis instance 預設 port 6379

20170324 補充:需要密碼連線 (requirepass)

如果 redis 需使用密碼才能連線,請參加以下設定方式

  1. 只設定 Servers
    • Serversinstances object 中加上 password 設定
      "Servers": [
          {
            "name": "127.0.0.1",
            "instances": [ { "name": "local", "port": "6379","password":"password" } ]
          }
      ]
      
  2. allServersServers 搭配
    • allServersinstances object 中加上 password 設定
      "allServers": {
          "name": "test",
          "instances": [
          {
           "name": "local",
           "port": "6379",
           "password":"password"
              }
          ]
      },
      "Servers": [{ "name": "127.0.0.1" } ]
      

監控結果

  1. 列表頁

    10list

  2. 詳細頁

    11detail

    12detail

心得

設定的工不多,只是文件稍嫌不足,屬性名稱也多有重複,不是很好理解,但整體架設還是很方便

參考資料

  1. Opserver GitHub
  2. OpServer 監控服務的解決方案簡報

沒有留言:

張貼留言