CMDB-客户端】的更多相关文章

目录: 1.面试提问 2.完善采集端代码 3.唯一标识的问题 4.API的验证 1.面试会问到的问题: # 1. 为啥要做CMDB?# - 实现运维自动化, 而CMDB是实现运维自动化的基石# - 之前公司统计资产的时候,使用Excel来统计, 为了年底资产审计方便,因此需要做CMDB## 2. CMDB的架构以及你们公司采用的架构是啥?# Agent# ssh类# saltstck### 3. 你做这个项目的时候, 主要负责哪一块?## - 数据的采集和发送## a.数据的采集:# - 高级的…
#cmdb脚本程序一 #!/usr/bin/python # coding:utf-8 """ 采集机器自身信息 1 主机名 2 内存 3 ip与mac地址 4 cpu信息 5 硬盘分区信息 6 制造商信息 7 出厂日期 8 系统版本 """ import socket import psutil import subprocess import time import platform import json import requests d…
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…
cmdb客户端文件夹创建 客户端:client:-bin:启动文件-src:源文件(核心代码)-conf:配置文件-lib:全局的一些方法 和配置-test:测试文件…
python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ 提取码:ifp2 CMD是什么以及发挥什么样的作用 1.1:CMDB架构 文档使用CMDB部署redis集群来演示 1.2:CMDB核心功能 1.使用CMDB部署的服务,会服务器记录所有设备信息 ,包括机房,公网IP/私网,集群信息,负责人,连接交换机端口 带宽,硬盘,CPU内存等信息 2.在CMD…
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…
客户端疑难点及获取流程 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…
客户端使用agent 请求测试,agent使用的POST 请求,使用requests模块 本地采集,汇报服务端 #!/usr/bin/env python # -*- coding:utf-8 -*- from .base import BaseHandler from ..plugins import get_server_info import requests import json class AgnetHandler(BaseHandler): def cmd(self,command…
# client.py # ————————01CMDB获取服务器基本信息———————— from src import plugins #__init__.py from lib.serialize import Json #转成字符串或者模式 # ————————02CMDB将服务器基本信息提交到API接口———————— import requests #伪造页面访问 from config import settings #文件配置 # ————————02CMDB将服务器基本信息提交…
浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Government Commerce)负责管理,主要适用于IT服务管理(ITSM).ITIL为企业的IT服务管理实践提供了一个客观.严谨.可量化的标…
Python CMDB开发   运维自动化路线: cmdb的开发需要包含三部分功能: 采集硬件数据 API 页面管理 执行流程:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示. 采集硬件信息 采集硬件信息可以有两种方式实现: 利用puppet中的report功能 自己写agent,定时执行 两种方式的优缺点各异:方式一,优点是不需要在每台服务器上步一个agent,缺点是依赖于puppet,并且使用ruby开…
CMDB成功的关键因素 对于CMDB项目的失败,普遍的解释是:没有数据的消费场景.工具和技术不行.流程管控不足. 从我自身的实践来看,我对此是有不同看法的.上述原因的确会影响人们使用CMDB,严重时甚至会造成项目失败,但这不能解释普遍性的失败.其实每一个IT组织内部,不管是专业技术团队还是流程和技术管理部门,都有自建的配置库(如,主机配置库.网络配置库.机房配置库--后面简称"自建库"). 如果没有数据消费场景,哪来这么多自建库?同时,这些自建库的技术并不先进,甚至很粗糙,也没有管控流…
一.传统运维方式和自动化运维的区别 二.CMDB的介绍 三.CMDB的四种方式 四.项目的目录架构介绍以及配置文件的升级编写 五.比较low的项目架构书写 六.可插拔式收集资产 七.对收集的服务器信息进行清洗 八.整个项目的总结 九.收集资产遇到的唯一标识的大坑 十.开启线程池并发采集 十一.后台目录结构设计 十二.API请求认证 十三.后台数据表结构设计 十四.后台数据表生成 十五.资产清洗入库 十六.硬盘数据入库 十七.AES加密数据 十八.将数据展示前端 十九.bootstraptable…
CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性. 在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系. 70%-80%的IT相关问题与环境的变更有着直接的关系.实施变更管理的难点和重点并…
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…
背景: 在现网环境中服务器多了每天服务器的配置 情况我们很难记住,当某台服务器硬件配置变化后可以第一时间了解,某台服务器出现问题时可以快速定位机架位置,之前都是excel文档,要查某项数据时极不方便.历时半个多月终于鼓捣出了一个简易的CMDB资产管理系统,很多功能都还没有写,例如邮件报警等功能,以后用到了再写吧----------------------------------- 架构: 采用C/S架构,客户端收集资产数据后上传给服务器,服务器收到数据后入库,客户端有两种工作模式:SSH模式和A…
最近正好在给公司做CMDB资产管理系统,现在做的也差不多了,现在回头吧思路整理下. CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性. 在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系.…
运维自动化路线: cmdb的开发需要包含三部分功能: ·采集硬件数据  ·API ·页面管理 执行流程:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示. 采集硬件信息 采集硬件信息可以有两种方式实现: 1.利用puppet中的report功能 2.自己写agent,定时执行 两种方式的优缺点各异: 方式一 优点是不需要在每台服务器上步一个agent 缺点是依赖于puppet,并且使用ruby开发 方式二 优…
CMDB是运维自动化的基础,它为日志系统,发布系统,监控系统等运维系统(ELK,zabbix,open-falcon)提供接口函数, 第一种方式:Agent方法实现,agent不能直接访问数据库,因为agent端有可能被入侵,入侵之后,黑客可以获取数据库权限,造成删库等损失,所以得用url方式 ####server from django.shortcuts import render,HttpResponse # Create your views here. def asset(reques…
每次读到配置管理相关的书籍时,我总在想:“这些定义很精准,流程也很完整,但这不是真正的难题.”对于一个配置管理者来说,真正的难题不是绘制“庞大而精美”的数据模型,不是设计“全天候.无死角”的管控流程,而是如何促进数据的消费,并在消费过程中持续的改善数据质量. 我在华为从事了七年配置管理工作,见证了CMDB从一个半死不活的边缘系统逐渐成为运维的核心. 离开华为后,我有机会看到很多CMDB项目,才发现原来像华为这样将CMDB真正当成运维中重要一环的并不多.大部分CMDB项目,不是以失败告终,就是在失…
CMDB https://lupython.gitee.io/2018/05/05/CMDB%E4%BB%8B%E7%BB%8D/ 尚泽凯博客地址 传统运维与自动化运维的区别 传统运维: ​ 1.项目 上线: ​ a.产品经理前期调研(需求分析) ​ b.和开发进行评审 ​ c.开发进行开发 ​ d.测试进行测试 ​ e.交给运维人员进行上线 上线: ​ 直接将代给运维人员,让业务运维人员把代码放到服务器上 痛点: ​ 曾加运维人员的成本 改进: ​ 搞一个自动分发代码 的系统 ​ 必须的条件:…
01-CMDB项目介绍 02-CMDB开发背景 03-CMDB开发目的 04-CMDB资产采集方式之agent 05-CMDB资产采集方式之ssh 06-CMDB资产采集方式之saltstack 07-CMDB资产采集方式之puppet 08-CMDB资产采集方式比较 09-CMDB采集内容梳理 10-CMDB资产采集功能之agent 11-CMDB资产采集之实现之ssh 12-CMDB资产采集功能实现之saltstack(一) 13-CMDB资产采集功能实现之saltstack(二) 14-C…
运维自动化最重要的就是标准化一切 自动化运维则支持以下功能: 1.OS的选择统一化,同一个项目使用同样的OS系统部署其所需要的各类软件.2.软件安装标准化,例如JAVA虚拟机,php,nginx,mysql等各类应用需要的软件版本,安装目录,数据存放目录,日志存放目录等.3.应用包目录统一标准化,及应用命名标准化4.启动脚本统一目录和名字,需要变化的部分通过参数传递5.配置文件标准化,需要变化的部分通过参数传递6.日志输出,日志目录,日志名字标准化7.应用生成的数据要实现统一的目录存放8.主机/…
当CMDB运行在内网的时候,经过API验证的三关是没有问题的,但是如果运行在外网,有一个问题是,黑客截取后的访问速度比客户端快的时候还会造成数据泄露.为了解决这个问题,就要对数据进行加密 RSA加密 RSA是一种非对称加密,但是对加密的字符串的长度需要设置.但是字符串的长度是不固定的,而且这种方式的加密,加密的字符串越长,加密的时间越长. pip install rsa rsa.newkeys(256) 256代表加密的位数 256/8=32 就是32个字节,但是源码中32-11=21 也就是最…
CMDB API验证 为什么做API验证 API验证是防止数据在传输的过程中,保证数据不被篡改 如何设计的API验证 灵感来源于Torando中加密Cookie的源码,主要是生成加密的随机字符串. MD5(key+time)|time 就是把秘钥和客户端的当前时间通过MD5进行加密,同时把当前时间发送到API 然后自己在服务端设计了三关验证的设计: 时间, 算法规则,验证密文 已访问的记录 想API获取数据的时候,需要进行验证是否是合法的请求,为了达到这一目的,采用的基础方案是在装机的时候在服务…
CMDB资产采集方案 CMDB 资产采集的方案总共有四种 Agent SSH类 Saltstack Puttet 方案设计,从性能上考虑 下面前三种是用Python开发的,目标是兼容三种采集方式的软件 原理要明白 如何实现自动采集? subprocess Linux基本命令 v = subprocess.getoutput('ls') 1 Agent方式 API:Django接收数据并入库 程序:放置在每台服务器 应用场景:机器多的时候 每台服务器都有程序,程序实现采集数据(执行subproce…
生产力跟不上生产的速度时,就会出现很多问题,如何针对问题进行处理,制定什么样的计划,如何解决就是需要思考的难点? T运维的分类 IT运维,指的是对已经搭建好的网络,软件,硬件进行维护.运维领域也是细分的,有硬件运维和软件运维 硬件运维主要包括对基础设施的运维,比如机房的设备,主机的硬盘,内存这些物理设备的维护 软件运维主要包括系统运维和应用运维,系统运维主要包括对OS,数据库,中间件的监控和维护,这些系统介于设备和应用之间,应用运维主要是对线上业务系统的运维 这里讨论的主要是软件运维的自动化,包…
浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Government Commerce)负责管理,主要适用于IT服务管理(ITSM).ITIL为企业的IT服务管理实践提供了一个客观.严谨.可量化的标…
一.资产采集四种方式 1. Agent方式 API:Django接收数据并入库 程序:放置在每台服务器 应用场景:针对服务器较多的公司 步骤一: #执行本地命令的库 import subprocess sub = subprocess.getoutput("要执行的命令名") 每台机器通过用户名密码链接数据库,获取要执行的命令 步骤二: 采集数据 import subprocess # 采集到本机运行ipconfig命令的输出结果 result = subprocess.getoutp…
CMDB(资产管理数据库) CMDB是所有运维工具的数据基础 CMDB包含的内容 用户管理,记录测试,开发,运维人员的用户表 业务线管理,需要记录业务的详情 项目管理,指定此项目用属于哪条业务线,以及项目详情 应用管理,指定此应用的开发人员,属于哪个项目,和代码地址,部署目录,部署集群,依赖的应用,软件等信息 主机管理,包括云主机,物理机,主机属于哪个集群,运行着哪些软件,主机管理员,连接哪些网络设备,云主机的资源池,存储等相关信息 主机变更管理,主机的一些信息变更,例如管理员,所属集群等信息更…