PPTVLB日志实时分析平台课件.pptx

上传人(卖家):三亚风情 文档编号:3371675 上传时间:2022-08-24 格式:PPTX 页数:27 大小:380.07KB
下载 相关 举报
PPTVLB日志实时分析平台课件.pptx_第1页
第1页 / 共27页
PPTVLB日志实时分析平台课件.pptx_第2页
第2页 / 共27页
PPTVLB日志实时分析平台课件.pptx_第3页
第3页 / 共27页
PPTVLB日志实时分析平台课件.pptx_第4页
第4页 / 共27页
PPTVLB日志实时分析平台课件.pptx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、AgendavPPTV LB日志实时分析系统介绍实际面临的问题解决方案系统部署v系统实现Fluentd(td-agent)MongoDBPython Script(PyMongo module)Zabbix v应用实例Nginx return code 4xx 5xx 监控Nginx响应时间监控告警邮件自动分析程序LB日志实时分析与自动Release平台的集成实际面临的问题vPPTV采用Nginx+Keepalived的方式构建Load Balancer,共有约40台LB server,每台承载10-50个域名的流量,我们需要精确的把握所有域名的健康状态(返回码是否正常,4xx/5xx率),及

2、响应时间变化趋势;能够准实时的发现入侵行为;v难点:v日志量大 每台LB每天都有几百GB日志(压缩前)v日志分散不易进行统一分析v难以添加有效监控解决方案(一)vawk+grep+bash+gnuplotv最方便的一招,比较灵活,计算准确;但实际使用不方便,看一个域名的日志需要登陆好几台LBvE.g.统计非200的top return codevawk if($9 /0-9*$/&$9!=200&$9!/3/)code$9+END for(i in code)print i codei|sort-k2 nrv使用gnuplot对统计结果绘图vcut d f1-4 log.txt|uniq c|

3、(echo“plot“-”using 2:1 with lines”;cat)|gnuplot解决方案(二)vPython+zabbixv每台LB均部署python日志分析脚本,通过zabbix调度,每隔五分钟对前五分钟生产的日志文件进行分析,保留分析结果;vZabbix负责绘图和告警;v主要两个缺点:1)性能瓶颈,日志分析占用大量LB CPU资源2)不够灵活,日志分析局限于单台LB解决方案(三)vFluentd+Mongodb+Python+zabbixvFluentd实时收集LB日志,JSON化,存入中央MongodbvPython程序查询Mongodb数据进行实时计算;计算结果存入zab

4、bix;zabbix负责告警及图形展现vP.S.Thats what we want!Fluentd/Mongodb架构图Fluentd介绍v开源日志收集工具 http:/fluentd.org/vLOG everything as JSON!vJSON:Schema-free,add/remove field from logs at anytimev原始日志:“2012-10-01 host1 myapp:message size=1000 user=xyz”vJSON:2012-10-01 myapp.message“hostname”:”host1”,“size”:1000,“user

5、”:“xyz”Fluentd/Mongodb数据流图Fluentd plugin说明(1)v在不使用plugin的情况下Fluentd仅仅是将日志输入转化为JSON格式输出的工具;各类plugin极大拓展了Fluentd的功能vFluentd plugin有如下三种:vInput plugin 定义日志来源标准化,输入的格式vBuffer plugin 定义fluentd缓存的配置以实现可靠性vOutput Plugin 定义输出的格式及目的地,可以是文件,网络,数据库,etcFluentd plugin说明(2)vFluentd Input Pluginvhttp让fluentd从http

6、client获取数据vtailtail是最常用的input plugin;type tail path/var/log/httpd-access.log#tail监听的文件地址tag apache.access#每个输入需要一个特定标签以区别format apache|syslog|自定义正则#format可以灵活自定义 vfoward将其他fluentd/fluent-cat命令的输出作为该fluentd的输入;vexec通过执行外部命令,以命令执行的结果作为fluentd的输入;Fluentd plugin说明(3)vFluentd Output PluginvOuput Plugin用于

7、存储Fluentd收集来的数据;目前有很多开源的plugin,如:fluentd-flume,fluentd-splunk,fluentd-cassandra,fluentd-scribe,fluentd-mongodbvfluent-plugin-mongo 0.6.10 vOutput plugin中最完美的当属mongodb plugin,因为Fluentd/Mongodb都以JSON为基础;mongodb良好的插入查询性能可以顶住海量日志实时分析的压力;mongodb的capped collection很好的解决了日志定量轮转的问题MONGODB部署v每个机房部署一台mongodb s

8、erver,用于收集该机房全部LB的日志v每个mongodb部署多个instance,每个instance对应一台LB serverv建立多个collection,每个collection保存一个域名的日志信息v一定要使用capped collection!MONGODB配置vport=270XXvdbpath=/home/mongodb/node270 xxvlogpath=/home/mongodb/node270 xx.logvsyncdelay=10#这个设置10秒左右,将IO压力平均化,避免sync时影响查询性能vmaxConns=20000voplogSize=1024vdirec

9、toryperdb=onvlogappend=onvjournal=offvfork=onvnohttpinterface=onFluentd部署v每台LB上均需安装一个Fluentd agent;使用TreasureData公司yum源上提供的td-agent rpm包安装即可;v启动方法 /etc/init.d/td-agent startv关键配置/etc/td-agent/td-agent.confv日志文件/var/log/td-agent/td-agent.logPPTV Fluentd Input配置vv type tailv path/home/logs/nginx/aplus

