我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CMDB管理系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CMDB管理系统

说明

CMDB管理系统,基于Ansible最新版开发,采用前后端分离架构


项目主要结构

./
├── ansible_client  # ansible_client客户端
│   └── monitor
│       ├── cpu.py  # 监控cpu
│       └── memory.py  # 监控内存
├── api  # api部分
│   ├── api_urls.py  # api相关的url
│   ├── serializers  # 序列化相关
│   │   ├── ansible.py  # ansible
│   │   ├── disk.py  # 磁盘
│   │   ├── hostinfo.py  # 主机详细信息
│   │   ├── host.py  # 主机信息
│   │   └── network.py  # 网络信息
│   ├── utils
│   │   ├── ansible  # ansible相关
│   │   │   ├── check_ip.py  # 检测ip可用性
│   │   │   ├── exec_ansible.py  # ansible的API,用来执行ansible命令
│   │   │   ├── extract_setup.py  # 检测硬件信息
│   │   │   ├── hosts_fm.py  # ansible的hosts文件写入
│   │   │   ├── login_host.py  # 远程登录主机
│   │   │   └── remotExect.sh  # 输入密码
│   │   ├── auth.py  # 认证
│   │   ├── response.py  # 统一code返回值
│   │   └── serialization_general.py  # 标准序列化返回值
│   └── views
│       ├── ansible.py  # ansible相关
│       ├── disk.py  # 磁盘相关
│       ├── hostinfo.py  # 主机详情
│       ├── host.py  # 主机
│       ├── monit  # 监控相关
│       │   ├── cpu.py
│       │   └── memory.py
│       └── network.py  # 网卡相关
├── AutoCmdb
│   ├── settings.py  # 项目配置文件
│   ├── urls.py  # 总入口
├── cron
│   └── test_orm.py  # 测试脚本
├── db.sqlite3  # 数据库
├── manage.py  # 启动文件
├── README.md
├── repository
│   └── models.py  # 数据库文件
└── web  # 前端展示部分
    ├── static  # 静态目录
    │   ├── css
    │   ├── img
    │   ├── js
    │   └── plugins
    │       ├── bootstrap-3.3.7  # bootstrap
    │       ├── font-awesome-4.7.0  # 图标库插件
    │       ├── Highcharts-6.1.2  # 图表插件
    │       └── sweetalert  # 弹框插件
    ├── templates  # 模板相关
    │   ├── ansible_add_host.html  # 添加ansible主机
    │   ├── ansible_add.html  # 添加ansible组
    │   ├── ansible_list.html  # ansible列表
    │   ├── base.html  # 母版
    │   ├── default.html  # 默认首页的右侧部分
    │   ├── host_info.html  # 主机详情
    │   ├── host_list.html  # 主机列表
    │   ├── index.html  # 首页主体部分,包含左侧边栏和头部
    │   └── monitor  # 监控图表相关
    │       ├── cpu.html
    │       └── memory.html
    ├── views
    │   ├── ansible.py  # ansible相关
    │   ├── host.py  # 主机相关
    │   └── index.py
    └── web_urls.py  # web页面相关路由


运行环境


ProjectversionDescription
python3.6.5
django1.11.15必须此版本
djangorestframework3.8.2
ansible2.7.0不能低于此版本


功能说明

以下功能,都是用python来完成的
1.  使用django rest framework开发api
2.  优雅获取本机IP
3.  判断ip地址是否有效
4.  判断ssh端口是否开放
5.  自动使用yum安装软件
6.  自动完成ssh免密码登录
7.  根据数据库记录的变化,自动写入文件/etc/ansible/hosts
8.  使用ansible 2.x API收集客户端硬件信息
9.  根据返回的硬件信息,使用事务写入数据库中
10. 使用psutil模块获取cpu和内存使用情况,并发送给后端API,统一入库.
11. 使用Highcharts插件来展示监控图表,比如: cpu和内存.


效果

首页:

首页.png



ansible管理:

ansible管理.png


ansible主机:

ansible主机.png


主机详情:

主机详情.png



运行方式

ansible主控端


首先需要编译安装python3,请参考链接:
http://www.py3study.com/Article/details/id/320.html
做到添加豆瓣源为止,请务必按照本教程操作,否则会出现没有pip3的问题!!!

安装2个系统软件
yum install -y ansible expect


安装python相关模块
pip3 install django==1.11.15
pip3 install djangorestframework
pip3 install ansible
或者使用requirements.txt文件安装相关模块
pip3 install -r requirements.txt

最后切换到项目目录,使用以下命令运行
python3 manage.py runserver 0.0.0.0:8000


ansible被控端


编译安装python3,参考上面的操作!
注意:被控端不需要安装ansible!!!

安装python相关模块
pip3 install requests psutil

将项目中的ansible_client拷贝到opt目录中
注意:务必修改cpu.py和memory.py中的ip地址

设置linux任务计划:

# 监控cpu和内存
* * * * * python3 /opt/ansible_client/monitor/cpu.py
* * * * * python3 /opt/ansible_client/monitor/memory.py


网页操作


请务必安装以下操作进行:
访问页面: http://ip地址/web/  
注意:必须使用谷歌浏览器访问,360浏览器可能某些数据无法加载!

1. 进入首页,点击左侧ansible管理。必须先添加组
2. 添加组之后,再点击添加主机
3. 最后点击左侧ansible主机,就可以查看主机详情和监控图表了


备注

本项目只是一个demo,请勿直接用于生产环境!


github地址:

https://github.com/py3study/AutoCmdb



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CMDB管理系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

CMDB管理系统

