滴滴夜鶯運維監控與 M3DB 聯姻發版 3.3.1,DiDi&Uber...

UlricQin發表於2020-12-23

夜鶯 預設支援的儲存是從 Open-Falcon 演化過來的,基於 rrdtool 做的一套分散式時序資料儲存方案,在滴滴內部抗住了單叢集 10 億量級的監控指標。後來美菜的朋友做了改造,讓夜鶯同時支援了 influxdb 作為後端儲存,現在,3.3.1 版本,夜鶯引入了 m3db,m3db 是 uber 開源的時序庫,go 開發,據說在 uber 內部抗住了 66 億指標,不清楚是單叢集還是多叢集,看起來還是挺牛掰的。

m3 相比原來的 index+tsdb 的方案,優劣勢是什麼?

優點

  • 對硬碟 IO 要求沒那麼高了,普通機械硬碟也能抗比較大的量
  • 存原始資料,不降取樣了,追問題的時候更方便,當然了,儲存的資料時長就變短了,相同硬碟空間大小,比如原來 rrd 可以存 1 年的歷史趨勢資料,m3 可能只能存 1 個月
  • 擴容非常方便,直接加 m3dbnode 即可,index+tsdb 的方案使用 migrate 配置,擴容不易
  • 容災更好了,可以設定 3 副本,如果叢集部署了 3 臺機器,掛掉一臺機器完全沒有影響
  • 索引避免了原來 index+tsdb 的單點容量問題,原來 index 雖然是可以部署為叢集,但是叢集裡每個節點都是全量索引

劣勢

  • 硬碟空間佔用大,畢竟儲存原始資料嘛,一般生產環境建議存 1 個月,再久也儘量不要超過 3 個月,當然了,要監控的裝置比較少,部署 m3 的機器硬碟又比較大,那另當別論
  • 記憶體佔用比較多,一般配置是最近兩個小時的資料要快取在記憶體裡,所以比較吃記憶體,好在記憶體現在也便宜了,一臺機器動不動 128G、256G 的

Nightingale v3.3.1 具體更新內容如下:

前端

  • fix: 修復 IE11 相容問題,目前支援 IE >= 11,Chrome >= 70
  • fix(mon): 修復遮蔽策略無法選擇遮蔽節點問題
  • fix(mon): 修復某些日誌採集修改會導致名稱被切割問題
  • feat: 各個系統間新增快捷跳轉連結
  • feat(mon): 監控大盤支援快取該大盤設定的顯示列數
  • style: 更新了一個新的 logo 圖片
  • style(mon): 監控系統選單重新歸類

後端

  • 增強安全性:密碼複雜度提高、cookie 處理優化等
  • 支援 M3DB 作為儲存後端,具體請檢視 github 上面的 wiki 介紹
  • 修復告警引擎與條件串數的問題
  • 為主機裝置增加自定義欄位的能力

程式碼根目錄下有個 changelog,會羅列改動的內容和影響的模組,具體請諸君參考

更多原創文章乾貨分享,請關注公眾號
  • 滴滴夜鶯運維監控與 M3DB 聯姻發版 3.3.1,DiDi&Uber...
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章