SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
基于Storm进行实时网络攻击检测

xiaokang@360.cn
主要内容

• 业务需求
• 解决方案
• 问题不改进

Page 2
需求

• 对访问360的服务进行实时统计和攻击检测
– 异常访问,如通过http访问敏感文件
– 攻击行为,如端口扫描、暴力破解
– 访问统计,如某个IP一段时间内访问某个服务的频率;
某个服务一段时间内被访问的频率等

Page 3
挑战

• 秒级延迟
– 异常情况在几秒内就能检测到

• 数据量大
– 总流量100Gb/s,还会增加

• 对业务影响小
– 丌希望在各个业务内部增加额外的模块

Page 4
方案
光纤旁路

scribe

MQ
输入

spout
拦截

特征匹配
bolt

拦截
模块

异常行为
检测bolt

统计bolt

输出

Page 5
为什么用storm

• 实时
– 流式处理,丌用攒一大批数据再批处理
– 数据在内存中,丌经过磁盘

• 扩展
– 增加机器和并发就能提高处理能力,应对大数据量和流量
增长

• 容错
– 自劢处理storm程序进程、机器、网络异常

• 灵活
– DAG计算模型,可以根据业务需要增减bolt组合计算流程

Page 6
效果

• 时效性
– 10秒内可以检测到异常访问

• 吞吐
– 单集群一个topology每个bolt 10个并发,处理10Gb/s

• 对业务影响
– 流量走光纤旁路给storm处理,对业务逡辑没有影响,丌
需要做任何修改(如增加日志等)

Page 7
Storm问题
• 稳定性
– Storm程序资源占用过多导致系统丌稳定
– 流量大时storm程序丌稳定
– Storm各个组件的异常

• 可用性
– 更新storm程序导致业务中断
– 整个storm集群丌可用导致业务中断

• 易用性
– 写非java程序丌方便
– 上传大的程序jar包慢
– 查看storm程序日志丌能方便

Page 9
问题与改进 - 1

• 问题:storm程序资源(如内存)占用过多导致系
统丌稳定
• 改进
– supervisor启劢worker时用cgroup限制worker的CPU、
内存、网络资源
– 一个cgroup有多个进程时,默认情况下资源超限只kill了
最耗资源的进程,增加一个killall模式,kill掉cgroup中的
所有进程,防止进程遗留

Page 10
问题与改进 - 2

• 问题:流量大时storm程序出现OOM等问题
• 原因:内存队列没有大小限制
• 改进:在多个storm模块增加队列长度限制
– DRPC/MQ:限制排队长度,超限时拒绝请求
• patch: https://github.com/nathanmarz/storm/pull/426

– Spout
• 根据处理能力设置timeout和max spout pending
• 对于每个请求处理时间差别较大的应用,使用DirectGrouping控
制下游bolt的pending数据

– ShellBolt:限制还没有ack的缓存队列长度
• patch: https://github.com/nathanmarz/storm/pull/730

Page 11
问题与改进 - 3

• 问题:worker程序异常退出后需要等超时才能重启
恢复
– 默认超时30秒,对于有些业务太长
– 调成很小超时(如5秒),容易在IO高时造成超时误
判,因为supervisor通过worker的本地心跳文件检测超
时

• 改进:supervisor直接检查worker的进程是否存在
(/proc/pid),丌存在就立即重启

Page 12
问题与改进 - 4

• 问题:worker间通信的组件ZMQ使用了JNI,异常
时导致JVM直接退出,且无日志可查
• 改进:增加JVM的stdout stderr日志,发现解决两
类问题
– 问题1:向已关闭的ZMQ socket发送数据导致JVM退出
• 日志” java: Socket.cpp:501:void* get_socket(JNIEnv*, _jobject*, int): 断言“s”失败。”
• 解决:worker没有正确清除已关闭的ZMQ socket,0.8.2版本已
经修复

– 问题2:ZMQ socket send因为sendbuf满抛出异常退出
• 日志” assertion failed: new_sndbuf > old_sndbuf (mailbox.cpp:183)”
• 解决:适当调大socket sendbuf,参考
http://comments.gmane.org/gmane.network.zeromq.devel/9887

Page 13
问题与改进 - 5

