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.rhkb.cn/news/319754.html

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

相关文章

Git系列:config 配置

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Flutter笔记:Widgets Easier组件库(3)使用按钮组件

Flutter笔记 Widgets Easier组件库(3):使用按钮组件 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddre…

xLua背包实践

准备工作 环境,代码 在C#代码方面我们需要准备单例模式基类,AB包管理器,lua解析器管理器 详情请见AB包管理器 xlua详解 然后是Xlua包和AB包,具体导入方法也在上面的链接中 然后是lua的三个文件 具体代码: JsonUtil…

使用Python爬取淘宝商品并做数据分析

使用Python爬取淘宝商品并做数据分析,可以按照以下步骤进行操作: 确定需求:确定要爬取的淘宝商品的种类、数量、关键词等信息。 编写爬虫程序:使用Python编写爬虫程序,通过模拟浏览器请求,获取淘宝商品的页…

idm线程怎么设置 idm线程数怎么上不去 idm免安装

IDM(Internet Download Manager)是一款流行的下载管理软件,IDM采用高级的多线程下载技术,可以将下载文件分成多个部分同时下载,从而提高下载速度,它因高效的下载速度和丰富的功能而受到用户的喜爱。接下来&…

基于FPGA的数字信号处理(5)--Signed的本质和作用

前言 Verilog中的signed是一个很多人用不好,或者说不太愿意用的一个语法。因为不熟悉它的机制,所以经常会导致运算结果莫名奇妙地出错。其实了解了signed以后,很多时候用起来还是挺方便的。 signed的使用方法主要有两种,其中一种…

idm下载速度慢解决办法 idm批量下载怎么用 idm优化下载速度 Internet Download Manager解决下载速度慢的方法教程

IDM (Internet Download Manager)是一款兼容性大,支持多种语言的下载管理软件,它可以自动检测并下载网页上的内容,这正是这一优点,使得它受到了广大用户的喜爱。但是在下载的过程中,我们会遇到idm下载速度慢怎么回事&a…

【设计模式】13、template 模板模式

文章目录 十三、template 模板模式13.1 ppl13.1.1 目录层级13.1.2 ppl_test.go13.1.3 ppl.go13.1.4 llm_ppl.go13.1.5 ocr_ppl.go 十三、template 模板模式 https://refactoringguru.cn/design-patterns/template-method 如果是一套标准流程, 但有多种实现, 可以用 template …

江湖有法受邀参加第四届中国创始人IP生态大会

四月的杭城春意盎然、微风轻拂,到处洋溢着一派欣欣向荣、百花争艳的美好景象。2024 年 4 月 27 日下午 1:30,备受瞩目的第四届中国创始人 IP 生态大会在杭州华礼宴国际礼宴中心盛大开幕。本次大会由“大咖会”主办,以“打造一个圈层,影响一座城”为主题,吸引了众多行业大咖齐聚…

ROS2学习——Docker环境下安装于使用(1)

目录 一、简要 二、ROS2和ROS1区别 三、环境搭建与安装 (2)拉取ubuntu22.04镜像 (2)安装ROS2 1. 基本设置 2.设置源 3.安装ROS2功能包 4.测试 四、相关指令学习 1.小海龟测试 2.ros2 node等指令 3.rqt 一、简要 随着R…

API安全

一,什么是API API指的是应用程序编程接口(Application Programming Interface),是一组定义了软件组件如何相互交互的规范。通过API,不同的软件可以相互通信和交换数据,实现不同软件之间的集成和互操作。 …

compose调用系统分享功能分享图片文件

compose调用系统分享功能图片文件 简介UI界面提供给外部程序的文件访问权限创建FileProvider设置共享文件夹 通用分享工具虚拟机验证结果参考 本系列用于新人安卓基础入门学习笔记,有任何不同的见解欢迎留言 运行环境 jdk17 andriod 34 compose material3 简介 本案…

线性数据结构-手写队列-哈希(散列)Hash

什么是hash散列? 哈希表的存在是为了解决能通过O(1)时间复杂度直接索引到指定元素。这是什么意思呢?通过我们使用数组存放元素,都是按照顺序存放的,当需要获取某个元素的时候,则需要对数组进行遍历,获取到指…

ton-http-api安装部署

1、拉取github代码 mkdir /data git clone https://github.com/toncenter/ton-http-api.git cd ton-http-api2、创建环境变量 ./configure.py cat .env TON_API_CACHE_ENABLED0 TON_API_CACHE_REDIS_ENDPOINTcache_redis TON_API_CACHE_REDIS_PORT6379 TON_API_CACHE_REDIS_T…

6.k8s中的secrets资源

一、Secret secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的; secret资源就是将value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符…

仿知乎网站问答源码,开源版

仿知乎网站问答源码,开源版 需要一定动手能力 发文章,发视频,发想法,提问回答,注册登录 开发环境 使用技术:springbootthymeleafRedis; 开发环境:tomcat8.0,jdk8.0, ID…

2023下半年软件设计师上午题——冒泡排序

快速排除法,根据冒泡排序特性,每一趟排序都会确实最大/最小值,故升序两趟后,最后两个元素应该是已经排序好的第二大,和最大的元素,所以排除B,D,再因为每次排序都会两两交换,所以排除…

裸金属服务器,云用户的新体验

定义 裸金属服务器(Bare Metal Server),是一台既具有传统物理服务器特点的硬件设备,又具备云计算技术的虚拟化服务功能,是硬件和软件优势结合的产物。可以为企业提供专属的云上物理服务器,为核心数据库、关…

【010】基于springboot+vue的校园资产管理

【010】基于springbootvue的校园资产管理 一、系统情况介绍 该系统是基于springbootvue的校园资产管理系统,校园资产管理是一款可以真正提升管理者的办公效率的软件系统。主要有以下功能:个人信息管理、校园资产管理、资产借用管理、入库管理、用户管理…

[Java EE] 多线程(六):线程池与定时器

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …