目录

阿里云监控平台分析

阿里云监控平台分析

暮然回首,我已在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. 出于安全考虑,数据的同步,不应写在明文的源代码里,这容易让人修改提交的数据