【京东云大型监控系统设计与应用实践】
监控系统在IT运维中扮演着至关重要的角色,它确保了系统的稳定运行和快速故障排查。郑永宽,作为京东云产品研发部的总监,分享了关于京东云监控系统的设计与应用实践,涵盖了从需求背景到具体实施的全过程。
1. **需求背景**:
- 监控系统的生命线作用在于能够快速识别异常,缩短异常生命周期(MTTR),即看到异常、了解异常、采取行动。
- 需求包括:丰富的数据采集手段、实时聚合计算、异常检测与准确告警、可定制的仪表板、根因推荐、预案平台和高可用性与可扩展性。
2. **京东云监控实践**:
- 京东云的监控体系涵盖了基础监控、性能监控、日志监控、业务监控、存活监控、机器监控、进程/端口监控和语义监控等层面。
- 基础监控关注CPU、内存、磁盘、网络等资源状况,解决机器层面的问题。
- 性能监控通过开源软件监控四大黄金指标(PV、错误、平均响应时间、容量)来分析服务性能。
- 业务监控通过自定义和外网域名监控用户使用情况,例如京东云官网的访问状态和流程监控。
- 应用监控关注函数方法调用耗时、JVM性能以及常用开源软件如Nginx、Redis、MySQL的监控。
- 存活性监控通过进程监控和端口监控来确保程序的正常运行。
- 基础设施监控则涉及机器资源,包括200+监控项的自动采集。
3. **京东云监控标准实施**:
- 监控打分与配置推荐:为管理者提供整体稳定性的直观评估,帮助运维人员发现不足,形成最佳实践。
- 告警处理:设置报警分级,例如P0紧急问题需要立即处理,P1和P2级别的报警可以通过自动化或定期检查处理。
- 故障定位:通过变更程序、网络资源、中间件等多角度进行故障定位,优先止损。
4. **监控系统设计**:
- 典型监控系统架构包括数据采集Agent、数据处理、报警展示、Meta维护等组件,利用Kafka、Spark、ES等技术进行数据存储和处理。
- CMDB(配置管理数据库)作为统一运维世界的认知,实现资源关联管理和快速查找,提供服务树、名字服务、监控配置等功能。
5. **JNS(JD Naming Service)**:
- JNS作为京东云的名字服务,提供了全量服务与资源的管理,包括服务树、资源反查、角色权限控制等功能。
- JNS整体架构包含消息队列、服务器、库等组件,支持发布变更记录、订阅和HTTP接口,实现资源管理的全流程。
京东云的监控系统设计强调全面性、实时性和灵活性,旨在通过高效的数据采集、处理和展示,以及智能化的故障定位和预案处理,提升整个云平台的运维效率和用户体验。通过不断迭代和优化,京东云监控系统在确保业务连续性方面发挥了关键作用。