阿里云监控平台分析

暮然回首,我已在IT运维行业十多年了,近来也没什么新的方向,就没事研究一下别人的运维监控平台,正好我对阿里云比较熟悉,就拿这个来练练手吧。

声明:我只是出于技术分析,任何人不得将内容用于不正当的活动!

操作系统:centos 6.3

阿里云的监控进程:aegis_quartz

程序位置:/usr/local/aegis/aegis_quartz 

目录分析:

# tree /usr/local/aegis/aegis_quartz 

/usr/local/aegis/aegis_quartz
├── aegis_config.ini    #--------主配置文件,如启动名称和类型等
├── aegis_quartz         #---------主程序
├── conf                      #----------配置文件目录
│   ├── aegis_quartz.conf.default        #-------阿里云默认监控程序配置,内容:[0 0/1 * * * ?] default/sampler.py   ,从内容来看,就是一个仿crontab类的定时任务管理器。
│   ├── aegis_quartz.conf.user           #-------用户自己监测的配置文件,我没有配置自有监测器,不过直觉应和默认监控配置是一致的。
│   └── uuid       #---------主机的唯一标识ID,和操作系统是一致的,而不是自己生成。这样当主机如何改IP地址,都能能过这个UID找到主机。
├── libexec       #---------监测器执行目录
│   ├── default       #---------阿里云默认的监测器存储目录
│   │   ├── check_process.py      #-----检测进程名称为 参数1 的进程运行数量,如执行python check_process.py  mysql,使用HTTP协议提交到监控中心。
│   │   └── sampler.py     #------不要被名字迷惑~!这是阿里云默认最基础的监测程序,监测CPU、内存、磁盘、IO、TCP连接等。主函数“collector”,从程序里能看到是用HTTP协议提交的性能数据。和我原来设想的大规模的云监测思路不谋而合!原博文“试设计大规模云环境监测架构”

│   └── user                #------用户自定义的监测器目录
└── log                    #------日志程序目录
    └── aegis_quartz.log


至于数据汇总端,我就没有能力分析了,因为看不到程序哈。不过估计会有一堆时间序列数据库来存储性能数据吧。


我觉得还可以有些优化的地方:

  1. 不知AGENT有没有限制自身的资源,比如采集程序执行的CPU占用、执行时间等,这个应考虑
  2. 当不能上传数据时(如接收性能数据的CMS服务器异常),如果AGENT考虑将数据缓存一段时间或几次,当能连接成功时,再批量将性能数据上传,以保障数据的连续性
  3. 我不知阿里云为什么会用PYTHON开发监测器,我觉得如果采用SHELL脚本,应会耗资源更小。对于WINDOWS可以采用WMI脚本监测。
  4. 我觉得在提交每类性能数据时,可以增加一个status参数,如果这个监测器没采集到或采集异常,status=err,就不需要读后面的变量了。而且如果CMS在读性能数据时有告警触发,可能就会直接触发一个EVENT
  5. 我觉得阿里的AGENT主进程占用有点多,一般要4个子进程,应参考CRONTAB优化占用资源
  6. 出于安全考虑,不应采用80端口同步数据
  7. 出于安全考虑,数据的同步,不应写在明文的源代码里,这容易让人修改提交的数据

你可能感兴趣的:(云计算应用)