從馬車到汽車是爲了提高運輸效率,而隨着時代的發展,現在咱們又但願用自動駕駛把駕駛員從開車這項體力勞動中解放出來,增長運行效率,同時也可減小交通事故發生率,這也是企業對於智能運維的訴求。html
從人工運維到自動化運維是爲了減小人力成本,下降操做風險,提升運維效率,但自動化運維的本質依然是人與自動化工具相結合的運維模式,仍有侷限性。爲了持續地面向大規模、高複雜性的系統提供高質量的運維服務,智能運維(AIOps)應運而生。git
本文,袋鼠雲將跟你們分享智能運維大數據平臺(一款開箱即用的運維監控平臺)在Oracle數據庫運維場景下的具體應用。github
使用平臺第一步是數據接入。要作好Oracle的運維,須要哪些數據支撐?根據咱們運維Oracle平常的經驗總結,如下幾類數據是特別重要的:算法
實例和數據庫基礎信息數據庫
包括實例的版本、Patch、啓動時間、實例參數、主機基本配置信息。網絡
數據庫健康檢查架構
檢查數據庫是否能正常鏈接,讀寫響應時間是否正常。運維
實例基礎性能數據機器學習
包括業務的QPS、TPS,實例和主機的CPU使用率、內存使用率、鏈接數使用率,SQL解析狀況,數據庫的邏輯讀、物理讀,數據庫鎖等待情況,以及RAC集羣間的通訊情況。ide
Oracle等待事件
採集Oracle內部等待事件的類型、等待次數和消耗時間。從等待事件能夠判斷實例運行的總體健康狀況,定位實例瓶頸。
數據庫空間使用信息
包括表空間文件佔用空間、表空間使用空間、臨時表空間使用狀況、UNDO表空間使用狀況。須要實時監控表空間使用狀況,避免表空間佔滿引發故障。
數據庫Session信息
Session信息記錄了實例當前運行的SQL狀況,記錄了當前阻塞Session的具體信息,比較常見的如鎖等待。經過Session信息,方便快速定位實例中的阻塞現象。
數據庫備份狀況
在數據庫運維領域,備份重於泰山。天天都須要檢查數據庫的備份狀況,包括備份是否成功,備份耗時,備份佔用空間等。
DataGuard運行情況
DataGuard是Oracle高可用最經常使用的方案之一。須要實時檢測Oracle DataGuard的運行情況,包括日誌傳輸是否正常,日誌應用延遲。
日誌信息
數據庫的告警日誌、TNS監聽日誌。從日誌中能夠發現數據庫內部運行錯誤、異常的客戶端鏈接信息等。
上述的數據採集,已經集成在產品中。用戶只須要在數據庫性能採集模塊配置接入信息,就會自動採集這些數據。
數據接入以後,產品上會從幾個方面來使用這些數據:
儀表盤
系統默認帶了Oracle場景的通用儀表盤。用戶也能夠根據本身的使用習慣,經過SPL的方式配置自定義儀表盤。
監控告警
系統內置常見的監控告警。也能夠經過SPL的方式配置自定義告警項。數據只要採集到了,就能夠用於配置告警。
智能巡檢
系統支持配置自定義巡檢規則,按用戶定義的時間間隔,按期進行數據庫巡檢。
日誌分析
基於系統採集的Oracle告警日誌、TNS監聽日誌,除了使用基本的日誌搜索、監控告警,也能夠配置一些日誌分析的場景。
本文重點介紹儀表盤的使用。
儀表盤是數據可視化展示的基本形式,便於用戶從直觀上了解系統的總體運行情況。
一、Oracle實例總覽
Oracle總覽Dashboard主要包括這幾個部分:
經過這2個指標定位繁忙的實例。
二、Oracle實例詳情
該儀表盤用於展示單個實例的運行詳細情況。儀表盤主要分以下幾個部分。
1)實例信息
顯示實例的基本信息,包括主機狀況,實例運行狀態,實例的版本,數據庫的角色,讀寫模式等
2)實例運行狀況
展示實例的核心運行指標。
· 阻塞會話數/活躍會話數
· DB Time使用率
· 實例當前會話數使用率
· CPU使用率趨勢
· 實例會話數趨勢
· SQL執行量/SQL解析量
· 實例邏輯讀/物理讀
· 實例網絡流量
· 實例IO請求次數
三、 Oracle實例空間總覽
該儀表盤展示實例的空間使用狀況。主要包括幾個部分:
1)實例總空間分佈
展示全部實例的空間分佈狀況。
2)實例使用空間TOP
展示空間使用率TOP實例的空間變化趨勢。
3)實例表空間相關信息
展示所選實例的表空間數量、實例總空間以及空間同比和環比、UNDO空間和TEMP空間、閃回區空間使用狀況。
4)實例表空間使用率和佔用空間排名。
5)實例表空間使用率TOP趨勢
6)實例表空間列表
展示實例全部表空間的空間使用狀況。
四、Oracle阻塞會話
該儀表盤展示實例中阻塞會話的狀況,儀表盤主要有幾個部分組成。
1)TOP阻塞會話趨勢圖
展示系統中全部實例的阻塞會話數變化趨勢。若有阻塞會話,須要特別關注。
2)實例等等事件分佈圖
展示所選實例的阻塞會話的等待事件分佈狀況。
3)阻塞源分析
展示哪些Session引發了其它Session阻塞。
4)等待事件趨勢
實例等待事件趨勢。
5)阻塞會話列表
以表格的形式展示阻塞會話的詳細信息,包括:
· Session ID
· 會回登錄時機
· 會回當前狀態
· 引發阻塞的會話ID
· 阻塞對象ID
· 等待事件
· 等待時間
· 登錄用戶信息,包括用戶名,登錄終端,應用程序名稱。
· 執行的SQL信息,包括SQL ID,SQL語句。
經過上面這些儀表盤,既能從整體上掌握全部實例的基本運行情況,也能在單個實例上進行深刻的分析,細到具體執行的SQL。能從整體上把握全部數據庫的空間使用趨勢,也能看到單個表空間的數據使用狀況。
上面的案例,是智能運維大數據產品在Oracle數據庫運維場景下的一個具體應用。
其實整個產品,徹底不侷限於數據庫運維這個場景。
產品在數據採集和數據應用上,具備強大的擴展能力。
1)自動巡檢
全部的指標,均可以配置成巡檢項,系統支持自定義調度週期(小時粒度),按期巡檢系統的運行情況,以釘釘消息或郵件的方式發送出來。
2)全鏈路的監控
上面只介紹了數據庫的場景,其實系統支持整個鏈路上的數據採集、分析。目前系統支持的採集包括:
· 物理設備信息採集(物理機CPU風扇、磁盤、溫度、電源狀態)
· 網絡設備(交換機、防火牆、無線AP)
· 阿里云云產品數據採集,支持幾十種雲產品的數據集成。
· 通用軟件(Docker,Tomcat,消息中間件)
· WEB訪問日誌、防火牆日誌、主機日誌
· 應用日誌數據
· APM應用調用聯路數據採集
3)智能算法
自動基線學習,無需配置告警,就能自動監測系統運行異常情況。
「智能運維大數據平臺」
「智能運維大數據平臺」是一款開箱即用的運維監控平臺,經過特有的平臺功能能夠將企業的基礎架構、應用程序、日誌管理結合在一塊兒,提供統一採集、統一存儲、關聯分析、統一監控企業業務保障能力,保障企業業務穩定高效運行,同時利用離線計算、實時計算、機器學習等技術,實現運維數據共享、數據開發和加工能力,讓開發人員、運營團隊和業務團隊協同工做,構建和改進軟件應用程序,並幫助企業瞭解業務和用戶使用狀況。被各大企業用於實現數字轉型和雲遷移,推進開發,運營和業務團隊之間的協做,加快應用程序的上線時間,縮短解決問題的時間,瞭解用戶行爲和跟蹤關鍵業務指標。
數棧是雲原生—站式數據中臺PaaS,咱們在github和gitee上有一個有趣的開源項目:FlinkX,FlinkX是一個基於Flink的批流統一的數據同步工具,既能夠採集靜態的數據,也能夠採集實時變化的數據,是全域、異構、批流一體的數據同步引擎。你們喜歡的話請給咱們點個star!star!star!
github開源項目:https://github.com/DTStack/flinkx
gitee開源項目:https://gitee.com/dtstack_dev_0/flinkx