資產管理系統Cmdb助力自動化運維實施
前言:
在新公司負責全網的自動化運維平臺及給各個業務線提供接口數據。這工作和以前做的很類似,也算是比較順手的工作,這段時候遇見一些問題,導致開發的前進速度的放慢了,具體有哪些的不完善,我這里就先不列出了,但是會把我遇到的問題的根源,放大炮似的描述下。新公司的資產系統還算可以的,比不少公司的資產管理也都要強大,只是我人比較“刺”,我見過比這更強大的,而且在那開發部門里待過,也參與過這項目相關的資產的開發。 經常搞這些個東西,所以整個開發實現和流程步驟也都算明白。
扯遠點,既然大家都在學習python,完全可以用python django這類的模式,開發資產信息管理系統。
什么是資產系統?
資產系統,時尚的英文名字叫做cmdb,同義為配置管理數據系統。資產系統和cmdb并不是一回事,可以說cmdb包含了資產系統。
下面看看有些產品網站給與資產系統和cmdb的定義:
他們看似不一樣,但其實有很大的關聯。我們也不要太主觀的區分他們,下面分享一下我的資產管理cmdb相關經驗和需要注意的地方。
為什么要重視cmdb?
最簡單的可以知道買的服務器上沒有上線?誰在用?哪個業務在用?用的是哪個ip?放到了哪里?有沒有保修過?使用情況如何? ip的現狀,占用情況等。
說的全面點,他包括以下方面:
IP:所有IP、IPMI,所有MAC 配置:采購配置、實際配置、OS 應用分類信息:多級分類組合、應用組合 資產號、序列號、型號、負責人、合同、上架日期 IDC、機柜、網絡 其他分類:虛/實、線上/線下/庫備/報廢、自有/外部 需要跨系統數據組合的運維報表 全國將過保、將報廢、備機的IDC分布、項目分布 虛擬化資源利用率、節約率、故障率、成本分攤 強大的報表生成能力
|
高級點,可以用在庫里面,直接展現圖表,知道哪個業務線的部署節點的情況,通過這些節點直接去zabbix接口趣監控的load數據。得到類似該業務線的全網的load圖。
再高級點,存放了系統的密碼以及管理網的密碼,以及機房展現圖。
這些為什么要重視他的原因,也正是我期待的資產系統的一部分功能。
cmdb相關問題匯總
接下來談談我和同事在工作中遇見的問題,這樣方便大家更好的理解 。
我們對面的組是系統組,經常讓被他們的電話聲音吵了思路,有不少的原因是和ibm、dell的工作人員核實服務器的位置,大家的記錄雖然也是數據庫里面查詢查來的,總是覺得不夠直觀。 如果實現了機房的拓撲圖那就爽了。 可以很直觀的看到查詢機房的各個情況。
在平臺上輸入lvs后端的節點,但是你是用張三登錄的,這個時候,添加后端ip域名之前我需要做些相關的認證。 首先檢測這個ip是不是公司的已有ip地址,這個ip地址是不是你當前用戶名資產下的。 沒有的return false; 別讓他繼續了。
他想拿出幾臺服務器做集群,在自助平臺上操作,根絕資產那邊的硬件情況做個分類,做集群算法的時候,后端會自己跑到資產接口拿數據,根據情況給出不同的 weight權衡值。
新上線的服務器,做為后端的web節點,部署puppet或者saltstack環境的時候,我們需要他的密碼。 這個時候,需要從資產系統里面拿信息,然后初始化環境,比如用saltstack的jinja2 模板數據,配置的外網ip地址,ip route,主機名,kerberos權限表。 都是需要在一個接口拿,只能是資產系統。
在平臺上針對lvs有重大配置更改的時候,需要給領導發一個郵件或者是手機,用來確定,確定之后才能繼續下去。 你領導的聯系方式怎么獲得,肯定也是資產系統里面的,不然在你的mysql再次錄入,顯得不太專業。
上線說的是我作為運維開發所需要的接口數據,這些是從cmdb里面搞到的,說起來容易,cmdb的數據作準真的好難搞,前公司也是花費了大量的心力和實習生們的努力才把數據作準,就算是現在也不敢說數據是100%準的。
數據是如何填滿的?
A. 很簡單,就是遍歷要查的數據,服務器的直接跑收集的工具,還有些東西可以用ipmi去跑收集。
同事用gearman和廠家工具寫的分布式框架,是專門抓取數據的,有時間讓他開源。我最開始寫過批量獲取服務器硬件數據的腳本,用zeromq做的任務分發隊列效率很高的,剛找了很久,貌似當時沒有推到github里 ……
B. 一些機柜機房的資產信息,可以給世紀互聯一個添加數據的頁面,等他們寫好,你過去核對下,合格后,直接點擊入庫。
做好資產管理系統,我覺得在開發上沒啥難度,在公司里隨便拉個php開發,也都能搞定,推行的難度還是在于后期的數據維護。
1. 制定規范流程
2. 揮動所有能指派的力量去核對數據
3. 用流程去增刪改查數據