1. 程式人生 > >談自動化運維平臺的地基如何打牢

談自動化運維平臺的地基如何打牢

作者介紹

戰學超,青航資料架構師。曾任職於NEC軟體、海爾B2B平臺鉅商匯,負責企業資料平臺構建、B2B電商平臺數據管理與搭建。擁有豐富DBA、系統運維架構經驗,擅長資料庫、資料平臺搭建、私有云部署、自動化運維等。

萬丈高樓平地起,高樓穩不穩取決於地基是否紮實。基礎資料便是運維管理這座高樓的地基。

首先介紹一下我們在運維管理中所涉及到的基礎資料有哪一些。請看下圖:

資料

基礎資料大致分為CMDB、日誌、生產DB、知識庫四個模組。

一、基礎資料概況

CMDB中文是配置管理資料庫,儲存與管理企業IT架構中裝置的各種配置資訊,與未來的IT運維管理標準化和流程化緊密關聯,並且支援流程的運轉。運維管理平臺建立初期或初版中的CMDB更多是偏向IT資產管理,我們在這裡定義的IT資產管理,暫時拋除公司個人使用的普通PC機。

日誌主要儲存CMDB中涉及到伺服器或是其它裝置的日誌資訊。

DB主要是所有IT系統的資料庫資訊,包括運維管理系統本身的資料庫。由於資料庫的重要性,所以在基礎資料中單獨一個模組管理資料庫,包括生產資料庫、測試資料庫、開發資料庫。資料庫的日誌放在日誌模組進行統一管理,監控和備份。

知識庫主要儲存日常運維管理中發生的事件、問題以及一些經典問題的解決和常用的解決方案,主要起到運維管理輔助的功能。

二、基礎資料三要素

基礎資料要求完整、準確、實時,這三個特性缺一不可。

1.完整性

完整性,要求在資料採集整理階段,要一一梳理,不能有遺漏。任何一個裝置的疏漏都將會導致未來出現問題。例如最近的勒索病毒在防範上需要給伺服器升級打補丁,這個時候就是根據伺服器清單一一對照,升級。如果有遺漏落下的伺服器未及時打補丁而導致病毒入侵,後果將很嚴重。那麼,如何做到完整性呢?大致可以分為以下幾步:

資料採集

首先資料採集階段多人(推薦三人以上)同時對IT資產進行採集,那麼在資料採集完成後,將會有三份或以上的IT資產清單。

接下來就是相互確認階段。相互check對比兩方的清單和自己梳理的清單,找到不一樣的地方,大家在一起開會進行討論。經過這個階段,會產生一份相對完整且三方(或以上)認可的IT資產清單。

最後就是三方(或以上)一同針對認可的IT資產清單進行最終check,確保最後的清單,是經過多方討論確認,並最終又check過的IT資產清單。此時這份IT資產清單,相對比較完整。另外在梳理、討論和check的過程中,針對新增、變更、刪除的IT資產一定要及時更新我們的IT資產清單。

2.準確性

準確性要求IT資產清單或是CMDB中儲存的資料不能與實際情況有任何差異。要做到基礎資料的準確性除了在資料採集階段要下功夫外,要在運維管理的每一個階段定期對基礎資料進行審計,確保基礎資料中的資料無誤。一般月度一小審,半年一大審,具體情況根據企業的IT規模而定。

3.實時性

