隨著雲計算和容器技術在改變我們當前的it基礎設施,產品和服務的正常執行更多地要依賴運維。然而大規模多場景的應用和越來越多的模組以及越來越複雜的架構給運維帶來了極大的挑戰,人工運維,甚至自動化運維已經無法滿足頻繁的故障需求。適逢人工智慧技術的時代,機器學習能將我們從機械繁複地人工操作中解放出來,這不正是運維需要的嗎?當人工智慧遇上運維,aiops讓運維人員看到了希望。
\\ aiops的概念兩年前才由gartner提出,目前落地還比較少,大家還在探索中。但是可以預見,aiops必將是運維的下乙個趨勢。現在國內aiops的採用如何?一些aiops的探路者都有總結出了哪些經驗?此次我們採訪了日誌易產品總監饒琛琳,來了解aiops行業現狀和基於日誌資料的aiops是怎麼實踐的。
\\\\
aiops是在devops的基礎上做的進一步的優化和提公升。devops要關注自動化,有監控規則。比如我們原先的監控系統有時候有二三十萬個告警項,不可能給這麼高頻度的告警挨個看,這時候就需要ai來做這個事情。
\\ 對於運維來說,運維對ai的需求就是解決工作中最耗時的那部分。
\\ 運維工作中乙個大的部分是監控,如何去完成乙個高效的監控系統,需要對自己的系統瞭如指掌,把監控項分布在很細的地方,包括怎麼設定閾值,這是很麻煩的事情,我們可以通過ai去完成這個事情。
\\ 另外一大塊就是告警和故障定位。運維團隊除了要解決當前的問題,也有長期目標,比如年度或者半年度的kpi,保證**或系統的效能。要優化效能點,可能要不斷地猜測嘗試,中間會有很大的時間成本。這種嘗試過程就可以通過ai演算法去提高優化,在盡量短的時間內達到原先要花很長時間的效果。所以ai對於運維團隊來說,最大的目的就是在運維工作裡去縮短時間,運維真正要做的事情還是那些事情。
\\\\
因為運維是在整個it技術裡面算比較新的領域,不像網路、安全等領域有一些大家公認的資料集。就算是在企業內部也不一定可以做好資料標註。所以aiops面臨的問題就是我們沒有比較好的可以做監督學習的樣本。
\\ 因此在做aiops的過程中,不管是在監控指標領域,還是在日誌分析領域,目前運用ai技術最簡單的方式就是用到一些非監督學習的演算法,比如聚類演算法(cluster analysis,亦稱為群集分析,把相似的物件通過靜態分類的方法分成不同的組別或者更多的子集(subset),這樣讓在同乙個子集中的成員物件都有相似的一些屬性,常見的包括在座標系中更加短的空間距離等)。
\\ 現在的aiops用法最常見的就是在排障過程中,怎麼從海量日誌裡找到自己關心的點,比如有的客戶採購了一些paas和iaas平台的系統,這種系統都很複雜,每乙個雲系統裡面可能都是好幾十個不同的元件,每個元件之間各自有各自的日誌輸出。因為不同元件的格式完全不一樣,我們把它採集到一起,對日誌進行聚類模式學習的演算法,進行快速排查,這時候需要看的資訊量就非常小,定位問題的mtti也很短。
\\ 另外一些地方會更進一步,把聚類和模式發現演算法用到告**面,去做告警的判斷。比如有的日誌型別之前從沒見過,像對於外採的裝置,我們知道正常情況下這種日誌應該是不會出現的,所以只要這種日誌輸出,就證明當時一定有問題。這時候去關注資訊優化,或者對這種極端情況做優化,這樣運維人員就能提前預料到某一類這樣的問題。
\\\\
日誌對運維工作的價值主要體現在兩個方面:
\\\\
日誌易作為乙個日誌管理平台,主要解決以下幾個問題:
\\ 首先是怎麼把各種**的資料收集起來,同時做好格式化和結構化,因為不管是統計分析還是機器學習,只有結構化了的資料才能用。我們在採集端和結構化端這塊有比較大的成本投入,提供了很多詳細的解析方式。同時我們也內建了上百種常見的基礎設施和中介軟體,包括一些通用業務系統的解析規則,部署上去之後就可以直接用,讓接入的資料能盡快地去做統計分析和樣本學習。
\\ 另外在做統計分析這塊的時候,每一家的統計需求可能完全不一樣,如果對每乙個分析需求都寫自己的分析程式,只要業務變更了,這個分析程式就失效了。對此我們做了乙個介面層,叫做spl,search processing language,它是乙個類似sql的東西,但是會像運維人員更熟悉的shell語法,可以把要現寫的程式變成寫shell命令一樣。這樣對每個不同的需求,可以就像寫shell指令碼一樣快速完成。
\\ 我們第一步先降低了採集資料和資料格式化的難度,第二步在統計分析時候,又簡化了寫程式的過程,這樣我們整個這個平台就可以比較完整的形態,快速地完成事情,降低了各種成本。
\\ 日誌易本身的定位就是通過採集日誌資訊,做結構化,然後通過演算法做統計分析。
\\ 另外乙個方面,我們理解的日誌是乙個廣義的日誌概念,有時間戳和一段內容。我們其實也可以把很多監控系統的資料對應到日誌來,因為監控系統資料有乙個時間戳,乙個監控項的名稱,再加上當前這個值,所以它其實也是乙個有時間戳的內容。
\\ 很多時候我們會對接使用者的監控系統,把他們監控系統裡歷史資訊和監控指標也拿到我們平台來,這樣就可以把我們的時序指標分析運用到這部分資料裡。這樣我們既接入了監控系統的資料,也接入了狹義的日誌資料,就可以在同乙個時間維度上做分析。以時間戳這個維度為核心要素,把不同系統的資料拿過來,再按同樣的時間戳做對比分析,排障的時候就會非常方便。
\\\\
因為所有的ai演算法首先的成熟條件就是要有足夠多而且充分的資料,顯然像網際網路行業或者金融銀行,這些原先it建設水平就比較高,已經有了不少資料積累的企業更合適做aiops,這樣的企業現在只是需要用ai把這些資料的價值發揮出來。
\\ 18年以來,很多企業都在做aiops方面的嘗試或投入,他們會拿出一部分自己的監控系統的資料或日誌系統的資料去做一些ai嘗試,現在來看主要還是在監控和日誌這幾個方向。ai還有一些其他的方向,比如智慧型客服,但這部分就目前來說還不是緊要關頭。對於更廣泛的企業來說,還是要先抓住監控系統和日誌系統做一些處理,這樣可以發揮出更明顯和直接的價值。
\\ aiops的趨勢現在已經比較明顯了。有的企業已經在開始做嘗試,還有的已經在做計畫了。因為做aiops還是有些前提條件的,可能有些企業內部建設還沒有很完善,但是他們也會關心自己已經完善到了什麼地步,這一步的完善對下一步引入aiops會不會有比較明顯的幫助。現在,包括在往後的一段時間內,大家應該會非常積極的參與這到件事中。
\\ 因為aiops現在還是比較新的東西,現在可能還沒有一套特別全的產品提供,主要是將ai用在以下三個方面:
\\\\
現在aiops實踐中最大的難點就是我們沒有好的樣本資料進行學習。另一方面,現在大家集中關注的是從監控和日誌裡發現問題,定位問題。但是就aiops整體來說,還有很廣泛的一面是決策,而這塊目前還是缺少突破。雖然現在很多人在提去和原先已有的通用化運維系統做對接,比如現在看到問題了,我們判斷一下需要搭幾台機器,介面調幾台機器,但是對這類問題大家還處在乙個粗淺的嘗試階段。
\\ 饒琛琳說,理想中的aiops應該是跟無人駕駛的感覺一樣。在發現故障之後,aiops就可以抉擇出來最優的做法,通過判斷快速定位,以時間最快成本最優的方式解決問題。最後,我們能想到的是在devops整個流程閉環中,每乙個階段都有ai,能完善的流轉,最後形成aidevops,甚至aidevsecops。
\\ 感謝張嬋對本文的策劃和審校。
日誌易AIOps實踐 日誌資料大有用途
隨著雲計算和容器技術在改變我們當前的it基礎設施,產品和服務的正常執行更多地要依賴運維。然而大規模多場景的應用和越來越多的模組以及越來越複雜的架構給運維帶來了極大的挑戰,人工運維,甚至自動化運維已經無法滿足頻繁的故障需求。適逢人工智慧技術的時代,機器學習能將我們從機械繁複地人工操作中解放出來,這不正...
日誌分類存放 AIops 一文了解日誌異常檢測
背景介紹 日誌的預處理 日誌資料千差萬別,對於絕大部分演算法日誌資料無法直接用於演算法訓練,需要通過日誌解析 特徵提取將日誌轉換為特徵矩陣,特徵矩陣作為演算法的輸入。日誌資料雖不易區分,但總體上可分為可變部分和不變部分,日誌解析就是就是將日誌的可變部分與不變部分進行區分,並將原始日誌轉換為日誌事件。...
AOP實踐 日誌記錄
aop實踐 自定義註解實現日誌記錄 專案環境springboot spring aop預設是使用aspectj的註解 1.引入jar包 org.springframework.boot spring boot starter aop 2.自定義註解 target retention retentio...