以防讀者不了解夜鶯,開頭先做個介紹:
夜鶯監控,英文名字 Nightingale,是一款側重告警的監控類開源項目。類似 Grafana 的數據源集成方式,夜鶯也是對接多種既有的數據源,不過 Grafana 側重在可視化,夜鶯是側重在告警引擎。比如把 Prometheus、VictoriaMetrics、ElasticSearch 等作為數據源接入夜鶯,即可在夜鶯里配置告警規則做指標、日志的告警。當然了,夜鶯也不止做告警,還提供了 ad-hoc 查詢、指標視圖、儀表盤等可視化能力,不過在可視化方面沒有 Grafana 道行深。配合 Categraf 采集器,夜鶯可以做到一站式監控。其項目地址是:GitHub - ccfos/nightingale: Nightingale for monitoring and alerting, just as Grafana is for visualization.
本次更新沒有 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 里,就可以直接調用接口了。
比如調用用戶列表接口,現在可以這樣搞了:
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 優化
告警規則中,數據源類型做了 UI 調整,更加直觀了,方便用戶選擇。這些數據源類型,只有你配置了對應的數據源,并且刷新頁面才會顯示出來。比如你沒有在集成中心-數據源
配置 Prometheus 數據源,那 Prometheus 數據源類型就不會顯示出來。
Prometheus 這個數據源類型,適用于 VictoriaMetrics、M3DB、Thanos 等所有支持 Prometheus 協議的數據源。
我手頭沒有開源版本的環境,上面的截圖是夜鶯商業版的,商業版數據源類型更多一些,開源版本應該有 5 種類型:Prometheus、ElasticSearch、Loki、TDEngine、Host,樣式和商業版一致。
如何升級
到?github?下載最新的 release 包,更新二進制、配置文件、integrations 目錄,重啟即可。配置文件一般不能直接覆蓋,需要自行 diff 一下,看看有沒有新增的配置項,有的話需要手動加到你的配置文件里。
結語
這個版本之后,后面的版本可能會發得慢點,目前正在搞一個通知規則的新功能,對現有的通知邏輯做一個大重構,這個工作量比較大,等完事之后夜鶯的告警通知能力會上一個大臺階,敬請期待。