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