本篇文章介绍下openfalcon的基本原理和使用,粒度相对较粗,主要目的是使大家迅速掌握open-falcon的数据模型、功能模块、运作流程和使用方法。具体分解如下,
- 基本介绍
- 技术架构
- 数据模型
- 主要模块
- 如何使用
- 其他
一、基本介绍
Open-Falcon 是小米研发的一款开源的互联网企业级监控系统解决方案,目前小米、金山云、美团、京东金融、滴滴等公司有在使用。
下面我们遵循着问题来展开整篇文章。首先,open-falcon能做什么?
a.主要特点有
①数据采集免配置:agent自发现、支持Plugin、主动推送模式
②容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。
③告警策略自发现:Web界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。
④告警设置人性化:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈
值、支持维护周期,支持告警合并。
⑤历史数据高效查询:秒级返回上百个指标一年的历史数据。
⑥Dashboard人性化:多维度的数据展示,用户自定义Dashboard等功能。
⑦架构设计高可用:整个系统无核心单点,易运维,易部署。
其次,openfalcon能对哪些项目做监控 ?
1)基础监控。
比如CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口存活状态、进程存活状态、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset采集、DNS解析采集,这些指标,都是open-falcon的agent组件直接支持的。
2)业务应用监控。
比如我的应用服务部署上线后,需要统计某个接口的平均耗时、调用次数、成功率等信息,这些属于业务应用的监控。这里需要研发人员编写脚本等方式来收集数据,然后发送到open-falcon的transfer组件。
3)第三方开源软件监控。
比如mysql、lvs、nginx、redis、mq等,需单独编写采集脚本或插件,这些常见的软件,一般开源社区都有提供相应的脚本。
这里有个openfalcon与其他一些监控软件的对比,
个人觉得,falcon比较大的优势在于扩展性和灵活性方面。
二、技术架构
涉及架构或结构时,图是比较好的展示方式,下图摘自官网,可以看出组件及组件间协作。
绿色的粗线表示数据传输流程,橙黄色虚线表示控制流(策略,告警),浅蓝色虚线标识查询流程;
下图是一个相对规整的数据流图,更有助于理解: