CMDB资产采集方案】的更多相关文章

CMDB资产采集方案 CMDB 资产采集的方案总共有四种 Agent SSH类 Saltstack Puttet 方案设计,从性能上考虑 下面前三种是用Python开发的,目标是兼容三种采集方式的软件 原理要明白 如何实现自动采集? subprocess Linux基本命令 v = subprocess.getoutput('ls') 1 Agent方式 API:Django接收数据并入库 程序:放置在每台服务器 应用场景:机器多的时候 每台服务器都有程序,程序实现采集数据(执行subproce…
一.资产采集四种方式 1. Agent方式 API:Django接收数据并入库 程序:放置在每台服务器 应用场景:针对服务器较多的公司 步骤一: #执行本地命令的库 import subprocess sub = subprocess.getoutput("要执行的命令名") 每台机器通过用户名密码链接数据库,获取要执行的命令 步骤二: 采集数据 import subprocess # 采集到本机运行ipconfig命令的输出结果 result = subprocess.getoutp…
转 https://www.cnblogs.com/guotianbao/p/7703921.html 资产采集的概念 资产采集的四种方式:Agent.SSH.saltstack.puppet 资产采集 Configuration Management Database 简称CMDB,CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性.CMDB可以实现高度的自动化,减少人为错误的…
Agent(方式) 1:服务器每台都需要安装Agent 达到采集速度快,简单:造成性能损耗 获取每台服务器的资产并有返回值:v=subprocess.getoutput('dir')或者ipconfig 返回给api api在进行入库 (api 1.url 2.指定发送数据格式 3.并有返回值给客户端) 2:应用场景:服务较多的公司 客户端: import subprocess v1=subprocess.getoutput('ipconfig') # print(v1) value1=v1[2…
一:Agent方式 原理:在每台服务器装上agent客户端程序,定时向数据库发送指定的资产信息. 优点:速度快. 缺点:服务器上需要多装一个软件 import subprocess import requests # pip3 install requests # ################## 采集数据 ################## # result = subprocess.getoutput('ipconfig') # result正则处理获取想要数据 # 整理资产信息 #…
CMDB02/单例模式.资产采集参考命令.日志处理 目录 CMDB02/单例模式.资产采集参考命令.日志处理 1. 单例模式 1.1 多例模式 1.2 单例模式 1.2.1 单例模式/错误 1.2.2 单例模式 new/正确 1.2.3 单例模式之文件导入/正确,在源码中的应用 1.3 单例模式补充 2. 日志 3. 获取资产信息的命令 4. 数据封装 5.表关系 总结: 1. 单例模式 1.1 多例模式 代码示例 class Foo(object): def __init__(self,nam…
资产采集唯一标识和允许临时修改主机名 class AgentClient(BaseClient): def exec(self): obj = PluginManager() server_dict = obj.exec_plugin() new_hostname = server_dict['basic']['data']['hostname'] cert_path = os.path.join(settings.BASEDIR,'conf','cert') f = open(cert_pat…
#!/usr/bin/env python # -*- coding:utf-8 -*- import traceback from .base import BasePlugin from lib.response import BaseResponse from lib.log import logger class Basic(BasePlugin): def os_platform(self,handler, hostname): """ 获取系统平台 :return…
最近正好在给公司做CMDB资产管理系统,现在做的也差不多了,现在回头吧思路整理下. CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性. 在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系.…
CMDB03 /今日未采集的资产.资产入库.资产变更记录.资产采集 目录 CMDB03 /今日未采集的资产.资产入库.资产变更记录.资产采集 1. 获取今日未采集的服务器 2. server资产入库以及资产变更处理 3. client基于ssh远程资产采集 总结: 1. 获取今日未采集的服务器 代码示例: def get(self,request,*args,**kwargs): """ 返回今日未采集的服务器列表 """ today = dat…
运维自动化最重要的就是标准化一切 自动化运维则支持以下功能: 1.OS的选择统一化,同一个项目使用同样的OS系统部署其所需要的各类软件.2.软件安装标准化,例如JAVA虚拟机,php,nginx,mysql等各类应用需要的软件版本,安装目录,数据存放目录,日志存放目录等.3.应用包目录统一标准化,及应用命名标准化4.启动脚本统一目录和名字,需要变化的部分通过参数传递5.配置文件标准化,需要变化的部分通过参数传递6.日志输出,日志目录,日志名字标准化7.应用生成的数据要实现统一的目录存放8.主机/…
本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Government Commerce)负责…
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析Html,用开源的HtmlAgilityPack就很快解决问题了.我个人并不是技术特别深,所以只要是解决问题就OK了.但每一次需求并不是完全一致的,对上面那篇文章的采集,无需登录,是非常灵活的,但是这次碰到的稍微有点变态,虽然最后任务完成,但总结方案还是很low的,但觉得还是有必要分享出来,希望对以…
1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么?          为什么没有下拉框了 ?是因为我隐藏了,获取的的是资产id号,但是显示的是sn号 代码如下: {% extends 'base.html' %} {% block page-container %} <div class="eq-height"> <div class="col-s…
Server表: asset = models.OneToOneField('Asset') 主机名(hostname) sn号(sn) 制造商(manufacture) 系统(os_platform) 系统版本(os_version) CPU个数(cpu_count) CPU版本(cpu_model) 创建的时间(ctime)   Disk表: 插槽位(slot) 磁盘型号(model) 磁盘容量(capacity) 磁盘类型(pd_type) 对server的外键(server_obj)  …
资产表 # _*_coding:utf-8_*_ __author__ = 'jieli' from assets.myauth import UserProfile from django.db import models class Asset(models.Model): asset_type_choices = ( ('server', u'服务器'), ('networkdevice', u'网络设备'), ('storagedevice', u'存储设备'), ('securityd…
表结构设计1详细注释代码 # _*_coding:utf-8_*_ __author__ = 'luoahong' from assets.myauth import UserProfile from django.db import models class Asset(models.Model): asset_type_choices = ( ('server', u'服务器'), ('networkdevice', u'网络设备'), ('storagedevice', u'存储设备'),…
1.目录结构 PS Y:\MadkingClient> tree /f 卷 netgame 的文件夹 PATH 列表 卷序列号为 ACE3-896E Y:. ├─bin │ NedStark.py │ __init__.py │ ├─conf │ │ settings.py │ │ __init__.py │ │ │ └─__pycache__ │ settings.cpython-35.pyc │ __init__.cpython-35.pyc │ ├─core │ │ api_token.p…
本节目标 审核写到数据库,我就单独写一个如下的 页面 单机go后就跳转到如下图界面,我们这节课的目标就是写一个这样的页面 asset\admin.py部分代码 注释如下: class NewAssetApprovalZoneAdmin(admin.ModelAdmin): list_display = ('sn','asset_type','manufactory','model','cpu_model','cpu_count','cpu_core_count','ram_size','os_d…
1.需求分析 1.比对分析 比对的时候以那个数据源为主? old [1,2,3 ] db数据库 new [2,3,4 ] 客户端汇报过来的 当然以客户端汇报过来的数据为主 2.更新分析 不同的表到底拿那个字段当做唯一值? old nic { n1 10.0.0.3 --> 192.168.3.22 #源数据里要拿那个字段去找 n2 172.168.10.2 n3 192.165.52.33 } sn:网卡没有sn ip一个客户端三个ip 都不靠谱,只有mac是唯一的地址, 拿新ip对应的mac地…
前言 Elastic Stack 提供 Beats 和 Logstash 套件来采集任何来源.任何格式的数据.其实Beats 和 Logstash的功能差不多,都能够与 Elasticsearch 产生协同作用,而且 logstash比filebeat功能更强大一点,2个都使用是因为:Beats 是一个轻量级的采集器,支持从边缘机器向 Logstash 和 Elasticsearch 发送数据.考虑到 Logstash 占用系 统资源较多,我们采用 Filebeat 来作为我们的日志采集器.并且…
1.API验证分析 API三关验证 客户端和服务端中都存放一份相同的随机字符串,客户端发请求的时候把随机字符串和当前时间进行MD5加密,同时带着当前时间通过请求头发送到API,进入三关验证. 第一关是时间验证 (验证服务器当前时间和客户端发送过来的时间,超过10s后,验证不通过)第二关是MD5规则验证(服务端把自己的密钥同客户端发送过来的时间进行MD5加密,进行密文的比较)第三关是访问列表验证(从访问列表中查询是否存在,如果存在,验证不通过,否则把当前值存到列表中,并设置超时时间),这里的时间可…
刚才都是一条像内存,硬盘,网卡.多条的话如何操作 只有一条数据 下面的是有多条数据的 硬盘必须字段的验证 def __create_disk_component(self): disk_info = self.clean_data.get('physical_disk_driver') if disk_info: for disk_item in disk_info: try: self.__verify_field(disk_item, 'slot', str) ''' 这里确实是验证了一个s…
一.上节知识点回顾 服务器设计了一个表结构 开发了一个客户端 二.后台创建缓存区表 客户端连接服务器,在服务器的下面看报错信息 因为URL都没有写,所以我找不到呀 1.在MadKing\url.py 文件下加如下内容 url(r'^asset/',include(asset_urls)), ''' 你看我把所有的以asset开头的请求都转到了asset_urls下,为什么要这样做? 因为在项目开发的时候,有很多的项目是很多的组开发的,如果你把url写到全局 的话,每次更新都会改所有的url,全局…
一.资产自动回报数据及个更新流程图 二.表结构注释(NewAssetApprovalZone) class NewAssetApprovalZone(models.Model): """新资产待审批区""" sn = models.CharField(u'资产SN号', max_length=128, unique=True) ''' 必填的: 1.sn号 如果管理员不审批.客户端就会不停的回报,难道每次汇报一次往表里写一次?所以就用sn来进行区…
file文件自己去拷贝(这里不提供) custom_settings.py import os BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 获取到根路径 MODE = 'agent' SSH_USERNAME = 'root' SSH_PASSWORD = ' SHH_PORT = 22 DEBUG = True #代码调试,如果为True就会读取file中文件的内容,如果不是会执行linux命令 P…
仅供参考…
官方文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#substituting-a-custom-user-model Django 自带的用户认证系统已经可以满足大部分的情况,但也可以进行自定义来满足某些特定的需求. Django 支持使用其他的认证系统.也可以扩展Django的User模块,还可以完全自定义新的认证模块. 定义用户认证模块,定义用户表的各个字段信息. 写在单独的文件中(官方是写在models.…
客户端疑难点及获取流程 1.linux客户端支持2就可以,python3就是很麻烦 难道你要求所有的客户端都上pytho3吗? 现在从bin的入口进去 HouseStark.ArgvHandler(sys.argv) 2. core import HouseStark from core import HouseStark 3.class InfoCollection(object): def Linux(self): sys_info = plugin_api.LinuxSysInfo() r…
想实现的是一个表里面的字段 选择性的出现在菜单栏 1.如何自定义菜单 自定义菜单前 在asset\admin.py里添加如下代码: class NewAssetApprovalZoneAdmin(admin.ModelAdmin): list_display = ('sn','asset_type','manufactory','model','cpu_model','cpu_count','cpu_core_count','ram_size','os_distribution','os_rel…