導語
從馬車到汽車是為了提升運輸效率,而随着時代的發展,如今我們又希望用自動駕駛把駕駛員從開車這項體力勞動中解放出來,增加運作效率,同時也可減少交通事故發生率,這也是企業對于智能運維的訴求。
從人工運維到自動化運維是為了減少人力成本,降低操作風險,提高運維效率,但自動化運維的本質依然是人與自動化工具相結合的運維模式,仍有局限性。為了持續地面向大規模、高複雜性的系統提供高品質的運維服務,智能運維(AIOps)應運而生。
本文,袋鼠雲将跟大家分享智能運維大資料平台(一款開箱即用的運維監控平台)在Oracle資料庫運維場景下的具體應用。
資料采集
使用平台第一步是資料接入。要做好Oracle的運維,需要哪些資料支撐?根據我們運維Oracle日常的經驗總結,以下幾類資料是特别重要的:
-
執行個體和資料庫基礎資訊
包括執行個體的版本、Patch、啟動時間、執行個體參數、主機基本配置資訊。
-
資料庫健康檢查
檢查資料庫是否能正常連接配接,讀寫響應時間是否正常。
-
執行個體基礎性能資料
包括業務的QPS、TPS,執行個體和主機的CPU使用率、記憶體使用率、連接配接數使用率,SQL解析情況,資料庫的邏輯讀、實體讀,資料庫鎖等待狀況,以及RAC叢集間的通信狀況。
-
Oracle等待事件
采集Oracle内部等待事件的類型、等待次數和消耗時間。從等待事件可以判斷執行個體運作的整體健康情況,定位執行個體瓶頸。
-
資料庫空間使用資訊
包括表空間檔案占用空間、表空間使用空間、臨時表空間使用情況、UNDO表空間使用情況。需要實時監控表空間使用情況,避免表空間占滿引起故障。
-
資料庫Session資訊
Session資訊記錄了執行個體目前運作的SQL情況,記錄了目前阻塞Session的具體資訊,比較常見的如鎖等待。通過Session資訊,友善快速定位執行個體中的阻塞現象。
-
資料庫備份情況
在資料庫運維領域,備份重于泰山。每天都需要檢查資料庫的備份情況,包括備份是否成功,備份耗時,備份占用空間等。
-
DataGuard運作狀況
DataGuard是Oracle高可用最常用的方案之一。需要實時檢測Oracle DataGuard的運作狀況,包括日志傳輸是否正常,日志應用延遲。
-
日志資訊
資料庫的告警日志、TNS監聽日志。從日志中可以發現資料庫内部運作錯誤、異常的用戶端連接配接資訊等。
上述的資料采集,已經內建在産品中。使用者隻需要在資料庫性能采集子產品配置接入資訊,就會自動采集這些資料。

