iT邦幫忙

2024 iThome 鐵人賽

DAY 3
2
DevOps

後 Grafana 時代的自我修養系列 第 3

後 Grafana 時代的第三天 - 探討 Grafana 大規模團隊治理與挑戰

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20240917/201495629lvEAzqYjs.png

前言

在維護一個大規模且多團隊的監控系統時,作為工程師的我們將面臨諸多挑戰與痛點。本章節將帶領各位深入探討常見的場景和多維度的考量,並通過反思問題的核心,尋找更有效的解決方案。在隨後的章節中,我們將通過實踐來具體落實這些觀點。然而,我們必須永遠記住,沒有一種方法是最好或唯一的,只有最適合當前情境的方法。因此,我們應該著重於理解和掌握其中的精髓,從而靈活應用於實際工作中。

使用者與權限管理

在多團隊環境中,確保每個團隊僅擁有必要的訪問權限至關重要。過於寬鬆的權限可能導致配置錯誤,而過於嚴格的權限則可能妨礙團隊的工作效率。此外,在一個健全的公司或團隊中,人員流動是相當正常的現象,但這對管理者來說也帶來了相當大的挑戰。頻繁的手動新增和移除權限,不僅增加了管理負擔,還可能使正常使用者的權限難以維護,從而埋下資安隱患。

痛點

  • 使用者權限建立管理不易,人事頻繁流動,容易造成管理者負擔的惡性循環。
  • 對於 Dashboard 的權限管理,顆粒過於細膩難以落實,無法在創建時準確設置權限。
  • 容易出現人人都是最高權限的情況。

思路

  • 採用外部身份管理系統(如 LDAP、OAuth2)與 Grafana 整合,進行統一的身份驗證和授權管理,並且透過移除 WorkSpace 帳號統一凍結所有平台的權限。
  • 盡量不去使用 Orgs 去作為區分團隊的方式,缺乏 Folder 的靈活性與 Instance 的隔離性。如需完全隔絕兩個團隊,請為其單獨建立 Grafana Instance。
  • 對於使用者權限設定,採用基於 Team 的顆粒度作為訪問控制,而 Dashboard 管理則採用基於 Folder 的顆粒度來保持彈性。
  • 定期審查訪問控制策略,確保權限設定符合團隊需求。

https://ithelp.ithome.com.tw/upload/images/20240917/20149562XqNExxRlZ3.png

Note:大多數的 RBAC 功能,目前只有 Grafana Enterprise 跟 Grafana Cloud 版本支援。

多資料源整合與管理

在大規模環境中,Grafana 需要整合來自多個資料源的數據,而這些資料源可能來自不同的團隊或應用,配置和管理非常複雜。

痛點

  • 在 Grafana 中,許多資源如 Dashboard、Alerting 將依賴特定 Data Source UID,如配置不一致,將導致大量圖表顯示錯誤或性能問題,且資料源的變更問題可能會擴散到多個團隊。
  • Data Source 通常代表對後端儲存來源的資料查詢最大顆粒度,如過於破碎將導致資料無法輕易串連,更難以管理。
  • 手動更新刪除 Data Source ,難以追蹤還原使用者操作。

思路

  • 使用 GitOps 或 Infrastructure as Code (IaC) 方法來管理資料源配置,為每個資料設定獨自的 UID,並且確保所有配置都版本化。
  • 對於儲存後端的架構,實踐良好的中心化管理。
  • 啟用 Audit log 收集,確保 Grafana API 操作級別的過程紀錄。
  • 將 Data Source 設定為 editable: false,確保隔絕所有手動操作。

https://ithelp.ithome.com.tw/upload/images/20240917/20149562QJ0e51UPnV.png

儀表板管理與標準化

隨著不同團隊在 Grafana 上創建數百甚至數千個儀表板,很容易出現儀表板碎片化的情況。不同的團隊和個人使用不同的標準和格式,這導致了大量的重複工作和儀表板的不一致性。

痛點

  • 隨著 Dashboard 數量的增長,維護和管理變得更加困難,標準化和一致性成為挑戰。
  • 權限管理複雜,時間一久將趨近於無人政府。
  • Dashboard 的增長也可能為技術債的累積,重構及清理將成巨大挑戰。

思路

  • 使用 Grafana Folder 來組織和管理 Dashboard,根據團隊或應用進行分類。
  • 制定統一的 Dashboard 標準和命名規則,善用 Tag 進行多維度分組查詢,確保所有團隊遵循相同的標準,避免儀表板的過度碎片化。
  • 定期審查現有的 Dashboard,刪除過時或重複的內容,避免技術債的積累。
  • 提供統一的模板,如 Jsonnet、Helm Template 等技術,讓團隊在創建儀表板時有一致的參考基準,減少重複的複製貼上。

https://ithelp.ithome.com.tw/upload/images/20240917/201495625qTfl86K8e.png

Note: 圖為 Grafana 提供的 Jsonnet Library 語法,透過少數程式碼即可建立出 Dashboard 以及 Panel。

性能、高可用與可擴展性

隨著團隊和數據量的增加,Grafana 的性能和可擴展性會面臨挑戰,尤其是在處理大量的數據查詢和儀表板渲染時。面對數以千計的內外部高度依賴的使用者來說,短暫的停機時間大多不被允許。

痛點

  • 大多 Grafana 服務以單體實例運作,缺乏效能彈性。
  • 高負載情況下,可能會出現查詢延遲、儀表板渲染速度慢等問題,影響用戶體驗。

思路

  • 使用 Grafana 的高可用性部署模式,包括多副本部署和負載均衡,來處理高並發查詢和 Dashboard 渲染。
  • 實施資料持久化以及,避免在運作環境生命週期中導致資料流失,並且定期進行備份保持資料完整。
  • 對資料源查詢進行優化,包括使用快取、限制查詢範圍和時間跨度等,以提高查詢性能。

https://ithelp.ithome.com.tw/upload/images/20240917/201495627S9WpOhyV3.png

使用者習慣與文化建立

在一個多團隊的環境中,不同團隊的用戶對 Grafana 的使用需求和體驗期望可能不同。一些團隊可能需要高度定制化的 Dashboard,而其他團隊可能更關注即時的數據查詢性能。如何讓非技術人員以及進階使用者通在同個環境中共存,將會是考驗管理者智慧的課題之一。

痛點

  • 當用戶體驗需求不一致時,統一的 Grafana 配置難以滿足所有團隊的期望,這可能導致一些團隊的不滿或低效使用。

思路

  • 建立標準化流程和最佳實踐指南,指導各團隊如何使用和配置 Grafana,以減少衝突和誤解。
  • 定期對各團隊進行用戶體驗調查,了解他們的需求和痛點,並針對性地進行優化。
  • 建立一個專門的用戶支持團隊,提供針對 Grafana 使用的培訓和技術支持,幫助團隊解決日常使用中的問題。

結論

上述問題與解決方案概述了大多數維運團隊在維護大規模 Grafana 系統時可能面臨的主要挑戰。這些挑戰的一半核心在於組織團隊的文化和初始 Grafana 建構的理念。儘管這些理念看似簡單,實際上並非難事,但許多人在經驗中往往因為初期的便宜行事,導致技術債累積,最終難以收拾。因此,我們必須在一開始就盡量意識到這些潛在問題,避免日後的窘境。


上一篇
後 Grafana 時代的第二天 - Grafana 入門介紹
下一篇
後 Grafana 時代的第四天 - 探討 Grafana 所實踐的可觀測性策略
系列文
後 Grafana 時代的自我修養31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言