mod_sflow 轻量、实时的流量分析 Apache 模块

简介: sFlow 是一种网络流量分析的协议。通过流量分析,可以实现更有效地监控网络的状况。例如,最近爆出的OpenSSL心脏出血漏洞,由于是通过 OpenSSL 漏洞直接读取内存信息,而不是直接入侵系统,因此服务器日志上不会有相关的记录,使用常规手段难以难以追查。但是,由于来回通信包的长度等特征非常明显,因此利用sFlow之类的技术分析流量特征,就可以追溯攻击流量和攻击历史。特别是,这次的 OpenSSL 漏洞可以无限制反复利用,这既方便了攻击者,不用依靠精妙的技巧来操控读取地址,反复读取即可获得大量内存片段,另一方面也使攻击行为更容易被侦测到。

mod_sflow是一个基于 Apache 的轻量、持续、实时的 sFlow 模块。

image.png

什么是 sFlow

sFlow 是一种网络流量分析的协议。通过流量分析,可以实现更有效地监控网络的状况。例如,最近爆出的OpenSSL心脏出血漏洞,由于是通过 OpenSSL 漏洞直接读取内存信息,而不是直接入侵系统,因此服务器日志上不会有相关的记录,使用常规手段难以难以追查。但是,由于来回通信包的长度等特征非常明显,因此利用sFlow之类的技术分析流量特征,就可以追溯攻击流量和攻击历史。特别是,这次的 OpenSSL 漏洞可以无限制反复利用,这既方便了攻击者,不用依靠精妙的技巧来操控读取地址,反复读取即可获得大量内存片段,另一方面也使攻击行为更容易被侦测到。


目前已有大量设备支持sFlow协议。sFlow协议的以下特性使其非常适合监测大流量传输的网络:


  • 使用内置在硬件中的专用芯片,减轻路由器或交换机的CPU、内存负担。
  • 通过分布在网络不同位置的 sFlow agent 将数据传送给中央 sFlow 采集器,由中央采集器进行分析。
  • 使用采样分析技术。大部分的包被丢弃,只留下样本被传送给采集器。sFlow 协议也支持 1:1 的采样,也就是收集每个包的信息。只不过具体的芯片实现的最大采样率有所不同。


mod_sflow 就是一个开源的 sFlow 中央采集器,可以实时分析收到的 sFlow 数据。


安装

编译安装此模块于 Apache 的模块目录,同时在 apache httpd.conf 目录中添加此项:

rm -f `apxs -q LIBEXECDIR`/mod_sflow.so

apxs -c -i -a mod_sflow.c sflow_api.c

重启 Apache 服务:

apachectl restart

注意,rm -f那一步很重要。这是 Apache #47951 问题的临时解决方案。


配置

mod_sflow 会读取 /etc/hsflowd.auto的信息。这个文件会在你运行hsflowd服务时自动生成。

你也可以在httpd.conf../httpd/conf.d/sflow.conf 中配置:

<IfModule mod_sflow.c>

     <Location /sflow>

       SetHandler sflow

     </Location>

</IfModule>

重启 Apache 后,你可以访问 http://<server>/sflow/ 来查看状态:

counter method_option_count 0

counter method_get_count 34

counter method_head_count 0

counter method_post_count 0

counter method_put_count 0

counter method_delete_count 0

counter method_trace_count 0

counter method_connect_count 0

counter method_other_count 0

counter status_1XX_count 0

counter status_2XX_count 17

counter status_3XX_count 0

counter status_4XX_count 17

counter status_5XX_count 0

counter status_other_count 0

string hostname 10.0.0.119

gauge sampling_n 400


输出

mod_sflow 的会在 UDP 端口输出内容。你可以使用支持 sFlow 协议的工具查看,例如,免费软件 sflowtool

sflowtool的会输出类似如下的内容:

startDatagram =================================

   datagramSourceIP10.0.0.150

   datagramSize192

   unixSecondsUTC1294168545

   datagramVersion5

   agentSubId32576

   agent10.0.0.150

   packetSequenceNo7

   sysUpTime25000

   samplesInPacket1

   startSample ----------------------

   sampleType_tag0:1

   sampleType FLOWSAMPLE

   sampleSequenceNo1

   sourceId3:65537

   meanSkipCount400

   samplePool124

   dropEvents0

   inputPort0

   outputPort1073741823

   flowBlock_tag0:2100

   extendedType socket4

   socket4_ip_protocol6

   socket4_local_ip10.0.0.150

   socket4_remote_ip10.0.0.70

   socket4_local_port80

相关文章
|
6月前
|
存储 Apache
Apache Hudi Savepoint实现分析
Apache Hudi Savepoint实现分析
113 0
|
3月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
217 2
|
13天前
|
监控 负载均衡 API
Apache Apisix轻松打造亿级流量Api网关
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上行、灰度发布、熔断、鉴权、可观测等丰富的流量管理功能。适用于处理传统南北向流量、服务间东西向流量及 k8s 入口控制。Airflow 是一个可编程、调度和监控的工作流平台,基于有向无环图 (DAG) 定义和执行任务,提供丰富的命令行工具和 Web 管理界面,方便系统运维和管理。
Apache Apisix轻松打造亿级流量Api网关
|
13天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
14天前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
2月前
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
1月前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
32 2
|
6月前
|
Apache
Apache Hudi Rollback实现分析
Apache Hudi Rollback实现分析
93 0
|
1月前
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
52 1
|
1月前
|
消息中间件 druid Kafka
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
72 0

推荐镜像

更多