围绕日志展开的运维体系.pdf

围绕日志展开的运维体系 黄昆 365 日历介绍 基础服务:日程管理、黄历节日节气、放假安排、天气等 共享日程:班级、公司、球队、家庭 公众日历:电影首映、演出活动、体育赛事等等 1800万用户收藏 150000用户收藏 大纲 服务器架构演进 基于ELK的日志体系 基于CEP的智能监控探讨 机房托管年代 • nginx_lua • Redis • fusionIO • 提高单机性能,尽量控制实 体机数量,降低运维复杂度 和成本 拥抱云服务 • 业务需要 • 技术需要 • 腾讯云:云主机/云mysql (CDB) /云负载均衡/基础监控等 • 其他云服务:又拍云、SendCloud、监控宝 • 减轻基础运维压力 天下没有白吃的午餐 • 云mysql单机性能的下降(相比fusionIO) • 限制:单机QPS限制,单库容量限制 • 日历app访问峰值问题 • 分库:按业务垂直拆分,按逻辑水平拆分 • cobar 部分功能服务化 • 产品扩张、代码膨胀、人员膨胀 • 功能和代码耦合度变高, 不同人改动同一模块代码 • 依赖增多 • 发布时互相影响 • 跨语言调用 (lua服务也需要认证) • 方案:服务拆分—dubbo/dubboX 演进后的架构 • 水平扩展 • 分层 • 架构变复杂 架构复杂后面临的问题 • 多层架构,排查问题变复杂 • application层/service层 • cobar/dubbo • 多个服务层级之间的关联关系 • 监控系统太散乱 • zabbix/ganlia/graphite/jmxtrans/cobar和dubbo 自己的监控中心 • 开发人员查看日志不方便 • 登录到线上手动分析日志 tail cat grep awk sed • 日志中的异常和错误报警不及时不方便 • 基于日志的各种统计分析经常需要根据新需求写脚本做开发 日志—搭建运维和开发之间最好的桥梁 • 包含服务器、应用、运营所需的各种数据 • 及时的反应问题 • ELK--Elasticsearch Logstash Kibana • 分布式的日志处理的架构,可以对日志进行收集、过滤解析、存储、统 计搜索和展⽰ Logstash • a tool for receiving, processing and outputting logs • input: file,jmx,log4j,syslog,redis,tcp,udp • codesc: multiline,json • filter: grok, date, mutate, split, grep • output: elasticsearch, graphite Logstash The life of an event Elasticsearch • 基于lucene • 分布式高可用(横向扩展、sharding、replica) • 全文搜索+统计分析API (Aggregations) • 比较完善的管理监控(head、marvel) Elasticsearch -- head Elasticsearch -- marvel Kibana 日志整体架构 场景1—基于nginx 日志 • 统计接口调用次数 • 统计tomcat后端接口处理时间,慢请求报警 • 按httpcode 200/4xx/5xx进行分接⼝、分IP、分agent 、分服务器统 计 • 方案:使用Logstash 日志解析功能(grok),将日志分解成不同的字段, 输出到Elasticsearch,通过Kibana进行图表展示 Kibana上展现 场景2—tomcat错误日志 • 对日志按ERROR/INFO/WARN等进行收集统计,级别高的错误日志 实时发报警邮件,普通错误定时发送错误报告 • 开发人员可以登录kibana直接查看错误日志,无需运维人员协助 场景3—dubbo日志处理 • 客户端和服务器端定时往监控中心发调用统计信息,监控中心接收 后打到日志中,由logstash收集

文档评论(0)

1亿VIP精品文档

相关文档