说明CMDB管理系统,基于Ansible最新版开发,采用前后端分离架构项目主要结构./├──ansible_client#ansible_client客户端│└──monitor│├──cpu.py#监控cpu│└──memory.py#监
2023-01-30

python写一个cmdb管理系统

在人生苦短,我用Python的号召下,自己也学习了python这门语言,也自己写了一个简单cmdb系统,简单说一下这个系统,功能就是资产的增删改查,excel导出、多文件上传、基于密码的终端登录,资产信息自动更新,用户管理,批量命令执行,历
2023-01-31

开发CMDB系统

背景:  在现网环境中服务器多了每天服务器的配置 情况我们很难记住,当某台服务器硬件配置变化后可以第一时间了解,某台服务器出现问题时可以快速定位机架位置,之前都是excel文档,要查某项数据时极不方便。历时半个多月终于鼓捣出了一个简易的CM
2023-01-30

Python系统管理

在Linux操作系统上编写shell脚本时, 主要涉及到执行系统命令, 目录和文件操作. 那么在python中怎么办呢, 这主要是几个模块的使用: os, os.path, shutil和sys...os模块包含了大部分的Linux命令,
2023-01-31

系统财务管理系统的

系统财务管理系统的简介系统财务管理系统是一种用于管理企业财务的软件工具,可以帮助企业实现财务信息的集中管理和控制,提高财务管理效率和准确性。该系统通常包括财务管理模块、会计核算模块、财务报表模块等子系统,可以满足企业的不同财务管理需求。系统财务管理系统的详细说明1.财务管理模块财务管理模块是系统财务管理系统的主体部分,
系统财务管理系统的
2024-01-22

客户管理销售管理系统

简介客户管理销售管理系统是一种用于管理和跟踪销售过程的软件工具。它可以帮助企业更好地了解客户需求,提高销售效率,增加销售额,并提供更好的客户服务。详细说明1.客户管理客户管理是客户管理销售管理系统的核心功能之一。它可以帮助企业更好地了解客户需求,提高销售效率。通过客户管理,企业可以收集客户信息,包括姓名、联系方式、购买
客户管理销售管理系统
2024-01-30

客户管理系统系统厂商

简介客户管理系统是企业运营中非常重要的一部分,它可以帮助企业更好地管理客户信息、提高客户满意度和忠诚度。而选择一家优质的客户管理系统系统厂商则是实现这些目标的关键。本文将介绍一些知名的客户管理系统系统厂商,并分析它们的特点和优势。1.SalesforceSalesforce是一家全球领先的客户关系管理(CRM)软件公司
客户管理系统系统厂商
2023-12-28

薪酬 管理系统

在现代企业管理中,薪酬管理是至关重要的一个环节。薪酬管理系统是一种通过计算机软件来实现薪酬管理的技术,它能够帮助企业更加有效地管理薪酬,提高员工的工作效率和满意度,同时也能够帮助企业在人力资源管理方面做出科学决策。一、薪酬管理系统的功能薪酬管理系统主要包含以下几个功能:员工薪酬计算:薪酬管理系统能够根据企业的薪酬政策,
薪酬 管理系统
2024-01-25

客户化管理系统

客户化管理系统标题客户化管理系统:打造企业专属的管理平台简介在信息化时代,企业对管理系统的个性化需求越来越强。通过客户化管理系统,企业可以实现定制化、个性化管理,提升管理效率和效果。本文将详细介绍客户化管理系统的功能特点,帮助企业更好地理解并使用这一工具。详细说明定制化设计:客户化管理系统能够针对企业的需求进行个性化设
客户化管理系统
2024-01-26

php工资管理系统

简介PHP工资管理系统是一种基于PHP技术开发的用于管理企业工资信息的系统。它可以帮助企业实现工资的自动计算、发放和统计,提高工作效率和准确性。本文将介绍PHP工资管理系统的功能特点以及其实现原理。功能特点1.工资计算功能PHP工资管理系统可以根据企业的薪资政策和员工的基本信息,自动计算出每个员工的工资。它可以处理多种
php工资管理系统
2024-01-16

钉钉erp管理系统

一、钉钉erp管理系统的优势1.高效的信息化管理钉钉erp管理系统具有高效的信息化管理功能,它可以实现企业内部各个部门之间的协同工作,有效地管理企业的信息流、物流和资金流。同时,它还支持多种信息格式的存储和传输,能够快速地对信息进行处理和反馈。2.便捷的操作方式钉钉erp管理系统采用了简单易用的操作方式,用户可以在一个
钉钉erp管理系统
2023-10-28

Python的系统管理_10_pytho

01类和对象:面向过程和面向对象的编程:面向过程的编程:函数式编程,C程序等。面向对象的编程:C++,Java,Pyton 等类和对象:是面向对象中的两个重要概念类:是对事物的抽象,比如:汽车模型对象:是类的一个实例,比如:QQ轿车,大客车
2023-01-31

crm系统用户管理

标题CRM系统用户管理的重要性与最佳实践简介本文将探讨CRM系统中用户管理的重要性,以及如何通过有效的用户管理策略来提高系统的效益和用户体验。我们将深入讨论用户分类、权限管理、角色分配等关键问题,并提供一些最佳实践和实用建议。用户管理的重要性CRM系统用户管理的重要性主要体现在以下几个方面:提高效率:通过对用户进行细致
crm系统用户管理
2024-01-25

Python的系统管理_03_pytho

收录下流程控制语句方便查看和使用:if 语法 if <表达式>:if expression :else:Statement(s)statement(s)如果在条件表达是成立执行IF下语句,不成立执行ELSE下语句。嵌套方式:If... ..
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录