CMDB资产采集方式

一:Agent方式

原理:在每台服务器装上agent客户端程序,定时向数据库发送指定的资产信息。

优点:速度快。

缺点:服务器上需要多装一个软件

 1 import subprocess
 2 import requests
 3 # pip3 install requests
 4
 5 # ################## 采集数据 ##################
 6 # result = subprocess.getoutput(‘ipconfig‘)
 7 # result正则处理获取想要数据
 8
 9 # 整理资产信息
10 # data_dict ={
11 #     ‘nic‘: {},
12 #     ‘disk‘:{},
13 #     ‘mem‘:{}
14 # }
15
16 # ##################  发送数据 ##################
17 # requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)

agent实现方式

二:SSH方式

原理:中间组件主动向服务器获取资产信息,然后由中间件向数据库添加数据(通过api)

优点:服务器端不用安装客户端版软件

缺点:慢

 1 # 基于paramiko模块, pip3 install paramiko
 2 import requests
 3 import paramiko
 4
 5 # ################## 获取今日未采集主机名 ##################
 6 #result = requests.get(‘http://www.127.0.0.1:8000/assets.html‘)
 7 # result = [‘c1.com‘,‘c2.com‘]
 8
 9
10 # ################## 通过paramiko连接远程服务器,执行命令 ##################
11 # 创建SSH对象
12 ssh = paramiko.SSHClient()
13 # 允许连接不在know_hosts文件中的主机
14 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
15 # 连接服务器
16 ssh.connect(hostname=‘192.168.14.36‘, port=22, username=‘wupeiqi‘, password=‘123‘)
17
18 # 执行命令
19 # stdin, stdout, stderr = ssh.exec_command(‘df‘)
20
21 # 获取命令结果
22 # result = stdout.read()
23
24 # 关闭连接
25 # ssh.close()
26 # print(result)
27
28 # data_dict = {result}
29
30 # ##################  发送数据 ##################
31 # requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)

SSH采集方式

三:Saltstack方式

原理:和第二种类似,只不过基于第三方软件,中间件向队列中放请求,客户端向队列中不停接收请求,一旦接收到请求,服务器解析后发现需要自己返回资产信息,就执行命令并将返回结果放入另一个队列,中间件从结果队列中取数据,然后通过API存入数据库

优点:速度快,开发成本低

缺点:依赖第三方软件

 1 # 1. 安装saltstack
 2 #       rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
 3 #
 4 #
 5 """
 6         Master: yum install salt-master
 7        Master准备:
 8             a. 配置文件,监听本机IP
 9                 vim /etc/salt/master
10                 interface: 本机IP地址
11             b. 启动master
12                 /etc/init.d/salt-master start
13
14
15         Slave:  yum install salt-minion
16         Slave准备:
17             a. 配置文件,连接那个master
18                 vim /etc/salt/minion
19                 master: 远程master地址
20             b. 启动slave
21                 /etc/init.d/salt-minion start
22
23 2. 创建关系
24     查看
25     Master:salt-key -L
26         Accepted Keys:
27         Denied Keys:
28         Unaccepted Keys:
29             c1.com
30             c2.com
31             c3.com
32         Rejected Keys:
33     接受
34     Master:salt-key -a c1.com
35         Accepted Keys:
36             c1.com
37             c2.com
38         Denied Keys:
39         Unaccepted Keys:
40             c3.com
41         Rejected Keys:
42
43
44 3. 执行命令
45     master:
46         salt ‘c1.com‘ cmd.run  ‘ifconfig‘
47
48     import salt.client
49     local = salt.client.LocalClient()
50     result = local.cmd(‘c2.salt.com‘, ‘cmd.run‘, [‘ifconfig‘])
51
52 """
53 # ################## 获取今日未采集主机名 ##################
54 #result = requests.get(‘http://www.127.0.0.1:8000/assets.html‘)
55 # result = [‘c1.com‘,‘c2.com‘]
56
57
58 # ################## 远程服务器执行命令 ##################
59 # import subprocess
60 # result = subprocess.getoutput("salt ‘c1.com‘ cmd.run  ‘ifconfig‘")
61 #
62 # import salt.client
63 # local = salt.client.LocalClient()
64 # result = local.cmd(‘c2.salt.com‘, ‘cmd.run‘, [‘ifconfig‘])
65
66
67 # ##################  发送数据 ##################
68 # requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)

Saltstack

四:puppet

原理:服务器端主动向中间件发送数据,中间件将数据通过API存入数据库。

优点:自动向中间件服务器提供数据

缺点:中间件puppet使用ruby开发

原文地址:https://www.cnblogs.com/sun-10387834/p/12585349.html

时间: 2024-11-06 11:19:29

CMDB资产采集方式的相关文章

CMDB资产采集方式之agent

CMDB是运维自动化基础 CMDB介绍:www.cnblogs.com/wupeiqi/articles/6192986.html 原文地址:https://www.cnblogs.com/jintian/p/11267265.html

CMDB资产采集方式之puppet

原文地址:https://www.cnblogs.com/jintian/p/11267279.html

CMDB资产采集方式之ssh

原文地址:https://www.cnblogs.com/jintian/p/11267268.html

CMDB资产采集方式之saltstack

原文地址:https://www.cnblogs.com/jintian/p/11267270.html

CMDB资产采集的四种方式

资产采集的概念 资产采集的四种方式:Agent.SSH.saltstack.puppet 资产采集 Configuration Management Database 简称CMDB,CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转.发挥配置信息的价值,同时依赖于相关流程保证数据的准确性.CMDB可以实现高度的自动化,减少人为错误的发生.降低人员成本,CMDB是实现运维自动化的基础. Agent方式 程序:放置在每台服务器 应用场景:

CMDB 资产采集——插件可插拔式、可拓展思想

功能描述 每个资产采集的插件都是一个独立的py脚本统一放在一个目录下,所有插件的路径统一配置在settings.py 配置文件中,以字典形式配置.通过for 循环字典中插件逐个执行插件采集数据.增加新的插件时编写脚本放入,在配置文件中增加响应路径配置,当有些数据不需要采集时注释掉settings.py中配置即可.此为可插拔.可拓展方式. config/settings.py 配置文件中插件注册配置 PLUGIN_DICT = { 'disk':'src.plugins.disk.Disk', #

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

CMDB资产采集功能实现之saltstack

原文地址:https://www.cnblogs.com/jintian/p/11267302.html

CMDB资产采集插件开发

self是谁的对象,就优先在谁的类找方法 原文地址:https://www.cnblogs.com/jintian/p/11267315.html