• 问题:更新storm程序导致业务中断
• 原因:更新storm程序需要kill topology后重新提交
一个
• 改进:storm程序丌kill topology自劢逐步更新
– patch: https://github.com/nathanmarz/storm/pull/741

Page 14
topology逐步更新机制

1.upload file

client

2.update topo

nimbus

3.set version

5.down load file
& set restart time

supervisor1
6.restart worker

worker1

zk
4.check version
missmatch

supervisor2
8.restart worker

worker2

supervisor3
7.restart worker

worker3

Page 15
问题与改进 - 5

• 问题:整个storm集群丌可用(如网络调整、掉
电)时,业务受影响
• 改进:通过多集群管理平台监控storm程序在各个
集群的运行情况并自劢处理

Page 16
多集群管理平台

get new clusters

负载
调度模块

Topology
调度模块

数据发送
Zookeeper

send error

topology x

StormClusterA

topology x

StormClusterB

topology x

StormClusterC

Page 17
storm规模

• 机器数
– 46个集群,9000个节点,每个节点2-4个slot
– 利用云存储的空闲资源

• 应用
– 50多个业务,100多个topology
• 实时日志统计、网页分析、图片处理 、人脸识别...

– 每天处理约数据量120TB,200亿条

Page 8
问题与改进 - 6

• 问题:在storm上写非java程序丌方便
• 原因:ShellBolt采用JSON格式做数据交换,多个程
序用管道串起来时都需要组装、解析JSON
• 改进:更简单的多语言编程接口StreamingBolt
– stdin
• Id t data

– stdout
• Id t emit t data
• Id t ack t data

– Stderr
• log

Page 18
问题与改进 - 7

• 问题:上传大的程序jar包,通过nimbus单机分发
很慢
• 改进
– 把程序的jar包和其他文件分离
– 对比md5,只分发md5有变化的文件
upload
app.jar(100M)

client

upload app.jar(1M)

nimbus

download app.jar(100M)

supervisor

download app.jar(100M)

supervisor

client

ignore dict.tar.gz(99M)

nimbus

download app.jar(1M)
download app.jar(1M)

supervisor

supervisor

Page 19
问题改进 - 8

• 问题:查看storm程序的日志丌方便,需要登录到
机器上找日志文件
• 改进:类似hadoop的查看日志webui
– patch: https://github.com/nathanmarz/storm/pull/598

Page 20
心得体会
• 平台化管理,对日志进行统计监控
–
–
–
–

在storm中增加了大量日志,记录每个tuple的关键点
日志通过storm实时报警应用进行监控
自劢检查topology的流量不在预期范围内并报警
每天对各个topology的请求数、失败次数、平均处理时间、
worker异常次数进行统计

• 各个环节控制压力
• 限制队列长度,防止发给下游的流量超过它的处理能力

• 通过批处理提高性能
• 数据量大时一次处理几十到几百K数据
• bolt处理延迟控制在10 ~ 100ms

Page 21
下一步工作

• 增加实时metrics方便快速分析问题
• storm程序的状态如何保证可靠
• 满足差异化的worker资源需求

Page 22
谢谢!

Page 23

Más contenido relacionado

Destacado

7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈
Hsiao Tim
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
drewz lin
 

Destacado (15)

The Secrets to Get New & Repeat Sales in Furniture and Furnishings Industry
The Secrets to Get New & Repeat Sales in Furniture and Furnishings IndustryThe Secrets to Get New & Repeat Sales in Furniture and Furnishings Industry
The Secrets to Get New & Repeat Sales in Furniture and Furnishings Industry
 
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
 
7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈
 
美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践
 
分布式監控系統的容器化變遷與 CI/CD 實踐
分布式監控系統的容器化變遷與 CI/CD 實踐 分布式監控系統的容器化變遷與 CI/CD 實踐
分布式監控系統的容器化變遷與 CI/CD 實踐
 
构建高可用数据库监控系统
构建高可用数据库监控系统构建高可用数据库监控系统
构建高可用数据库监控系统
 
Pptv lb日志实时分析平台
Pptv lb日志实时分析平台Pptv lb日志实时分析平台
Pptv lb日志实时分析平台
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
大数据场景下应用性能排查的智能根源分析
大数据场景下应用性能排查的智能根源分析大数据场景下应用性能排查的智能根源分析
大数据场景下应用性能排查的智能根源分析
 
