PPTVLB日实时分析平台.docxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PPTVLB日实时分析平台

PPTV LB日志实时分析平台 XinyiZhou xinyizhou@ 11/5 2012 Agenda PPTV LB日志实时分析系统介绍 实际面临的问题 解决方案 系统部署 系统实现 Fluentd(td-agent) MongoDB Python Script(PyMongo module) Zabbix 应用实例 Nginx return code 4xx 5xx 监控 Nginx响应时间监控 告警邮件自动分析程序 LB日志实时分析与自动Release平台的集成 实际面临的问题 PPTV采用Nginx+Keepalived的方式构建Load Balancer,共有约40台LB server,每台承载10-50个域名的流量,我们需要精确的把握所有域名的健康状态(返回码是否正常,4xx/5xx率),及响应时间变化趋势;能够准实时的发现入侵行为; 难点: 日志量大 – 每台LB每天都有几百GB日志(压缩前) 日志分散不易进行统一分析 难以添加有效监控 解决方案(一) awk+grep+bash+gnuplot 最方便的一招,比较灵活,计算准确;但实际使用不方便,看一个域名的日志需要登陆好几台LB E.g. 统计非200的top return code awk {if ($9 ~ /^[0-9]*$/ $9 != 200 $9 !~ /^3/) code[$9]++}END {for ( i in code ) print i code[i]}|sort -k2 –nr 使用gnuplot对统计结果绘图 cut –d’’ –f1-4 log.txt | uniq –c | (echo “plot “-” using 2:1 with lines”;cat)|gnuplot 解决方案(二) Python+zabbix 每台LB均部署python日志分析脚本,通过zabbix调度,每隔五分钟对前五分钟生产的日志文件进行分析,保留分析结果; Zabbix负责绘图和告警; 主要两个缺点: 1)性能瓶颈,日志分析占用大量LB CPU资源 2)不够灵活,日志分析局限于单台LB 解决方案(三) Fluentd+Mongodb+Python+zabbix Fluentd实时收集LB日志,JSON化,存入中央Mongodb Python程序查询Mongodb数据进行实时计算;计算结果存入zabbix;zabbix负责告警及图形展现 P.S. That’s what we want!! Fluentd/Mongodb架构图 Fluentd介绍 开源日志收集工具 / LOG everything as JSON! JSON:Schema-free, add/remove field from logs at anytime 原始日志: “2012-10-01 host1 myapp: message size=1000 user=xyz” JSON: 2012-10-01 myapp.message { “hostname”: ”host1”, “size”: 1000, “user”: “xyz” } Fluentd/Mongodb数据流图 Fluentd plugin说明(1) 在不使用plugin的情况下Fluentd仅仅是将日志输入转化为JSON格式输出的工具;各类plugin极大拓展了Fluentd的功能 Fluentd plugin有如下三种: Input plugin 定义日志来源标准化,输入的格式 Buffer plugin 定义fluentd缓存的配置以实现可靠性 Output Plugin 定义输出的格式及目的地,可以是文件,网络,数据库,etc Fluentd plugin说明(2) Fluentd Input Plugin http 让fluentd从http client获取数据 tail tail是最常用的input plugin; source type tail path /var/log/httpd-access.log #tail监听的文件地址 tag apache.access #每个输入需要一个特定标签以区别 format apache|syslog|自定义正则 #format可以灵活自定义 /source foward 将其他fluentd/fluent-cat命令的输出作为该fluentd的输入; exec 通过执行外部命令,以命令执行的结果作为fluentd的输入; Fluentd plugin说明(3) Fluentd Output Plugin Ouput Plugin用于存储Fluentd

文档评论(0)

yx118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档