ELK Stack 8 接入ElasticFlow

介绍

Netflow v5 / v9 / v10(IPFIX),支持大部分网络厂商及VMware的分布式交换机。

NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。而IPFIX是Netflow v9的开放标准实现。

同NetFlow一样,sFlow是一种向采集器发送报告的推送技术。所不同的是,NetFlow是一种基于软件的技术,而sFlow则采用内置在硬件中的专用芯片,这种做法消除了路由器或交换机的CPU和内存的负担,但也牺牲了灵活性。

本教程修改了ElasticFlow 4版本,以支持 Elasticsearch 8 ,还更新了Logstash 7到最新版本,Geo IP/AS地址库到最新版本。

已在Elasticsearch 8.13上测试过

单机部署教程:https://songxwn.com/elk/

ELK系列文章:https://songxwn.com/categories/linux/ELK/

注:多谢袖子Seven 大佬提供的Kibana 模板和帮助。

各种Flow 类型

Flow名称代表厂商主要版本备注
NetFlowCiscoV1、V5、V7、V8、V9应用最广
sFlowFoundry、HP、Alcatel、NEC、Extreme等V4、V5实时性较强,具备突出的第二~七层信息描述能力。对设备性能开销低。
NetStream华为、华三V5、V8、V9与NetFlow较为类似
IPFIXIETF标准规范RFC 3917以NetFlow V9为蓝本,公共标准协议
CFlowdJuniperV5、V8厂商跟进力度不高

ElasticFlow

ElasticFlow 是基于Logstash 7的修改版本,支持Netflow、IPfix、Sflow,自带模板。但目前已闭源。

注意事项

  • Docker网络使用主机模式,占用 2055、6343、4739端口。

  • 本文章适用于接入现有的ES 8数据库。

使用Docker-compose部署

cd /opt
git clone https://github.com/Songxwn/elastiflow.git
# 下载配置文件
cd /opt/elastiflow
vim docker-compose.yml
# 修改配置文件,更改ES地址,账号、密码。
docker-compose pull
# 加载镜像
docker-compose up -d
# 启动镜像,静等几分钟。
ss -an | grep 2055
ss -an | grep 6343
ss -an | grep 4739
# 确认服务已启动。
配置文件示例
version: '3'
services:elastiflow-logstash:image: songxwn/elastiflow-logstash:4.8.12container_name: elastiflow-logstashrestart: 'unless-stopped'network_mode: hostenvironment:# JVM Heap size - this MUST be at least 3GB (4GB preferred)LS_JAVA_OPTS: '-Xms4g -Xmx4g'# ElastiFlow global configurationELASTIFLOW_AGENT_ID: elastiflowELASTIFLOW_GEOIP_CACHE_SIZE: 16384ELASTIFLOW_GEOIP_LOOKUP: 'true'ELASTIFLOW_ASN_LOOKUP: 'true'ELASTIFLOW_OUI_LOOKUP: 'false'ELASTIFLOW_POPULATE_LOGS: 'true'ELASTIFLOW_KEEP_ORIG_DATA: 'true'ELASTIFLOW_DEFAULT_APPID_SRCTYPE: '__UNKNOWN'# Name resolution optionELASTIFLOW_RESOLVE_IP2HOST: 'false'ELASTIFLOW_NAMESERVER: '127.0.0.1'ELASTIFLOW_DNS_HIT_CACHE_SIZE: 25000ELASTIFLOW_DNS_HIT_CACHE_TTL: 900ELASTIFLOW_DNS_FAILED_CACHE_SIZE: 75000ELASTIFLOW_DNS_FAILED_CACHE_TTL: 3600ELASTIFLOW_ES_HOST: 'http://127.0.0.1:9200'#ELASTIFLOW_ES_USER: 'elastic'#ELASTIFLOW_ES_PASSWD: 'changeme'ELASTIFLOW_NETFLOW_IPV4_PORT: 2055ELASTIFLOW_NETFLOW_UDP_WORKERS: 2ELASTIFLOW_NETFLOW_UDP_QUEUE_SIZE: 4096ELASTIFLOW_NETFLOW_UDP_RCV_BUFF: 33554432ELASTIFLOW_SFLOW_IPV4_PORT: 6343ELASTIFLOW_SFLOW_UDP_WORKERS: 2ELASTIFLOW_SFLOW_UDP_QUEUE_SIZE: 4096ELASTIFLOW_SFLOW_UDP_RCV_BUFF: 33554432ELASTIFLOW_IPFIX_UDP_IPV4_PORT: 4739ELASTIFLOW_IPFIX_UDP_WORKERS: 2ELASTIFLOW_IPFIX_UDP_QUEUE_SIZE: 4096ELASTIFLOW_IPFIX_UDP_RCV_BUFF: 33554432
  • ELASTIFLOW_ES_HOST 需要修改。

  • ELASTIFLOW_ES_USER 需要修改,如果无认证,则不需要取消注释。

  • ELASTIFLOW_ES_PASSWD 需要修改,如果无认证,则不需要取消注释。

