编程 开源 google java wordpress php nginx Firefox Ubuntu 微软 云计算 linux apache Python shell 程序员 centos Android Windows mysql

如何做好自動化運維?自動化運維必備技能有哪些?

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

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

如何做好自动化运维?自动化运维必备技能有哪些?

基礎數據大致分為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總的來說分為:產品線、資產管理、供應商管理三個部分。

總的思路是:通過產品線管理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

如何做好自动化运维?自动化运维必备技能有哪些?

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

知識庫



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

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

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

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



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

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

總結

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

延伸阅读

    评论