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 procinfo命令教程:如何查看和理解系统信息(附案例详解和注意事项)

Linux procinfo命令介绍 procinfo(process information)是一个简单的命令行工具,用于查看从/proc目录收集的系统信息,并将其美观地格式化输出到标准输出设备。 Linux procinfo命令适用的Linux版本 procinfo命令在大多数Linux发…

Linux 第十八章

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

React 之 Suspense

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

2024-05-02 问AI: 介绍一下IMDB数据集

文心一言 IMDB数据集是一个在自然语言处理(NLP)和机器学习领域广泛使用的数据集,主要用于文本情感分析任务。以下是对IMDB数据集的详细介绍: 数据来源:IMDB数据集来源于全球最大的电影资料库和评分网站——Internet …

CentOS 7 SSH 升级修复漏洞操作文档

CentOS 7 最新版(CentOS 7.9 2009) 默认 OpenSSH 版本为 7.4p1,OpenSSH 9.3p2 之前版本存在安全漏洞,需升级 OpenSSH 到安全版本避免漏洞。 本文将介绍 OpenSSH 升级到 9.7p1 版本,依赖的 OpenSSL 版本升级到 1.1.1 版…

基于EBAZ4205矿板的图像处理:01简介

基于EBAZ4205矿板的图像处理:01简介 flag 最近入手了性价比超强的ebaz矿板,决定把之前掌握的知识融汇贯通,将各种图像处理算法部署其中,专门写这个帖子,也是想激励自己,所以,在此立贴为证&…

瑞_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…

MySQL如何设计库表结构

一、引言 在设计数据库时,表结构的设计是至关重要的。合理的表结构设计不仅可以提高数据库的性能,还可以使数据更加清晰、易于维护。MySQL作为一种流行的关系型数据库管理系统,其表结构设计也遵循一定的原则和最佳实践。本文将介绍MySQL表结…

JAVA第二周学习笔记

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

docker-compose 网络

自定义网络 - HOST 与宿主机共享网络 version: "3" services:web:image: nginx:1.21.6restart: alwaysports:- 80:80network_mode: host自定义网络 - 固定ip version: "3" services:web:image: nginx:1.21.6restart: alwaysports:- 80:80networks:app&am…

目标检测YOLO实战应用案例100讲-基于FPGA的目标检测硬件加速技术及其应用研究(下)

目录 基于异构FPGA的硬件加速器设计及优化 3.1 硬件平台 3.2 系统架构设计

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

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

企微SCRM:私域流量的高效管理与转化工具

在数字化营销时代,企业微信SCRM(Social Customer Relationship Management,社会化客户关系管理)系统正逐渐成为企业私域流量运营的核心工具。它集客户管理、营销自动化、数据分析等功能于一身,助力企业实现客户关系的精…

C语言中的指针常量和常量指针

指针常量和常量指针是C/C编程语言中两个重要的概念,它们都与指针有关,但具有不同的含义和用途。 1. 指针常量(Pointer to Constant) 指针常量指的是一个指针的值(即它所指向的地址)在初始化之后不能再被改…

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…