索引模板创建

需要打开Kibana Web,在主菜单-Stack Management -开发工具执行。

PUT _index_template/template_
{"template": {"mappings": {"properties": {"client": {"type": "object","properties": {"geo": {"type": "object","properties": {"location": {"type": "geo_point"}}}}},"server": {"type": "object","properties": {"geo": {"type": "object","properties": {"location": {"type": "geo_point"}}}}}}}},"index_patterns": ["elastiflow-*"],"allow_auto_create": true
}

Kibana 模板导入

模板下载:https://songxwn.com/file/elastiflow4.kibana.8.x.ndjson

需要打开Kibana Web,在主菜单-Stack Management -已保存对象导入。

交换机Sflow配置实例

Juniper

protocols sflow {polling-interval 20;sample-rate 1000;collector 10.204.32.46;interfaces ge-0/0/0.0;
}

MikroTik ROS 配置IPFIX

/ip traffic-flow
set cache-entries=1M enabled=yes interfaces=ether2
/ip traffic-flow target
add dst-address=2.2.2.2 src-address=1.1.1.1 v9-template-refresh=15 version=ipfix

ELK 自带插件-可不看

Logstash 自带配置示例

input {udp {port  => 2055codec => netflow}
}

Filebeat 配置示例

- module: netflowlog:enabled: truevar:netflow_host: 0.0.0.0netflow_port: 2055
[root@cncs ~]# filebeat modules enable netflow
Enabled netflow
[root@cncs ~]# filebeat modules list
Enabled:
netflow
Disabled:
activemq
......

参考

https://www.elastic.co/guide/en/logstash/current/plugins-codecs-netflow.html

https://www.elastic.co/guide/en/beats/filebeat/8.7/filebeat-module-netflow.html

https://www.eflytop.com/post/elk-netflow/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是红队?

美国国家安全数据遭到攻击数据泄露数据检测和响应:增强威胁情报和事件响应美国国际开发署进行的全球互联网审查人工智能战争的杀戮问题 微信搜索关注公众号:网络研究观,了解获取更多信息。 红队由安全专业人员组成,他们充当克服网…

Linux 第十八章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

React 之 Suspense

Suspense Suspense 组件我们并不陌生,中文名可以理解为暂停or悬停 , 在 React16 中我们通常在路由懒加载中配合 Lazy 组件一起使用 ,当然这也是官方早起版本推荐的唯一用法。 那它暂停了什么? 进行异步网络请求,然后再拿到请求…

瑞_23种设计模式_解释器模式

文章目录 1 解释器模式(Interpreter Pattern)1.1 介绍1.2 概述1.2.1 文法(语法)规则1.2.2 抽象语法树 1.3 解释器模式的结构1.4 解释器模式的优缺点1.5 解释器模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代…

STM32 DMA直接存储器存取

单片机学习! 目录 文章目录 前言 一、DMA简介 1.1 DMA是什么 1.2 DMA作用 1.3 DMA通道 1.4 软硬件触发 1.5 芯片资源 二、存储器映像 2.1 存储器 2.2 STM32存储器 三、DMA框图 3.1 内核与存储器 3.2 寄存器 3.3 DMA数据转运 3.4 DMA总线作用 3.5 DMA请求 3.6 DMA结构…

上位机图像处理和嵌入式模块部署(树莓派4b读写json数据)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,ini文件是用来进行配置的,数据库是用来进行数据存储的。那json是用来做什么的呢,json一般是用来做…

【JavaEE】线程的概念

文章目录 1、什么是线程2、进程和线程的区别3、多线程的概述4、在Java中实现多线程的方法1.继承Thread类2.实现Runnable接口3.使用匿名内部类来继承Thread类,实现run方法4.使用匿名内部类来实现Runnable接口,实现run方法5.使用 lambda表达式 1、什么是线…

【R语言数据分析】数据类型与数据结构

目录 对数据框的基本操作 创建矩阵 列表 字符串 日期变量与时间变量 缺失值NA 缺失值NA的处理 重新编码 R的数据类型有数值型num,字符型chr,逻辑型logi等等。 R最常处理的数据结构是:向量,数据框,矩阵&#x…

