运维开发实践——基于Sentry搭建错误日志监控系统
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警。似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”。但它又与APM不同,APM系统主要注重应用层的行为分析,收集的更多是运营方向的数据。而sentry所做的是收集应用底层代码的崩溃信息,便于码侬们排查代码异常。简单来说它就是一个面向技术码侬的排障工具。 1. 场景描述 随着运维自动化流程的推进, 各类运维工具和系统也像雨后春笋般涌现. 目前我们自主开发的运维系统的数量已经接近两位数. 这些系统部署在多台机器上, 通常还配套一批后台运行的脚本. web端如果出现异常, 开发人员可以及时得到反馈进行修复. 而脚本因为没有交互, 可能会出现发生重大故障时才定位到问题的情况. 2. 既有方案 后端和脚本用python内置的日志模块记录程序中间状态, 同时也将两者的输出重定向到指定文件, 以获取未捕获的异常信息. 同台服务器上多个系统的日志集中存放到同个目录 使用rsync定时从多台服务器中拉取日志文件 对日志文件进行关键字匹配, 并将过滤结果通过邮件发送给运维开发人员 最终整合的通知邮件如图 3. 存在的问题 上面的操作部分解决了脚本运行状态监控盲区的问题, 但还存在如下问题 无法第一时间感知错误 脚本日志的拉取不是实时的, web端用户的反馈也往往存在滞后.