网络大数据分析 -- 使用 ElasticSearch + LogStash + Kibana 来可视化网络流量

本文介绍了如何利用ELK套装(ElasticSearch、LogStash、Kibana)配合NetFlow或sFlow协议,实现网络流量的实时可视化。详细讲述了ELK的安装配置过程,包括ElasticSearch的安装、LogStash的配置以及Kibana的启动。此外,还展示了如何通过Docker生成流量,以及使用Kibana创建可视化模板来监控网络流量。
摘要由CSDN通过智能技术生成

简介

ELK 套装包括 ElasticSearch、LogStash 和 Kibana。 其中,ElasticSearch 是一个数据搜索引擎(基于 Apache Lucene)+分布式 NoSQL 数据库;LogStash 是一个消息采集转换器,类似 Syslog,可以接收包括日志消息在内的多种数据格式,然后进行格式转换,发送给后端继续处理;Kibana 是一个 Web 前段,带有强大的数据分析、整理和可视化功能。

是不是听起来就觉得十分强大!

一般情况下,ELK 套装的工作流程为 原始数据 -> LogStash -> ElasticSearch -> Kibana

网络流量信息采集协议常见包括 sFlow 和 NetFlow,两种协议都支持采集需要的网络信息,发送到指定的采集器(例如 netflow-analyzersFlowTrend 和 softflowd)。其中,sFlow 一般基于采样,NetFlow 则可以基于所有网包信息获取更为精确的信息。

这里展示如何使用 ELK 套装 + NetFlow 来实时可视化网络流量,基于 sFlow 的操作是类似的,也给出了关键步骤。

安装 ELK 套装

快速体验

觉得下面的本地安装过程太复杂的,可以直接从 https://github.com/yeasy/docker-compose-files/tree/master/elk_netflow 下载 docker-compose 模板,一键部署并启动。

$ sudo mkdir -p /opt/data/elasticsearch/
$ git clone https://github.com/yeasy/docker-compose-files.git && cd elk_netflow
$ docker-compose up

启动后,logstash 将监听本地 2055 端口过来的 netflow 消息;kibana 监听在 5601 端口;elasticsearch 监听在 9200 端口。

安装 ElasticSearch

步骤参考 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html。可以选择源码编译或安装包安装。

安装和启动服务

以 CentOS 下使用安装包为例,首先添加证书。

$ rpm --import https://packages.elasticsearch.org/GPG-KEY-elasticsearch

添加源文件 /etc/yum.repos.d/elasticsearch.repo,内容为

[elasticsearch-1.4]
name=Elasticsearch repository for 1.4.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.4/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

执行安装命令

$ yum update; yum install -y elasticsearch

如果开启了 iptables,需要打开相关的端口。

-A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 9200:9400 -j ACCEPT
-A INPUT -m pkttype --pkt-type multicast -j ACCEPT

启动 elasticsearch 服务,默认监听在 9200 端口。

$ /etc/init.d/elasticsearch restart

配置 elasticsearch 服务随系统自动启动

$ chkconfig --add elasticsearch

此时,查询本地 9200 端口,会获取类似下面的反馈信息,表示服务启动成功。

$ curl -XGet localhost:9200
{
   
  "status" : 200,
  "name" : "Thunderball",
  "cluster_name" : "elasticsearch",
  "version" : {
   
    "number" : "1.4.4",
    "build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512",
    "build_timestamp" : "2015-02-19T13:05:36Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.3"
  },
  "tagline" : "You Know, for Search"
}

配置文件在 /etc/elasticsearch/elasticsearch.yml,选项不是特别多,有详细的注释说明。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值