zoukankan      html  css  js  c++  java
  • python练手系列-分布式监控

    如果我们要写一个监控系统,要注意哪些问题和需求?

      [1] agent收集数据的时候需要通过系统调用少的方法收集到我们需要数据,一般来说我们优先使用python自带的系统方法,然后是读取/proc 文件 最差情况是 通过执行linux命令获取。

      [2] 网络传输问题:需要使用自己写网络库来完成传输,需要注意的时候一定要计算qps,比如5000台机器 每5s上传一次,qps就是1000。最起码也要用线程复用的模式,最佳要使用异步io的网络框架。

      [3] 存储数据问题:我们一般才用直接存到数据库的方式,在开发之前,一定要考虑数据量大小的问题  比如5000台机器 我们保存一个星期的数据  60/5 *60 *24 *7*5000 条记录,那么数据库最好做分表,通过机器名hash然后分表。

           [4] 我们写的agent需要支持插件。

      [5]单机问题

    架构如图,是借鉴网络上一位大神的架构画出的图。侵删。。。

    CREATE TABLE stat_3( id int(11) unsigned NOT NULL AUTO_INCREMENT, host varchar(256) DEFAULT NULL, mem_free int(11) DEFAULT NULL,  mem_usage int(11) DEFAULT NULL, mem_total int(11) DEEFAULT NULL, load_avg varchar(128) DEFAULT NULL, time bigint(11)  DEFAULT NULL, user_define varchar(4096) DEFAULT "", PRIMARY KEY (id), KEY host (host(255))  ) ENGINE=InnoDB DEFAULT CHARSETT = utf8;
    

      

  • 相关阅读:
    poj 1733 Parity game
    poj 1456 Supermarket
    bzoj 1304 [CQOI 2009] 叶子的染色
    51Nod 1667 概率好题
    2015年阿里巴巴校招研发工程师在线笔试题汇总
    从字符串常量起说内存分配
    字符串笔面试题
    排序算法(4)-线性时间排序
    华为2015校园招聘机试
    笔画宽度变化(C++和matlab算法)
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/7490897.html
Copyright © 2011-2022 走看看