資料接入之後,産品上會從幾個方面來使用這些資料:
-
儀表盤
系統預設帶了Oracle場景的通用儀表盤。使用者也可以根據自己的使用習慣,通過SPL的方式配置自定義儀表盤。
-
監控告警
系統内置常見的監控告警。也可以通過SPL的方式配置自定義告警項。資料隻要采集到了,就可以用于配置告警。
-
智能巡檢
系統支援配置自定義巡檢規則,按使用者定義的時間間隔,定期進行資料庫巡檢。
-
日志分析
基于系統采集的Oracle告警日志、TNS監聽日志,除了使用基本的日志搜尋、監控告警,也可以配置一些日志分析的場景。
本文重點介紹儀表盤的使用。
Oracle儀表盤
儀表盤是資料可視化展現的基本形式,便于使用者從直覺上了解系統的整體運作狀況。
3.1 Oracle執行個體總覽
Oracle總覽Dashboard主要包括這幾個部分:
執行個體統計,包括執行個體總數,異常執行個體數,資料庫數量,執行個體版本分布。通過這幾個名額,能對接入系統中的執行個體有一個大體的了解。
TOP執行個體,包括繁忙率TOP執行個體,活躍會話數TOP執行個體。
通過這2個名額定位繁忙的執行個體。
-
異常執行個體清單
這個表格展示所有無法連接配接的執行個體,包括連接配接報錯資訊。
-
TOP性能趨勢圖
選取資料庫的核心名額,對整體執行個體的運作狀況有一個整體的了解。選取的名額:
- DB Time使用率:展現執行個體整體繁忙程度
- DB CPU使用率:CPU資源的使用率。
- 活動會話數:是否後SQL積壓
- 會話數使用率:Session資源使用率
- QPS/TPS:展現業務請求吞吐量
Oracle資料庫運維場景下,智能運維如何落地生根?導語資料采集Oracle儀表盤總結「智能運維大資料平台」
3.2 Oracle執行個體詳情
該儀表盤用于展現單個執行個體的運作詳細狀況。儀表盤主要分如下幾個部分。
-
執行個體資訊
顯示執行個體的基本資訊,包括主機情況,執行個體運作狀态,執行個體的版本,資料庫的角色,讀寫模式等
-
執行個體運作情況
展現執行個體的核心運作名額。
- 阻塞會話數/活躍會話數
- DB Time使用率
- 執行個體目前會話數使用率
- CPU使用率趨勢
- 執行個體會話數趨勢
- SQL執行量/SQL解析量
- 執行個體邏輯讀/實體讀
- 執行個體網絡流量
- 執行個體IO請求次數
Oracle資料庫運維場景下,智能運維如何落地生根?導語資料采集Oracle儀表盤總結「智能運維大資料平台」
3.3 Oracle執行個體空間總覽
該儀表盤展現執行個體的空間使用情況。主要包括幾個部分:
-
執行個體總空間分布
展現所有執行個體的空間分布情況。
-
執行個體使用空間TOP
展現空間使用率TOP執行個體的空間變化趨勢。
-
執行個體表空間相關資訊
展現所選執行個體的表空間數量、執行個體總空間以及空間同比和環比、UNDO空間和TEMP空間、閃回區空間使用情況。
- 執行個體表空間使用率和占用空間排名。
- 執行個體表空間使用率TOP趨勢
-
執行個體表空間清單
展現執行個體所有表空間的空間使用情況。
3.4 Oracle阻塞會話
該儀表盤展現執行個體中阻塞會話的情況,儀表盤主要有幾個部分組成。
-
TOP阻塞會話趨勢圖
展現系統中所有執行個體的阻塞會話數變化趨勢。如有阻塞會話,需要特别關注。
-
執行個體等等事件分布圖
展現所選執行個體的阻塞會話的等待事件分布情況。
-
阻塞源分析
展現哪些Session引起了其它Session阻塞
-
等待事件趨勢
執行個體等待事件趨勢
-
阻塞會話清單
以表格的形式展現阻塞會話的詳細資訊,包括:
- Session ID
- 會回登陸時機
- 會回目前狀态
- 引起阻塞的會話ID
- 阻塞對象ID
- 等待事件
- 等待時間
- 登陸使用者資訊,包括使用者名,登陸終端,應用程式名稱。
- 執行的SQL資訊,包括SQL ID,SQL語句。
Oracle資料庫運維場景下,智能運維如何落地生根?導語資料采集Oracle儀表盤總結「智能運維大資料平台」
通過上面這些儀表盤,既能從總體上掌握所有執行個體的基本運作狀況,也能在單個執行個體上進行深入的分析,細到具體執行的SQL。能從總體上把握所有資料庫的空間使用趨勢,也能看到單個表空間的資料使用情況。
總結
上面的案例,是智能運維大資料産品在Oracle資料庫運維場景下的一個具體應用。
其實整個産品,完全不局限于資料庫運維這個場景。
産品在資料采集和資料應用上,具有強大的擴充能力。
-
自動巡檢
所有的名額,都可以配置成巡檢項,系統支援自定義排程周期(小時粒度),定期巡檢系統的運作狀況,以釘釘消息或郵件的方式發送出來。
-
全鍊路的監控
上面隻介紹了資料庫的場景,其實系統支援整個鍊路上的資料采集、分析。目前系統支援的采集包括:
- 實體裝置資訊采集(實體機CPU風扇、磁盤、溫度、電源狀态)
- 網絡裝置(交換機、防火牆、無線AP)
- 阿裡雲雲産品資料采集,支援幾十種雲産品的資料內建。
- 通用軟體(Docker,Tomcat,消息中間件)
- WEB通路日志、防火牆日志、主機日志
- 應用日志資料
- APM應用調用聯路資料采集
-
智能算法
自動基線學習,無需配置告警,就能自動監測系統運作異常狀況。
「智能運維大資料平台」
「智能運維大資料平台」是一款開箱即用的運維監控平台,通過特有的平台功能可以将企業的基礎架構、應用程式、日志管理結合在一起,提供統一采集、統一存儲、關聯分析、統一監控企業業務保障能力,保障企業業務穩定高效運作,同時利用離線計算、實時計算、機器學習等技術,實作運維資料共享、資料開發和加工能力,讓開發人員、營運團隊和業務團隊協同工作,建構和改進軟體應用程式,并幫助企業了解業務和使用者使用情況。被各大企業用于實作數字轉型和雲遷移,推動開發,營運和業務團隊之間的協作,加快應用程式的上線時間,縮短解決問題的時間,了解使用者行為和跟蹤關鍵業務名額。