传统运维和自动化运维的对比

1.企业中,项目的发布流程

产品经理调研需求 —-》三方开会讨论(开发,产品,运维,测试) —–> 开发进行开发产品

—-> 测试流程 (黑盒和白盒测试) —–> 上线

传统的上线流程:

SVN 开发将代码压缩一下发给运维,运维拿到代码之后,然后将代码解压缩,部署到服务

器上,启动服务

好处:流程比较简单

坏处: 服务器多的话,部署就非常的慢,影响上线的进度

自动化运维的流程

搞一个 web 的系统,勾选发布的机器,上传代码, 进行发布

2.监控系统

需要监控服务器的 CPU 使用率,磁盘大小(>90%,报警),内存使用率

CMDB

通过上面的例子,需要做一个基石项目,提供服务器的基础信息(服务器的磁盘,cpu,

内存等),这个基石项目叫做 CMDB Configure Manage DataBase 中文叫 配置管理数

据库,主要用来收集服务器的基础信息

架构图介绍

CMDB 的几种实现方式

Agent 实现方式

Agent 方式,可以将服务器上面的 Agent 程序作定时任务,定时将资产信息提交到指定 API 录入数据库

将待采集的服务器看成一个agent,然后再服务器上使用python的subprocess模块执行linux相关的命令,然后分析得到的结果,将分析得到的结果通过requests模块发送给API,API获取到数据之后,进行二次比对数据,最后将比对的结果存入到数据库中,最后django起一个webserver从数据库中将数据获取出来,供用户查看

优点:速度快

缺点:需要为每台服务器部署一个Agent程序

ssh 实现方式(基于 Paramiko)

在中控机服务器上安装一个模块叫paramiko模块,通过这个模块登录到带采集的服务器上,然后执行相关的linux命令,最后返回执行的结果,将分析得到的结果通过requests模块发送给API,API获取到数据之后,进行二次比对数据,最后将比对的结果存入到数据库中,最后django起一个webserver从数据库中将数据获取出来,供用户查看

优点:不用 每一台都部署 Agent

缺点:速度慢

如果在服务器较少的情况下,可应用此方法

import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='root', password='123') # 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read() # 关闭连接
ssh.close()

saltstack 方式

问:如何使用 Python 代码来执行 linux 的命令?

答:subproces s模块来执行 linux 命令

问:为啥post中没有收到数据,而body中有

答:django 根据你 http 协议的头信息来判断,

如果是 content-type: application/form-url-encode的话,django 会将 body 中的数据付

给 post。

如果 content-type: application/json 的话,django 不会将 body 中的数据付给 post

总结:整个架构方案分 3 个部分:客户端采集,API 数据分析,数据展示

最新文章

  1. 【笔记】js操作cookie
  2. 数据库的Disk Space usage
  3. 匈牙利算法 DFS模板(了解度+1)
  4. 【BZOJ-3337】ORZJRY I 块状链表
  5. DMSFrame 之简单用法(一)
  6. CPU GPU天梯图
  7. 重置mysql的root密码
  8. gcc常用命令介绍
  9. 动态规划:NOI2013 快餐店
  10. js Web存储方式
  11. javascript设计模式——享元模式
  12. RxSwift(一)
  13. 详解linux进程间通信-消息队列
  14. sed的替换元字符的语法
  15. python中使用queue实现约瑟夫环(约瑟夫问题)求解
  16. MYSQL查询优化:使用索引
  17. Chrome Adobe Flash Player 因过期而 阻止
  18. 如何使用g++编译调用dll的c++代码
  19. Spring学习笔记--自动装配Bean属性
  20. LAMP安全加固

热门文章

  1. tcp/ip 学习(一)
  2. 手把手教你用Python网络爬虫获取网易云音乐歌曲
  3. 不会看 Explain执行计划,劝你简历别写熟悉 SQL优化
  4. 你 MySQL 中重复数据多吗,教你一招优雅的处理掉它们!
  5. Java并发编程3-抽象同步队列AQS详解
  6. zookeeper安装部署步骤
  7. centOS 6.8下使用Gparted进行分区扩容
  8. 蒲公英 · JELLY技术周刊 Vol.08 -- 技术周刊 · npm install -g typescript@3.9.3
  9. Python的自定义属性访问跟描述器以及ORM模型的简单介绍
  10. Object类及其equals()方法