JAVA第二周学习笔记

文章目录 JAVA第二周学习笔记IDEA方法格式带参数及返回值的方法方法的重载方法的内存 二维数组静态初始化动态初始化 面向对象类和对象如何定义类如何得到对象注意 封装封装的优点private关键字成员变量和局部变量 this关键字构造方法作用类型特点执行时机定义重载 标准javabea…

neo4j 的插入速度为什么越来越慢,可能是使用了过多图谱查询操作

文章目录 背景描述分析解决代码参考neo4j 工具类Neo4jDriver知识图谱构建效果GuihuaNeo4jClass 背景描述 使用 tqdm 显示,处理的速度; 笔者使用 py2neo库,调用 neo4j 的API 完成节点插入; 有80万条数据需要插入到neo4j图数据中&am…

FANUC机器人SOCKET断开KAREL程序编写

一、添加一个.KL文件创建编辑断开指令 添加一个KL文件用来创建karel程序中socket断开指令 二、断开连接程序karel代码 PROGRAM SOC_DIS %COMMENT SOCKET断开 %INCLUDE klevccdf VAR str_input,str_val : STRING[20] status,data_type,int_val : INTEGER rel_val : REALBEGING…

【氮化镓】GaN器件在航天器高可靠正向转换器中应用

文章是发表在《IEEE Journal of Emerging and Selected Topics in Power Electronics》2022年10月第10卷第5期上的一篇关于GaN(氮化镓)器件在航天器高可靠性正向转换器中应用的研究。文章的作者是匹兹堡大学电气与计算机工程系的Aidan Phillips, Thomas Cook和Brandon M. Gra…

Android AOSP探索之Ubantu下Toolbox的安装

文章目录 概述安装Toolbox解决运行的问题 概述 由于最近需要进军android的framework,所以需要工具的支持,之前听说江湖上都流传source insight,我去弄了一个破解版,功能确实强大,但是作为多年android开发的我习惯使用android studio。虽然使…

linux 光驱(光盘)安装

文章目录 自带 YUM 库创建 repo创建文件夹挂载光驱开机自启动挂载安装软件YUM 安装RPM 安装 自带 YUM 库 ls /etc/yum.repos.d创建 repo vim /etc/yum.repo.d/demo.repo // 编写 repo 相关配置 [demo] namedemo baseurlfile:///mnt/cdrom gpkcheck0创建文件夹挂载光驱 /dev/…

【沉淀之华】从0到1实现用户推荐 - 实时特征系统构建,包含特征计算,特征存储,特征查询,特征补偿超详细思路分享

文章目录 背景介绍设计初衷基本概念 技术架构"四高"特征存储特征计算特征查询特征补偿 技术难点Q&A彩蛋 背景介绍 设计初衷 作为用户推荐系统的支撑系统之一:用户实时特征系统有着举足轻重的重要,甚至说它是一起推荐行为触发的必要条件。…

c#word文档:3.向Word文档中插入表格/4.读取Word文档中表格

--向Word文档中插入表格-- (1)在OfficeOperator项目的WordOperator类中定义向Word文档插入换页的函数NewPage (2)在WordOperator类中定义向Word文档插入表格的函数InsertTable using Microsoft.Office.Interop.Word;// 引入Mic…

探索APP内测分发的全过程(APP开发)

什么是APP内测分发探索APP内测分发的全过程? APP内测分发是在应用程序开发过程中探索APP内测分发的全过程,开发者将应用程序的测试版或预发布版分发给特定用户进行测试、反馈和评估的一种方式。这是一个非常重要的环节,可以有效地提高应用的…

详解SDRAM基本原理以及FPGA实现读写控制

文章目录 一、SDRAM简介二、SDRAM存取结构以及原理2.1 BANK以及存储单元结构2.2 功能框图2.3 SDRAM速度等级以及容量计算 三、SDRAM操作命令3.1 禁止命令: 4b1xxx3.2 空操作命令:4b01113.3 激活命令:4b00113.4 读命令:4b01013.5 写…

mac如何打开exe文件?如何mac运行exe文件 如何在Mac上打开/修复/恢复DMG文件

在macOS系统中,无法直接运行Windows系统中的.exe文件,因为macOS和Windows使用的是不同的操作系统。然而,有时我们仍然需要运行.exe文件,比如某些软件只有Windows版本,或者我们需要在macOS系统中运行Windows程序。 虽然…

如何安全的使用密码登录账号(在不知道密码的情况下)

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入账号密码模块,如图 2、看到鼠标移动到密码那一栏有提示,按住Ctrl或者Alt点击或者双击就能复制内容&…