基礎資料的實時性可以確保資料的準確性。即基礎資料的每一次變動,包括增加、刪除、修改,不論大小,只要有變動(在運維流程完結階段,執行運維操作成功後,就要及時更新基礎資料。忽略基礎資料的實時性,必將導致準確性大打折扣,在以後的月審、年審中必將導致額外的工作量。一般在審計的過程中,當資料的錯誤率達到一定程度後,需要重新梳理全部資料,以確保最終的準確和完整。

CMDB

CMDB

CMDB總的來說分為:產品線、資產管理、供應商管理三個部分。總的思路是:通過產品線管理IT資產,通過IT資產資訊管理硬體或服務提供者,供應商管理。

1.產品線

產品線是指整個公司所有IT系統、產品按照屬性進行歸類劃分。這有一個前提,就是梳理整個公司的IT專案和IT服務。這裡專案也可以理解為每一套IT系統,例如OA、CRM、訂單系統、支付系統等等。

IT服務主要是指:應用服務(Tomcat、WebLogic、資料庫服務等),基礎IT服務如Nginx、Varnish、Redis等。通過專案和服務兩個維度來管理IT資產,尤其是虛擬機器。因為一般系統和服務都是部署在虛擬機器上,虛擬機器的宿主機則是一臺臺物理主機。

產品線的劃分一般除了根據業務分類劃分幾個大的產品線外,還需要劃分一些基礎產品線,如:資訊保安產品線,主要管理資訊保安、網路安全等系統和裝置等;基礎服務產品線,如Nginx反向代理大部分系統,Varnish快取Web靜態資源等。

在這裡單獨說一下產品線和專案包括的服務必須制定運維優先順序等級。運維等級的制定不能簡單定義為多少級,而應該是為每一套系統進行運維優先順序打分,分值不能一樣。這樣保證在大面積故障的時候,可以根據優先順序解決問題。

2.資產管理

資產管理主要有以下幾個方面。首先是比較大的機房管理。有的企業可能會有多個機房,每個機房的基礎資訊,如頻寬、位置、值班電話等都需要加以整理儲存用來管理機房資訊。機房中的機架、機櫃、交換機、路由器等硬體資訊,機房的空調、UPS電源、環境監測系統等都屬於機房管理的範疇。

安全裝置管理。安全裝置管理這裡主要包含防火牆、IPS、WAF、VPN等網路設施。企業資訊保安非常重要,在運維管理中也把安全作為一個單獨的模組進行管理。通過購買安全硬體裝置和安全服務,不斷學習和研究,從而保護好企業資料資訊。

伺服器管理。這裡假定企業實現了虛擬化,大部分系統和服務都部署在虛擬機器,而虛擬機器是部署在物理機上。伺服器管理分物理機和虛擬機器分開管理,同時又密切關聯。虛擬機器在哪一臺或幾臺物理機需記錄清楚。

根據產品線中定義的運維優先度等級,在資產管理中的每一個節點標註上相應的等級分值,以便出現大規模故障,有選擇、有重點、有順序地逐一解決問題。

3.供應商管理

供應商管理主要是管理由第三方企業提供的IT系統或裝置的服務資訊。記錄供應商的具體資訊、值班電話、硬體備件庫等資訊。

以上幾個模組單獨管理,但是又密切相連。如產品線包含哪些專案,包含哪些服務,這些專案和服務部署在哪些虛擬機器上,虛擬機器又在哪一些物理機上,物理機分佈在哪些機房和在機房中的具體位置,物理機在機房中的網路位置和網路架構如何,經過哪些安全裝置等等。

反過來需要知道某一些機房有哪一些物理機,物理機位置,安全裝置,以及安全裝置與物理機的網路架構等,物理機上又有哪些虛擬機器上部署了哪一些專案和服務等。系統和服務屬於哪些供應商提供,供應商又提供了哪些系統、裝置或伺服器等。都要多維度進行管理。要求做到某一環節的故障,一查就知道所有受影響的系統和服務。CMDB中的資訊相互交織,多維度查詢和管理,構建出一張完整的總體架構圖,通過總體架構圖除了展現出各個部分的基礎資訊外,還描述了所有的依賴關係,做到壞一點而知全面。

日誌

日誌

通過日誌可以比較準確全面地知道系統或是裝置的執行情況,可以返查問題產生的原因,還原問題發生的整個過程。通過日誌也可以提前預測系統可能要發生的問題或是故障,如系統安全日誌,如果網路攻擊會在系統安全日誌中有一定的體現。

1.系統日誌

系統日誌主要指的是作業系統的日誌,主要在/var/log下的各種日誌資訊。包含系統操作日誌、系統安全日誌、定時任務日誌等。系統日誌是運維管理安全模組中審計的重要依據。一般預設的作業系統日誌不能滿足要求,需要對系統的引數進行修改,如為history命令加上時間戳、IP,並且長久保留歷史等功能。並且對日誌檔案進行處理,不允許使用者進行清空命令,只能append。

2.應用日誌

應用日誌主要記錄應用服務的健康執行情況以及業務操作的具體日誌兩部分。應用監控執行情況反應應用服務的健康狀態,如果應用佔用CPU或是記憶體過高或是忽高忽低不定,都可以通過分析應用日誌結合業務操作日誌得出結論。業務操作日誌可以為業務審計提供主要依據。有一些系統喜歡把業務操作日誌寫到資料庫中,這個也是需要注意的。不過不管在哪個地方,要求是不可缺少的,它為以後業務審計和問題返查提供依據。

3.資料庫日誌

資料庫日誌主要反饋資料庫的執行情況。通過監控和管理資料庫的日誌,及時瞭解資料庫的執行情況,遇到問題及時解決等。可以通過資料庫日誌結合資料庫系統自帶的資料庫如Oracle的系統檢視v$開頭,MySQL的performance_schema等。雖然資料庫的一些資訊不是存在日誌中而是在資料庫裡面,但是也可以作為資料庫日誌的一部分進行管理和監控,已便我們及時知道資料庫的監控狀況,從而預防可能出現的問題。

4.裝置日誌

裝置日誌一般是一個比較容易忽略的地方,但裝置日誌往往可以反映裝置的執行情況。交換機故障,防火牆故障等裝置故障都可能引起大面積的系統和服務故障。所以裝置日誌一定要收集,分析和監控預警。常用的裝置日誌有交換機日誌、防火牆日誌、網路安全裝置日誌等。

在CMDB中梳理的IT基礎設施的基礎上,對日誌進行分類收集、管理、分析和監控,配著監控管理模組的系統,就已經可以達到多方位監控IT系統,保障IT系統的安全穩定。

DB

DB

由於資料和資料庫的重要性,在基礎資料中,資料庫作為單獨的模組存在,根據環境劃分為:生產資料庫、測試資料庫、開發資料庫。嚴格區分三種環境的資料庫,避免測試資料到生產環境,生產資料到測試環境等。另外資料庫中資料也為業務監控提供資料依據。通過查詢資料庫中的資料,依據業務邏輯進行判斷是否有錯誤或是遺漏的資料。

知識庫

知識庫

知識庫在整個運維管理中是一個輔助功能,主要為運維提供事件管理、問題管理。很多朋友可能會疑惑為什麼把事件庫和問題庫放在知識庫這裡,這些不是應該在CMDB中嗎?這裡稍微解釋一下,其實本人也並不太清楚這種辦法是否可行。在CMDB模組中更多是偏向IT資產管理,為以後的運維操作提供運維範圍和運維目標。而事件(主要指運維過程中遇到的所有的運維事件)和問題(需要進行變更釋出才能解決的事件升級)更多是在IT資產之上,是解決IT資產的過程中遇到的事件和問題。如果把CMDB作為IT運維的基礎管理物件和範圍目標的話,事件和問題應該單獨出來。也許在後面的運維管理中,逐漸強化CMDB的功能,會把事件庫和問題庫迴歸到CMDB模組中。

知識庫中還包含經典案例庫,主要是解決一些常遇故障、經典問題的解決方法的整理和歸檔。

解決方案庫只要是一些常用的或是探索中的解決方案,例如:Nginx+Tomcat+Redis部署方案,FastDFS分散式檔案伺服器方案等。

文件庫主要用來儲存運維管理過程中執行的運維標準和規範以及運維的流程規範,常用的一些規範舉例:

文件庫也包括一些企業或是部門的規章制度,與供應商的合同條文等。主要是涉及到IT系統文件的一個存放和查閱的地方。

運維標準和運維流程的文件一定是必不可少的。因為運維自動化的前提就是運維的標準化和流程化。如果沒有明確的標準和規範的流程,運維自動化就只能一直停留在測試環境的假想空間中。

總結

基礎資料在整個運維管理中起到基礎、奠基的重要作用,也是做運維管理平臺的第一步和以後每一步的重要依據。一定要捨得投入時間、人力等來建立起完整、準確、實時的基礎資料。打好地基,以後運維的每一步都將有條不紊地循序漸進,終將建設成屬於運維的高樓大廈。

文章來自微信公眾號:DBAplus社群