NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。
同NetFlow一样,sFlow是一种向采集器发送报告的推送技术。所不同的是,NetFlow是一种基于软件的技术,而sFlow则采用内置在硬件中的专用芯片。这种做法消除了路由器或交换机的CPU和内存的负担。

Flow名称 代表厂商 主要版本 备注
NetFlow Cisco V1、V5、V7、V8、V9 应用最广
sFlow Foundry、HP、Alcatel、NEC、Extreme等 V4、V5 实时性较强,具备突出的第二~七层信息描述能力
NetStream 华为 V5、V8、V9 与NetFlow较为类似
IPFIX IETF标准规范 RFC 3917 以NetFlow V9为蓝本
CFlowd Juniper V5、V8 厂商跟进力度不高

本文使用ELK协议栈中Filebeat内置的netflow.yml模块,以思科路由器为例,把flow输出到Elasticsearch,并在Kibana中查阅。

安装Filebeat
[root@cncs ~]# yum install filebeat -y
配置开机自启动和开启服务
[root@cncs ~]# systemctl enable filebeat
[root@cncs ~]# systemctl start filebeat
修改Filebeat总体配置

指定Elasticsearch和Kibana参数

[root@cncs ~]# vim /etc/filebeat/filebeat.yml
setup.kibana:
  host: "10.18.224.112:5601"
output.elasticsearch:
  hosts: ["10.18.224.112:9200"]
  # 自定义索引
  indices:
    - index: "filebeat-netflow_%{+yyyy.MM.dd}"
      when.equals:
        event.module: "netflow"
启用netflow模块
[root@cncs ~]# filebeat modules enable netflow
Enabled netflow
[root@cncs ~]# filebeat modules list
Enabled:
netflow

Disabled:
activemq
......
修改netlfow模块的配置

netflow模块配置文件netflow.yml位于/etc/Filebeat/modules.d/目录下

[root@cncs ~]# vim /etc/filebeat/modules.d/netflow.yml
- module: netflow
  log:
    enabled: true
    var:
      netflow_host: 0.0.0.0
      netflow_port: 9996

指定思科netflow输出端口udp/9996

可以用test命令测试配置有没有问题
[root@cncs ~]# filebeat test config
Config OK
防火墙开放
[root@cncs ~]# firewall-cmd --permanent --add-port=9996/udp
[root@cncs ~]# firewall-cmd --reload
[root@cncs ~]# firewall-cmd --list-all
使用setup命令加载Kibana dashboards
[root@cncs ~]# filebeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
Loaded machine learning job configurations
Loaded Ingest pipelines
[root@cncs ~]#  service filebeat restart
Restarting filebeat (via systemctl):                       [  OK  ]
Kibana网页端初步设置