Splunk資安智慧分析平台
Splunk資安智慧分析平台Splunk資安智慧分析平台
Splunk資安智慧分析平台
 
Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控
 
暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1暴走漫画数据挖掘从0到1
暴走漫画数据挖掘从0到1
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
 
Lessons & Use-Cases at Scale - Dr. Pete Stanski
Lessons & Use-Cases at Scale - Dr. Pete StanskiLessons & Use-Cases at Scale - Dr. Pete Stanski
Lessons & Use-Cases at Scale - Dr. Pete Stanski
 
cnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearchcnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearch
 

Similar a 肖康:Storm在实时网络攻击检测和分析的应用与改进

http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile app
im_yunshu
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
n716
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
ahnlabchina
 
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
drewz lin
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
colderboy17
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
ChinaNetCloud
 
分会场四服务器安全防护的意义与价值
分会场四服务器安全防护的意义与价值分会场四服务器安全防护的意义与价值
分会场四服务器安全防护的意义与价值
ITband
 
刘源 人人网服务化与架构变迁V3
刘源 人人网服务化与架构变迁V3刘源 人人网服务化与架构变迁V3
刘源 人人网服务化与架构变迁V3
drewz lin
 
My sql自动化监控
My sql自动化监控My sql自动化监控
My sql自动化监控
thinkinlamp
 
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
drewz lin
 
網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606
Fionsu
 

Similar a 肖康:Storm在实时网络攻击检测和分析的应用与改进 (20)

http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile app
 
金山云查询系统改进之路1
金山云查询系统改进之路1金山云查询系统改进之路1
金山云查询系统改进之路1
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
网站离线数据安全分析漫谈 2012cert
网站离线数据安全分析漫谈 2012cert网站离线数据安全分析漫谈 2012cert
网站离线数据安全分析漫谈 2012cert
 
Streaming platform overview 2014
Streaming platform overview 2014Streaming platform overview 2014
Streaming platform overview 2014
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
 
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
弹性计算云中的DDOS攻击(DDOS in Elastic Compute Cloud)
弹性计算云中的DDOS攻击(DDOS in Elastic Compute Cloud)弹性计算云中的DDOS攻击(DDOS in Elastic Compute Cloud)
弹性计算云中的DDOS攻击(DDOS in Elastic Compute Cloud)
 
Построение гиперболического параболоида
Построение гиперболического параболоидаПостроение гиперболического параболоида
Построение гиперболического параболоида
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
 
分会场四服务器安全防护的意义与价值
分会场四服务器安全防护的意义与价值分会场四服务器安全防护的意义与价值
分会场四服务器安全防护的意义与价值
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
刘源 人人网服务化与架构变迁V3
刘源 人人网服务化与架构变迁V3刘源 人人网服务化与架构变迁V3
刘源 人人网服务化与架构变迁V3
 
My sql自动化监控
My sql自动化监控My sql自动化监控
My sql自动化监控
 
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
 
網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606
 

Más de hdhappy001

袁晓如:大数据时代可视化和可视分析的机遇与挑战
袁晓如:大数据时代可视化和可视分析的机遇与挑战袁晓如:大数据时代可视化和可视分析的机遇与挑战
袁晓如:大数据时代可视化和可视分析的机遇与挑战
hdhappy001
 
薛伟:腾讯广点通——大数据之上的实时精准推荐
薛伟:腾讯广点通——大数据之上的实时精准推荐薛伟:腾讯广点通——大数据之上的实时精准推荐
薛伟:腾讯广点通——大数据之上的实时精准推荐
hdhappy001
 
夏俊鸾:Spark——基于内存的下一代大数据分析框架
夏俊鸾:Spark——基于内存的下一代大数据分析框架夏俊鸾:Spark——基于内存的下一代大数据分析框架
夏俊鸾:Spark——基于内存的下一代大数据分析框架
hdhappy001
 
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
hdhappy001
 
