CMDB開發(一)需求分析以及資產採集方式

  1. CMDB的作用是什麼,爲什麼要做CMDB?

    答:CMDB是運維自動化的最最基礎的東西,他是準確描述一個公司的it基礎架構的一個一個模型,然後可以進行動態的可視化。當我們採購服務器,這個服務器屬於哪個業務線,硬盤多少塊,內存多大,CPU是啥等等這些信息,以及服務器壞了,或者加硬盤,加內存,那麼多的信息如果用excel表格維護的話,服務器越來越多就很麻煩嗎,而且資產統計可能出錯,因爲人總有犯錯的時候(excel上錯誤的數據可能達到10%左右),這種不穩定因素太多了,而cmdb就可以把這些服務器的CPU,內存等等各種信息,變更記錄,操作記錄都記錄下來,比如拔了一塊硬盤,能夠自動顯示,或者某位運維人員進行了誤操作,可以在操作記錄中看到。

  2. CMDB資產採集的方式有哪些?

    答:主要有四種方式,
    ①使用agent,我們寫一些腳本在服務器上,可以通過Python的subprocess.getoutput執行,設置定時任務,讓它每隔一段時間執行一下來獲取關鍵信息,比如每隔一天執行一次,然後我們可以用Django寫一個API,把執行結果給API,API把服務器的變更信息等寫入到數據庫,之所以要API,是因爲要防止服務器直接連我們的數據庫,一旦某臺服務器被黑了,可以連到我們的數據庫就很不安全,不能讓機房的服務器直接連到數據庫
    在這裏插入圖片描述
    優點:速度較快,缺點是需要安裝agent
    ②使用ssh(基於paramiko模塊)
    中控機先通過API去數據庫裏面獲取沒有采集資產信息的服務器列表,然後通過paramiko模塊採集硬件信息到中控機裏邊,再發給API通過API寫到數據庫。
    在這裏插入圖片描述
    優點:不用安裝agent
    缺點:速度很慢(因爲是基於ssh),服務器比較少纔可以這樣做。
    ③使用salatstack
    在這裏插入圖片描述
    這種方式和上一種類似,也是先獲取沒有采集資產信息的服務器,但是是通過saltstack遠程執行命令,把要執行的命令放到一個隊列裏邊,然後把執行結果再放到另外一個隊列裏邊,再從隊列中取出結果發送給API,然後再寫入到數據庫。
    優點:速度快,開發成本低
    缺點:依賴saltstack,如果公司在用saltstack就很方便,如果公司不給用這個就不行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章