博客 / 詳情

返回

夜鶯監控發佈 v8.beta5 版本,優化 UI,新增接口認證方式便於鑑權

以防讀者不瞭解夜鶯,開頭先做個介紹:

夜鶯監控,英文名字 Nightingale,是一款側重告警的監控類開源項目。類似 Grafana 的數據源集成方式,夜鶯也是對接多種既有的數據源,不過 Grafana 側重在可視化,夜鶯是側重在告警引擎。比如把 Prometheus、VictoriaMetrics、ElasticSearch 等作為數據源接入夜鶯,即可在夜鶯裏配置告警規則做指標、日誌的告警。當然了,夜鶯也不止做告警,還提供了 ad-hoc 查詢、指標視圖、儀表盤等可視化能力,不過在可視化方面沒有 Grafana 道行深。配合 Categraf 採集器,夜鶯可以做到一站式監控。其項目地址是:https://github.com/ccfos/nightingale

本次更新沒有 Bugfix(主要是也沒有已知 Bug 了),只有優化和新增功能,變動內容如下:

  • feat: 接口鑑權支持使用用户自己的 token
  • feat: 支持將接收的時序數據轉發到 kafka
  • feat: 儀表盤折線圖新增 annotations 功能
  • feat: 儀表盤折線圖新增右對齊的表格模式圖例
  • feat: 儀表盤折線圖閾值新增百分比模式,以及新增閾值樣式支持虛線和區域等多樣組合
  • feat: 儀表盤排行榜新增 Retro LCD 顯示模式
  • feat: 儀表盤全局鏈接支持新增 dashboards 類型鏈接
  • refactor: 告警規則數據源篩選 UI 優化
  • refactor: 儀表盤配置改成手動保存模式(這點要注意)
  • refactor: 面板標題字體大小顏色優化
  • refactor: 面板標題欄展示自定義時間提示
  • refactor: 分組面板摺疊後顯示包含面板數量信息
  • refactor: 折線圖文字顏色優化增強對比度

這裏展開説一下其中的兩點:鑑權 token 和告警規則數據源篩選 UI 優化。

接口鑑權支持使用用户自己的 token

之前夜鶯的接口調用需要先調用 login 接口拿到 token,整個過程比較繁瑣。根據廣大用户的建議,我們新增了一個認證鑑權方式。可以在個人中心創建 token,之後把這個 token 放到 HTTP Header 裏,就可以直接調用接口了。

image.png

比如調用用户列表接口,現在可以這樣搞了:

desktop:~# curl -s -H "X-User-Token: afbb31b8-ed1d-4877-b6ae-c3af68c0a434" 'localhost:17000/api/n9e/users' | python3 -mjson.tool
{
    "dat": {
        "admin": true,
        "list": [
            {
                "id": 1,
                "username": "root",
                "nickname": "\u8d85\u7ba1",
                "phone": "",
                "email": "",
                "portrait": "",
                "roles": [
                    "Admin"
                ],
                "contacts": {},
                "maintainer": 0,
                "create_at": 1739514850,
                "create_by": "system",
                "update_at": 1739516089,
                "update_by": "system",
                "belong": "",
                "admin": true,
                "user_groups": [
                    {
                        "id": 1,
                        "name": "demo-root-group"
                    }
                ],
                "busi_groups": [
                    {
                        "id": 1,
                        "name": "Default Busi Group"
                    }
                ],
                "last_active_time": 1739516089
            }
        ],
        "total": 1
    },
    "err": ""
}

把 token 放到 X-User-Token 裏,就可以調用接口了。不過,這個功能需要通過配置文件打開,在夜鶯的 config.toml 中,找到 [HTTP.JWTAuth] 部分,然後在上面增加一條配置:

...
[HTTP.TokenAuth]
Enable = true

[HTTP.JWTAuth]
...

告警規則數據源篩選 UI 優化

image.png

告警規則中,數據源類型做了 UI 調整,更加直觀了,方便用户選擇。這些數據源類型,只有你配置了對應的數據源,並且刷新頁面才會顯示出來。比如你沒有在集成中心-數據源配置 Prometheus 數據源,那 Prometheus 數據源類型就不會顯示出來。

Prometheus 這個數據源類型,適用於 VictoriaMetrics、M3DB、Thanos 等所有支持 Prometheus 協議的數據源。

我手頭沒有開源版本的環境,上面的截圖是夜鶯商業版的,商業版數據源類型更多一些,開源版本應該有 5 種類型:Prometheus、ElasticSearch、Loki、TDEngine、Host,樣式和商業版一致。

如何升級

到 github 下載最新的 release 包,更新二進制、配置文件、integrations 目錄,重啓即可。配置文件一般不能直接覆蓋,需要自行 diff 一下,看看有沒有新增的配置項,有的話需要手動加到你的配置文件裏。

結語

這個版本之後,後面的版本可能會發得慢點,目前正在搞一個通知規則的新功能,對現有的通知邏輯做一個大重構,這個工作量比較大,等完事之後夜鶯的告警通知能力會上一個大台階,敬請期待。

user avatar elastic_computing 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.