嘉宾介绍
韩军辉 上海安畅运维专家
热衷于开源技术的学习和研究,从事多年的ELK运维相关工作,对ELK Stack有深入研究,对ELK相关运维有丰富的经验。
数据中心流量分析的挑战
早期的时候安畅网络是做IDC的,当时我们有13个数据中心和两个公共云的节点,出口带宽大概在200G左右。
我们当时面临的困难是告警信息无法给出明确的攻击情况。我们只能是收到DDOS告警,然后通知机房现场,或者是运维工程师来手动的用抓包分析。这样以来,定位时间不可控,如果DDOS直接把机房的流量打死,或者机房直接瘫痪,这对客户的业务影响是不可估量的。所以当时我们就想能不能当DDOS攻击来临的时候,直接快速的分析出是哪个IP被攻击了,来源IP是什么,这样直接可以指到黑洞或者封堵,比较大的时候通知运营商进行封堵,这样可以减少最小的影响范围。
基于ELK的流量分析技术架构
每个数据中心核心或者路由器配置SFlow收集数据,然后经过sflowtool这个工具进入logstash。输出分为离线和在线两路。在线部分输入ES集群,最后经过Kibana展示。离线部分输出到kafka集群,然后进入Spark Streaming计算,通过算法生成告警。
流量全景分析和告警
下面是其中一个数据中心的流量全景图。
这边大家可以看到,就是这个电信入口,它TOP10的客户,而且后面可能是没有展现出来,它可以带到比较高的流量IP,可以跟电信入口或者联通入口,当DDOS攻击来的时候肯定是某个IP破坏量特别的高,而且从ES搜索路径是可以看到是哪个IP被攻击了,来源IP是什么。这个是我们当时根据我们公司自己业务从流量分析里面抓出来我们自己属于我们公司业务自己内部的一些流量,最上面的是我们这个流量的趋势图,还有下面的协议分布,或者是我们公司业务哪一些地区访问的最多,还能进行高德地图判断出这个流量客户的热点图等。
DDOS告警大屏
DDOS攻击来的时候,我们是通过FLOW数据发送到Logstash然后再进ES。如果这个数据只用来展示的话是不够用的,我们想做一个告警。数据从FLOW发过以后,然后进入Logstash,最后再进入kafka消息队列,最后再进入大数据计算平台,通过一定的算法来判断。比如说长沙有一个数据中心,哪一个客户,哪一个IP被攻击了都可以显示出来的。
关键配置
核心交换机的主要配置,如下图所示。上面有一个Agent Address,用于标识哪一个数据中心的IP,过滤的时候就可以知道是哪一个IP。然后下面Collector里面有两个Address,一个是进入ES的,另一个是进入kafka的。
接下来配置端口,最主要的配置是Flow Rate,这个比率大概是256或者8192都是可以的,具体值取决于交换机。这里采取512比率,也就是每512个包抓取一个包。当然这个值小的话,交换机压力会比较大,而且进入ES的数据量也会倍增。下面部分这个是IP地址和客户的关系表。这个关系表是我们从CRM系统导入Logstash的,大概是2个小时同步一次。
配置logstash的input插件,通过UDP端口,从sflowtoot抓出每个数据中心的数据。进入logstash后,通过grok插件来结构化需要分析的数据。同时使用了两个translate插件,用来分析协议和转换数据格式。
阿里云MVP介绍
阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云技术的意见领袖。点击了解更多产品信息
阿里云 MVP Meetup 第5期活动视频回顾。点击观看
加入钉钉技术讨论群
阿里云Elasticsearch已正式发布啦,Elastic开源官方联合开发,集成5.5商业版本XPack功能,欢迎开通使用。
点击了解更多产品信息