CMDB

Posted 美好生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMDB相关的知识,希望对你有一定的参考价值。

CMDB  http://www.cnblogs.com/wupeiqi/articles/6192986.html

CMDB需要实现的功能

1 资产自动收集

2 API

3 可视化管理

 

资产收集

一收集方式

1 paramiko方式

通过API获取主机名,利用paramiko获取数据解析成字典返回给API并入库

2 saltstack方式

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 错误

获取未更新主机
根据最后更新时间与当前时间对比


以上是关于CMDB的主要内容,如果未能解决你的问题,请参考以下文章

简易的CMDB服务端

CMDB资产管理

CMDB介绍

CMDB

cmdb简介和入门

CMDB项目管理