内容简介:NetFLOW / sFLOW 流量报告:FastNetMon + InfluxDB + Grafana
最近稍微有点时间折腾了下 Cisco 的三层交换,尝试搭建了一套数据中心用的流量统计/监控/报告系统。过程不是很复杂,但是也只算利用了一套高级软件组合的一点点功能。之后打算继续研究更多的功能实现,不过也要看有没有时间了…
准备工作
首先确认出口路由设备支持 netflow/sflow 的对应版本。一般 Cisco 的路由器或者三层交换都是支持的。
然后准备一个常见的 Linux 系统,虚拟机或者物理机都可以。
出口路由设备能够连通到该 Linux 系统,并且 flow collector 设置到该 Linux 系统的 IP 地址和对应端口。
FastNetMon
安装 fastnetmon,只需要一条简单的脚本命令。
然后将所有要监控的网段加入 /etc/networks_list
。一行一个,例如:
10.1.0.0/16 192.168.254.0/24 8.8.0.0/16
按照安装文档打开两个终端,分别启动主进程和客户端
/opt/fastnetmon/fastnetmon
/opt/fastnetmon/fastnetmon_client
如果没有问题,应该在客户端上可以看到收到的 flow 数据。
先关闭 fastnetmon 进程,修改配置文件打开 Graphite 支持:
graphite = on graphite_host = 127.0.0.1 graphite_port = 2003 graphite_prefix = fastnetmon
InfluxDB
安装 InfluxDB,官方提供了各种包管理器的安装方式。
配置文件一般位于 /etc/influxdb/influxdb.conf
,需要根据环境做安全相关设置(侦听地址、端口、鉴权、etc)并打开 Graphite Simulation
[[graphite]] enabled = true bind-address = "127.0.0.1:2003" database = "flow_dc1" protocol = "tcp" consistency-level = "one" name-separator = "." # batch-size / batch-timeout requires InfluxDB >= 0.9.3 batch-size = 5000 # will flush if this many points get buffered batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit templates = [ "fastnetmon.hosts.* app.measurement.cidr.direction.function.resource", "fastnetmon.networks.* app.measurement.cidr.direction.resource", "fastnetmon.total.* app.measurement.direction.resource" ]
顺序重启 InfluxDB 和 fastnetmon。检查 flow 数据是否记录到 InfluxDB:
$ influx Connected to http://localhost:8086 version 1.2.4 InfluxDB shell version: 1.2.4 > use flow_dc1 Using database flow_dc1 > select mean(value) from networks where direction = 'incoming' and resource = 'bps' group by * name: networks tags: app=fastnetmon, cidr=10_1_0_0_24, direction=incoming, resource=bps time mean ---- ---- 0 4735.049632696411
Grafana
Grafana 是一款非常强大且易用的数据可视化工具。 安装 Grafana 然后修改配置文件的必要部分,配置文件一般位于 /etc/grafana/grafana.ini
。
完成后重启 Grafana,将浏览器指向 Grafana 的 HTTP 服务器地址即可看到登录界面。如果内部使用的话,建议关闭匿名访问和注册功能。
使用默认的 admin
/ admin
登录,按照引导完成配置、添加数据源(Data source),数据源即是 InfluxDB 的 HTTP API 地址。如果 Grafana 中限制了数据源白名单,需要将 InfluxDB 的 HTTP API 地址和端口加到白名单里。
添加面板、Graph,在 Graph 编辑模式里写入类似这样的查询语句:
SELECT mean("value") FROM "networks" WHERE "direction" = 'incoming' AND "resource" = 'bps' AND "cidr" =~ /^10_1_0_0_16/ AND $timeFilter GROUP BY time($interval) fill(previous)
即可看到有图表出现。根据需求完善查询语句和图表配置即可简单实现各种可视化效果。例如流量和数据包的实时报告:
总结
通过配合 FastNetMon,InfluxDB 和 Grafana 即可快速实现一套基于 NetFLOW / sFLOW 的流量统计报告系统。但是 FastNetMon 的功能远不止流量统计,Grafana 也有大量插件和灵活的用法可以满足更多需求。如果配置合理,此方案也可适用于 40Gbps+ 接入的中型数据中心且成本低廉。以及——
- InfluxDB 真的很快!
- Grafana 的图表真的很省资源!
- Chronograph 卡死了我的浏览器!(i7-7700K / Chrome)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 云安全 报告显示:流量型攻击依旧是企业梦魇
- 安全报告 | 从恶意流量看2018十大互联网安全趋势
- 科普:什么是上行流量什么是下行流量
- 混淆加密流量规避检测:黑客利用加密流量趋势明显
- 还为模拟流量测试发愁吗?!滴滴开源RDebug流量回放工具!
- 利用最新Flash漏洞,通过“流量宝”对流量从业者的攻击活动
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
顺势而为--雷军传
采文 / 哈尔滨出版社 / 2014-9 / 29.80
主要介绍了雷军上大学开始创业到加入金山再到成为天使投资人一直最后创立小米公司的过程,以及他的“站在风口的猪”等个人名言思想的涉及。一起来看看 《顺势而为--雷军传》 这本书的介绍吧!