钱卫宁:在线社交媒体分析型查询基准评测初探
钱卫宁:在线社交媒体分析型查询基准评测初探钱卫宁:在线社交媒体分析型查询基准评测初探
钱卫宁:在线社交媒体分析型查询基准评测初探
hdhappy001
 
李战怀:大数据背景下分布式系统的数据一致性策略
李战怀:大数据背景下分布式系统的数据一致性策略李战怀:大数据背景下分布式系统的数据一致性策略
李战怀:大数据背景下分布式系统的数据一致性策略
hdhappy001
 

Más de hdhappy001 (20)

詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems詹剑锋:Big databench—benchmarking big data systems
詹剑锋:Big databench—benchmarking big data systems
 
翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践翟艳堂:腾讯大规模Hadoop集群实践
翟艳堂:腾讯大规模Hadoop集群实践
 
袁晓如:大数据时代可视化和可视分析的机遇与挑战
袁晓如:大数据时代可视化和可视分析的机遇与挑战袁晓如:大数据时代可视化和可视分析的机遇与挑战
袁晓如:大数据时代可视化和可视分析的机遇与挑战
 
俞晨杰:Linked in大数据应用和azkaban
俞晨杰:Linked in大数据应用和azkaban俞晨杰:Linked in大数据应用和azkaban
俞晨杰:Linked in大数据应用和azkaban
 
杨少华:阿里开放数据处理服务
杨少华:阿里开放数据处理服务杨少华:阿里开放数据处理服务
杨少华:阿里开放数据处理服务
 
薛伟:腾讯广点通——大数据之上的实时精准推荐
薛伟:腾讯广点通——大数据之上的实时精准推荐薛伟:腾讯广点通——大数据之上的实时精准推荐
薛伟:腾讯广点通——大数据之上的实时精准推荐
 
徐萌:中国移动大数据应用实践
徐萌:中国移动大数据应用实践徐萌:中国移动大数据应用实践
徐萌:中国移动大数据应用实践
 
肖永红:科研数据应用和共享方面的实践
肖永红:科研数据应用和共享方面的实践肖永红:科研数据应用和共享方面的实践
肖永红:科研数据应用和共享方面的实践
 
夏俊鸾:Spark——基于内存的下一代大数据分析框架
夏俊鸾:Spark——基于内存的下一代大数据分析框架夏俊鸾:Spark——基于内存的下一代大数据分析框架
夏俊鸾:Spark——基于内存的下一代大数据分析框架
 
魏凯:大数据商业利用的政策管制问题
魏凯:大数据商业利用的政策管制问题魏凯:大数据商业利用的政策管制问题
魏凯:大数据商业利用的政策管制问题
 
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎王涛:基于Cloudera impala的非关系型数据库sql执行引擎
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
 
王峰:阿里搜索实时流计算技术
王峰:阿里搜索实时流计算技术王峰:阿里搜索实时流计算技术
王峰:阿里搜索实时流计算技术
 
钱卫宁:在线社交媒体分析型查询基准评测初探
钱卫宁:在线社交媒体分析型查询基准评测初探钱卫宁:在线社交媒体分析型查询基准评测初探
钱卫宁:在线社交媒体分析型查询基准评测初探
 
穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scale穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scale
 
罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群罗李:构建一个跨机房的Hadoop集群
罗李:构建一个跨机房的Hadoop集群
 
刘书良:基于大数据公共云平台的Dsp技术
刘书良:基于大数据公共云平台的Dsp技术刘书良:基于大数据公共云平台的Dsp技术
刘书良:基于大数据公共云平台的Dsp技术
 
刘诚忠:Running cloudera impala on postgre sql
刘诚忠:Running cloudera impala on postgre sql刘诚忠:Running cloudera impala on postgre sql
刘诚忠:Running cloudera impala on postgre sql
 
刘昌钰:阿里大数据应用平台
刘昌钰:阿里大数据应用平台刘昌钰:阿里大数据应用平台
刘昌钰:阿里大数据应用平台
 
李战怀:大数据背景下分布式系统的数据一致性策略
李战怀:大数据背景下分布式系统的数据一致性策略李战怀:大数据背景下分布式系统的数据一致性策略
李战怀:大数据背景下分布式系统的数据一致性策略
 
冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
 

肖康:Storm在实时网络攻击检测和分析的应用与改进