• CMDB 和自动化运维


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

    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 数据分析,数据展示

  • 相关阅读:
    NERDTree 快捷键辑录
    linux 自动登录脚本
    INSERT INTO .. ON DUPLICATE KEY更新多行记录
    Linux环境PHP7.0安装
    SVN常用命令
    Linux下查看文件和文件夹大小
    Cacti安装详细步骤
    linux回到上次目录与历史命令查找快捷方式
    shell的if else 以及大于,小于等逻辑表达式
    Nginx_Lua
  • 原文地址:https://www.cnblogs.com/kai-/p/12566834.html
Copyright © 2020-2023  润新知