zoukankan      html  css  js  c++  java
  • 配置文件服务器数据采集

    服务器数据采集第一版本:

    import requests

    if mode == 'agent':

      import subprocess

      res = subprocess.getoutput('ifconfig')

      ip_info = res[2:5]

      requests.post('http://127.0.0.1:8001/asset',data = ip_info)

    elif mode == 'ssh':

      import paramiko

      ssh = paramiko.SSHClient()

      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('ifconfig')

      result = stdout.read()

      ssh.close()

    elif mode == 'salt':

      import salt.client

      local = salt.client.LocalClient()

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

    缺点:扩展性差

    优点:开发上线块

    版本二:将业务逻辑的代码以插件的形式,写在src目录下面,相比于版本一,更加的清爽,业务逻辑更加的清晰

    问题:无法进行随心所欲的注释

    版本三:可插拔式的插件采集信息

    config.py:

    plugins_dict={'a':'插件类名路径',...}

    __init__.py

    for k,v in self.pluginsSettings.items():

      #k:basic, v:src.plugins.basic.Basic

      module_name,class_name = v.rsplit('.',1)

      m = importlib.import_module(module_name)

      cls = getattr(m,class_name)

      res = cls().process()

      print(res)

    插件代码冗余:

    1.写一个基类,有一个通用执行的方法,个插件继承基类

    2.将函数名作为参数传入一个函数中

    salt的调用:
    ps:
    python2:
    import salt.client
    local = salt.client.LocalClient()
    result = local.cmd('c2.salt.com', 'cmd.run', [cmd])

    python3:
    import subprocess
    res_cmd = "salt '%s' cmd.run '%s'" % (self.hostname,cmd)
    res = subprocess.getoutput(res_cmd)
    return res

    错误信息的管理:

    容错(代码健壮性)

    import traceback

    traceback.format_exc()

    post数据

    使用request.body获取数数据

  • 相关阅读:
    SQL所有者更改问题
    人生路上对我影响最大的三位老师
    自我介绍
    Ural_1146. Maximum Sum (DP)
    Ural_1654. Cipher Message(栈)
    Ural_1333. Genie Bomber 2
    POJ_2112 Optimal Milking(网络流)
    Ural_1031.Railway Ticket (DP)
    Ural_1030. Titanic
    Ural_1207. Median on the Plane(计算几何)
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10871414.html
Copyright © 2011-2022 走看看