CMDB资产采集方式

CMDB 资产采集的方案总共有四种

Agent (python)
SSH类paramiko模块 (python)
Saltstack (python)
Puttet(ruby)

前三种是用Python开发的,目标是兼容三种采集方式的软件

实现自动采集的基本原理都是在Linux里输入命令返回结果
import subprocess
value = subprocess.getoutput('ls -lhrt')
把获得的结果用request发送给API接口入库然后展示在前端

  

Agent方式(应用场景:机器多的时候

agent程序放在每台服务器

agent程序放在每台服务器,这是采集本机的数据,速度快,采集完后发送到API
subprocess.getoutput('ifconfig')

简单的agent脚本:

import subprocess
import requests

v1 = subprocess.getoutput('ipconfig')  # 查看的是本机IP
v2 = subprocess.getoutput('dir')  # 查看本机

url = 'http://127.0.0.1:8000/asset.html'
response = requests.post(url, data={'k1': v1, 'k2': v2})  
# 使用request模块进行post进行访问
print(response.text)

  

数据接口API:

from django.shortcuts import render,HttpResponse

def asset(request):
    if request.method == "POST":
        print(request.POST)  # 打印接收的内容
        return HttpResponse("1001")  # 返回值
    else:
        return HttpResponse("用post访问")

  

SSH类

场景:paramiko(机器少)

  • API:Django接收数据并入库

  • 程序:放在中控机,中控机远程连接机器,这里借助paramiko

或者

  • Paramiko,中控机放一份远程连接服务器,执行命令,获取结果

  • 将结果发送API

中控机远程连接服务器,执行,结果发送到api

中控机连接中的程序

    • 注意端口和密码
    • 接收到的数据是字节,需要decode
import paramiko
import requests

# 创建SSH对象
ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器
ssh.connect(hostname='192.168.11.126', port=8888, username='root', password='密码')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls')
# 获取命令输出结果
result = stdout.read()

# 关闭连接
ssh.close()

print(result.decode())  # 把字节数据转换

发送给API
url = 'http://127.0.0.1:8000/asset.html'
response = requests.post(url, data={'k1': result})  # 使用request模块进行post进行访问
print(response.text)

  

Saltstack

场景:机器多的时候,很多公司目前都在用

salt-master 的interface设置成主机的IP,salt-minionshe

 

1.安装:

参考: http://repo.saltstack.com/#rhel

Master

1. 安装salt-master
    yum install salt-master
2. 修改配置文件:/etc/salt/master
    interface: 0.0.0.0    # 表示Master的IP 
3. 启动
    service salt-master start

Minion

1. 安装salt-minion
    yum install salt-minion

2. 修改配置文件 /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 start

  

注意:

在修改配置文件的时候,interface master 冒号后面要有空格

查看启动状态:

systemctl status salt-master

systemctl status salt-minion

配置:

配置主要是/etc/salt/master 和 /etc/salt/minion

minion要指定指定的IP是主的IP

 

2.授权:

salt-key -L                    # 查看已授权和未授权的slave
salt-key -A     全部授权   
salt-key -a  salve_id      # 接受指定id的salve
salt-key -r  salve_id      # 拒绝指定id的salve
salt-key -d  salve_id      # 删除指定id的salve

  

遇到错误:Minion did not return [No response]

解决:rm -rf pki/minion/minion_master.pub

重启服务:systemctl restart salt-minion

参考:

http://www.cnblogs.com/phennry/p/5419451.html

centos 修改主机名

vim /etc/hostname 
通过nmtui修改,之后重启hostnamed
systemctl restart systemd-hostnamed

 

3. 执行命令

在master服务器上对salve进行远程操作

 

salt 'c2.salt.com' cmd.run  'ifconfig'


import salt.client
local = salt.client.LocalClient()
result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])

salt '*' cmd.run 'ls'

salt原理:
RPC
默认维护了消息队列:

send:master -->消息队列-->minion1/minion2

receive:minion1/minion2-->临时队列-->master

puppet(ruby)

slive 每30分钟自动执行,然后发送到master

应用场景:很多公司在使用,

参考:http://www.cnblogs.com/wupeiqi/articles/6415436.html

 

 

 

转载于:https://www.cnblogs.com/adamans/articles/7800412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python-CMDB资产管理系统项目是基于Python编程语言开发的一种用于管理企业资产的信息系统。CMDB(Configuration Management Database)是一种用于记录和管理组织内所有硬件和软件资源的数据库。该项目的目标是通过实现一个功能强大且易于使用的资产管理系统,帮助企业更好地管理和维护其资产库。 该系统具备以下特点和功能: 1. 资产信息管理:可以录入和管理所有的企业资产信息,包括硬件设备、软件和网络设备等。用户可以根据自己的需求添加、修改和删除资产信息,并可以对资产进行分类和标记,便于查找和管理。 2. 资产追踪和监控:系统可以实时追踪和监控所有资产的状态和位置,帮助用户快速定位和管理资产。例如,用户可以查询特定设备的位置、使用状况和维护历史等信息。 3. 资产维护计划:系统可以为每个资产设置维护计划,包括定期检查、保养和维修等。用户可以根据资产的使用情况和维护需求制定和调整维护计划,以确保资产的正常运行。 4. 报表和统计分析:系统可以生成各种报表和统计分析图表,帮助用户了解和掌握资产的整体情况和趋势。用户可以根据报表和图表的结果做出决策和调整管理策略。 5. 安全和权限管理:系统支持用户权限管理,可以设置不同用户的访问权限,保护重要数据和操作不受未经授权的访问。 Python-CMDB资产管理系统项目使用Python语言开发,具有开源、跨平台和易于扩展等优势。同时,Python拥有丰富强大的库和框架,可以快速开发和调试系统。通过该项目,企业可以有效地管理和维护其资产,提高工作效率和资产利用率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值