CDN 监控系统(二)
使用开源软件来搭建监控系统,网上已经有很多关于 zabbix、prometheus、open-falcon等等的比较。使用开源软件注意:
- 开源软件的诞生背景,很多开源软件只是公司用来解决源站小集群的工具,而对于cdn上万服务器的分布式节点不一定适合,比如puppet、ansible、salt 能管理的机器范围就不一样以及如何应对等等。当然我们也没有必要过度设计。
- 在自己不了解的情况下,可以都了解一下,可以先选择“好的”,再去看“坏的”,只要不是已经完全被淘汰,一定还存在适用场景,从文档、入门难易、使用范围、开发工作、性能扩展等了解
这里从使用流程上探讨一下 zabbix 和 prometheus,以及理想的监控架构:
基础监控
zabbix
- squid 开发人员 自己写脚本判断错误
- agent处理错误并主动上报告警信息给zabbix server
- zabbix server 配置告警类型模板
prometheus
-
开发人员开发 exporter
-
prometheus pull exporter
-
prometheus 配置 alertmanager
业务监控
- 客户端从数据中心获取数据,需要数据中心开发接口,客户端获取接口
- 客户端根据下拉的数据进行规则计算,然后对接告警引擎
基础监控基本非常稳定,后续开发工作量不大,或者制作好模板甚至可以一键自动化制作整套新软件的监控;
业务监控却由于业务数据维度繁多,如果按照上面的开发模式将会疲于应对。一种新的模式是利用SQL 既可以 直接获取任意数据,又可以设置规则 , 大大解放生成力。prometheus prome2click clickhouse
需要反思的是 这种设计真的是非常好
后续系列再介绍每一种架构