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[20:30] #采集到一套资产 v2=subprocess.getoutput('dir') #采集到另外一条命令
# print(v2)
value2=v2[0:5] #连接到数据库,写入到数据库 数据往url上面发送
url="http://127.0.0.1:8000/asset.html"
import requests response=requests.post(url,data={'k1':value1,'k2':value2}) #数据发送到指定url上 发送完数据有返回值,收到url给返回的信息
print(response.text)
服务端 API:
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^asset.html$',views.asset),
] from django.shortcuts import render,HttpResponse # Create your views here. def asset(request): #接收用户发来的消息
if request.method == "POST":
print(request.POST)
#并写入数据库
return HttpResponse('1002')
else:
return HttpResponse('1001')
#
Paramiko(ssh方式)
通过远程执行一条命令 导入paramiko模块
每个服务器都需要安装SSH远程
流程:中控机去服务器采集信息,采集完的信息返回给中控机 然后中控机把信息又返回给api,api收到消息并返回给中控机
采集的资产信息放在中控机(paramiko模块)v=subprocess.getoutget('ipconfig') 拿到的是中控机的采集信息
中控机在把信息返回给api,api在进行入库
优点:无Agent 缺点:网络慢
应用场景:服务器较少的公司
############## Paramiko ,中控机放一份 #############
"""
- 远程连接服务器,执行命令,获取结果
- 将结果发送API
"""
import paramiko
#创建SSH对象
ssh=paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname='192.168.24.129',port=22,username='root',password='') #执行命令
stdin,stdout,stderr = ssh.exec_command('ls') #表示是要去连接,连接上执行命令 #获取命令结果
result = stdout.read() #关闭连接
ssh.close() #并拿到结果
value=result[0:10]
print(value)
import requests url = "http://127.0.0.1:8000/asset.html"
response=requests.post(url,data={'k1':value,'k2':'v2'})
print(response.text)
ssh远程连接
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^asset.html$',views.asset),
] from django.shortcuts import render,HttpResponse # Create your views here. def asset(request): #接收用户发来的消息
if request.method == "POST":
print(request.POST)
#并写入数据库
return HttpResponse('')
else:
return HttpResponse('')
#
API
SaltStack
1. 安装和配置
"""
1. 安装salt-master
yum install salt-master
2. 修改配置文件:vim /etc/salt/master
interface: 0.0.0.0 # 表示Master的IP 本地ip
3. 启动
service salt-master restart (切记 一定关防火墙 systemctl stop firewalld)
"""
master
"""
1. 安装salt-minion
yum install salt-minion 2. 修改配置文件 vim /etc/salt/minion
master: 10.211.55.4 # master的地址
或
master:
- 10.211.55.4
- 10.211.55.5
random_master: True id: c2.salt.com # 客户端在salt-master中显示的唯一ID
3. 启动
service salt-minion restart 切记 一定关防火墙 systemctl stop firewalld) """
minion
2. 授权
在master里面输入
salt -key -L 查看已授权和未授权
salt -key -A 手动授权
salt-key -r salve_id # 拒绝指定id的salve
salt-key -d salve_id # 删除指定id的salve
master
3. 执行命令
在master服务器上对salve进行远程操作
salt 'c2.salt.com' cmd.run 'ifconfig'
salt ‘*’ cmd.fun 'ls'
基于shell命令
import salt.client
local = salt.client.LocalClient()
result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
基于Salt的API
CMDB资产采集的更多相关文章
- CMDB资产采集方案
CMDB资产采集方案 CMDB 资产采集的方案总共有四种 Agent SSH类 Saltstack Puttet 方案设计,从性能上考虑 下面前三种是用Python开发的,目标是兼容三种采集方式的软件 ...
- CMDB资产采集笔记
一.资产采集四种方式 1. Agent方式 API:Django接收数据并入库 程序:放置在每台服务器 应用场景:针对服务器较多的公司 步骤一: #执行本地命令的库 import subprocess ...
- CMDB资产采集的四种方式
转 https://www.cnblogs.com/guotianbao/p/7703921.html 资产采集的概念 资产采集的四种方式:Agent.SSH.saltstack.puppet 资产采 ...
- CMDB资产采集方式
一:Agent方式 原理:在每台服务器装上agent客户端程序,定时向数据库发送指定的资产信息. 优点:速度快. 缺点:服务器上需要多装一个软件 import subprocess import re ...
- CMDB02/ 单例模式、资产采集参考命令、日志处理
CMDB02/单例模式.资产采集参考命令.日志处理 目录 CMDB02/单例模式.资产采集参考命令.日志处理 1. 单例模式 1.1 多例模式 1.2 单例模式 1.2.1 单例模式/错误 1.2.2 ...
- CMDB服务器管理系统【s5day91】:资产采集相关问题
资产采集唯一标识和允许临时修改主机名 class AgentClient(BaseClient): def exec(self): obj = PluginManager() server_dict ...
- CMDB学习之八,完成所有资产采集信息的收集
#!/usr/bin/env python # -*- coding:utf-8 -*- import traceback from .base import BasePlugin from lib. ...
- Python之CMDB资产管理系统
最近正好在给公司做CMDB资产管理系统,现在做的也差不多了,现在回头吧思路整理下. CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, C ...
- CMDB03 /今日未采集的资产、资产入库、资产变更记录、资产采集
CMDB03 /今日未采集的资产.资产入库.资产变更记录.资产采集 目录 CMDB03 /今日未采集的资产.资产入库.资产变更记录.资产采集 1. 获取今日未采集的服务器 2. server资产入库以 ...
随机推荐
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- Spring shiro 初次使用小结
首先引入一段关于shiro的介绍: 开发系统中,少不了权限,目前java里的权限框架有SpringSecurity和Shiro(以前叫做jsecurity),对于SpringSecurity:功能太过 ...
- 关于IM的一些思考与实践
上一篇简单的实现了一个聊天网页,但这个太简单,消息全广播,没有用户认证和已读未读处理,主要的意义是走通了websocket-sharp做服务端的可能性.那么一个完整的IM还需要实现哪些部分? 一.发消 ...
- 列表生成式、生成器&迭代器
一.列表生成式 先有列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,怎么实现? 方法一: a = [0, 1, 2, 3, 4, 5, 6, 7, 8, ...
- 集合详解(python)
集合概念 集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合. 集合中的元素三个特征: 确定性(元素必须可hash) 互异性(去重)--将一个列表变为集合,就自动去重了 无序性(集合中的元 ...
- 用session做权限控制
一个需要用户进行登录的网站,基本上都会设置用户权限,对不同的用户进行权限控制.例如:一个网站肯定会有一个管理员管理着普通的用户,普通的用户不可能对其他用户有着类似于增删改查等操作,这样网站都乱了--, ...
- [JLOI2014] 松鼠的新家
Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在"树&q ...
- C语言描述队列的实现及操作(链表实现)
// 队列的单链表实现 // 头节点:哨兵作用,不存放数据,用来初始化队列时使队头队尾指向的地方 // 首节点:头节点后第一个节点,存放数据 #include<stdio.h> #incl ...
- C# MVC NPOI导出
前台: <form id="fmexp" method="post" target="_blank"> </form> ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...