10、-access.logv pos_file/var/log/td-agent/tmp/.posv format/(?*)(?*)-(*)(*)(?*)(?*)(?*)(*)(*)(*)(?*)(?,*)*(?,*)*(?*)$/v tag .accessvPPTV Fluentd Output配置vv type mongov database LB_hostnamev collection .accessv host mongodb_hostv port mongodb_portv cappedv capped_size 180m#确保能够保留最近1小时该域名的日志v ignore_inval

11、id_record truev buffer_type memory#使用内存作为buffer存储方式v buffer_chunk_limit 1Mv buffer_queue_limit 15v retry_limit 10v retry_wait 1sv flush_interval 1s#刷新频率为1s,基本做到实时vPPTV日志样例v原始日志:218.26.242.14 -05/Nov/2012:15:42:38+0800 GET/recommend_pop/?_=1352101423806 HTTP/1.0 200 34 http:/ Mozilla/4.0(compatible;M

12、SIE 7.0;Windows NT 6.1;Trident/5.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C)60.211.95.201,127.0.0.1 0.012 10.201.10.94:80 200 0.012“MONGODB中的日志:_id:ObjectId(5097755c31d87b09f8046f1f),ip:218.26.242.14,domain:,url:GET/recommend_pop/?_=1352101423806 HT

13、TP/1.0,“code”:“200”,#返回码 bsize:“34,#bodysize “restime”:“0.012”,#后端服务响应时间 “backend”:“10.201.10.94:80”,#后端服务地址 “bcode”:“200”,#后端服务返回码 “nginxtime”:“0.012”,#nginx响应时间 time:ISODate(2012-11-05T15:42:38Z)PPTV LB日志分析逻辑(1)v为LB日志自动生成fluentd配置文件:v对某台/log/nginx/*.access.log和*.error.log:v根据LB所在机房分配后端mongodb地址/端口

14、,根据历史日志大小分配capped collection size,根据LB机器名分配mongodb database_name,根据域名确定mongodb collection name.PPTV LB日志分析逻辑(2)v保存域名-LB-后端主机的对应关系,并定期更新(parse nginx配置文件)v db.domain_host_info.find(domain:)v _id:ObjectId(5096bc7b19859831d6000002),domain:,host:“lb1,backend:“host1 v _id:ObjectId(5096bc7b19859831d6000003

15、),domain:,host:lb1,backend:“host2 v _id:ObjectId(5096bc7b19859831d6000004),domain:,host:“lb2,backend:“host3 v _id:ObjectId(5096bc7b19859831d6000005),domain:,host:“lb2,backend:“host4 PPTV LB日志分析逻辑(3)v每五分钟对前五分钟mongodb收集到的日志基于域名进行汇总计算(python/pymongo),得出结果存入mongodb中的lb_detail表:v db.lb_detail.findOne()vv

16、 _id:ObjectId(509434522573b0625d000002),v “domain”:“”,#分析的域名v “ng1_count”:0,#nginx请求时间超过1秒个数v “be1_count”:0,#backend后端响应时间超过1秒个数v “total_count”:2703,#过去5分钟该域名的请求总数v “backtime_total”:6.71,#backend后端响应时间总和 v “bodysize_total”:124100,#bodysize总和v “xx4_count”:2,#4xx请求个数v time:ISODate(2012-11-03T05:00:02.

17、634Z),v “ng3_count”:0,#nginx请求总时间大于3秒的请求个数v “c200_count”:2700,#200请求个数v “xx5_count”:1,#5xx请求个数v “ngxtime_total”:7.191,#nginx请求总时间v “be3_count”:0#backend响应时间超过3秒的个数vPPTV LB日志分析逻辑(4)v每五分钟对前五分钟mongodb收集到的日志基于后端机器进行汇总计算(python/pymongo),得出结果存入mongodb中的backend_detail表:v#某域名中某后端机器(backend_ip:80)过去5分钟的4xx/5

18、xx/响应时间/超时次数情况v db.backend_detail.findOne()vv _id:ObjectId(509677552573b02445000004),v bk_xx5_count:183,v bk_be3_count:62,v bk_ng3_count:65,v bk_body_size_total:214842812,v bk_ngx_time_total:1443.1720000000564,v bk_be1_count:83,v domain:“,v bk_total:25378,v server:“LB_NAME,v bk_back_time_total:1233.

19、362000000008,v bk_c200_count:25140,v time:ISODate(2012-11-04T22:10:29.004Z),v bk_xx4_count:42,v bk_ng1_count:109,v backend:“backend_ip:80vPPTV LB日志分析逻辑(5)v对前面(3),(4)实时分析得出的结果,配置zabbix监控项进行采集、绘图vZabbix监控脚本使用python/pymongo查询mongodb中lb_detail/backend_detail表获取过去5分钟 某域名的总请求数/2xx率/4xx率/5xx率/平均响应时间/后端响应超过1秒的比率等Zabbix监控(1)v建立zabbix LB_log_mining监控模板,对每个域名建立总请求数,4xx/5xx数,后端平均响应时间,nginx响应时间,bodysize平均大小,响应时间1秒比例,响应时间3秒比例 (每五分钟采集一次)Zabbix监控(2)Zabbix监控(3)v如上页所示,某域名的总请求数、4xx、5xx比率,平均响应时间,均可以在zabbix中查看变化趋势;针对4xx、5xx率特别高或者响应时间3秒的比率特别高的,可以进行实时告警;v告警邮件见下图;Zabbix监控(4)Zabbix告警邮件实例;The End

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(PPTVLB日志实时分析平台课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|