CMDB http://www.cnblogs.com/wupeiqi/articles/6192986.htmlhtml
CMDB須要實現的功能python
1 資產自動收集數據庫
2 APIapi
3 可視化管理服務器
資產收集restful
一收集方式app
1 paramiko方式運維
經過API獲取主機名,利用paramiko獲取數據解析成字典返回給API併入庫測試
2 saltstack方式url
3 puppet方式
4 Agent方式
二 收集要點
1 採集方式配置
2 插件定製(信息收集以及存放)
3 測試模式 (功能測試)
4 錯誤日誌(詳細行)
5 回報數據(API認證)
6 資產惟一標識(使用主機名等不重複的信息做爲惟一標識,並將惟一標識信息寫入指定文件,之後從文件中獲取惟一標識)
logging模塊
http://www.cnblogs.com/wupeiqi/articles/5501365.html
單文件日誌
import
logging
logging.basicConfig(filename
=
'log.log'
,
format
=
'%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s'
,
datefmt
=
'%Y-%m-%d %H:%M:%S %p'
,
level
=
10
) 配置日誌格式
logging.debug(
'debug'
)
logging.info(
'info'
)
logging.warning(
'warning'
)
logging.error(
'error'
)
logging.critical(
'critical'
)
logging.log(
10
,
'log'
)
CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN = WARNING INFO = 20 DEBUG = 10 NOTSET = 0
多日誌文件
定義文件
file_2_1 = logging.FileHandler('l2_1.log', 'a') fmt = logging.Formatter() file_2_1.setFormatter(fmt)
定義日誌
logger2 = logging.Logger('s2', level=logging.INFO) logger2.addHandler(file_2_1)
寫日誌
logger1.critical('1111')API認證客戶端appid='....'current_time ='...'m=hashlib.md5(appid+current_time)new_appid='%s|%s'%(m,current_time)requests.get(url='',headers='new_appid')服務器1 分割new_appid,獲取客戶端的current_time並獲取服務器端的current_time,比較超過10秒就返回驗證失敗。2 不然循環appid列表,若是已存在就返回驗證失敗,不存在就下一步驗證,同時將保存時間超過10秒的刪除。3 根據本身的appid和客戶端的current_time生成md5值,而後和客戶端的md5值比較,相同則返回結果並將appid添加到列表,不然返回驗證失敗restfulapi同一個資源使用一個api連接,根據請求方式不一樣做出不一樣響應數據庫表設計1 運維及業務聯繫人信息表2 權限信息表3 用戶組表,根據業務分組4 業務信息表5 idc機房6 資產類型7 標籤8 服務器9 具體硬件資源(硬盤,網卡,內存)10 資產變動11 錯誤獲取未更新主機根據最後更新時間與當前時間對比