如何让FileBeat支持http的output插件
目录
- 1 缘由
- 2 编译filebeat
- 3 配置虚拟机访问外网
- 4 编译beats-output-http
- 4.1 使用本地包
- 4.2 发布在线包
- 5 测试
- 6 beats-output-http的部分解释
1 缘由
官网的filebeat只有以下几种output插件:
- Elasticsearch Service
- Elasticsearch
- Logstash
- Kafka
- Redis
- File
- Console
由于需要将数据推送到接口,需要能够支持类似logstash中的http插件。
2 编译filebeat
依照Beats的文档编译filebeat:
mkdir -p ${GOPATH}/src/github.com/elastic
git clone https://github.com/elastic/beats ${GOPATH}/src/github.com/elastic/beats
进入到beats根目录,执行make mage
。
最后进入到filebeat目录,执行mage build
。
3 配置虚拟机访问外网
在用golang编译时,可能需要从外部下载一些包,如果使用虚拟机,在默认情况下,宿主机可以科学上网,但是虚拟机不行,此时,可以使用宿主机作为虚拟机的代理。
- 宿主机开启代理,例如,对于Clash来说,开启"允许局域网"和"TUN模式"
- 在虚拟机中测试是否能够连接宿主机上的端口
- 配置http_proxy和https_proxy环境变量
4 编译beats-output-http
按照文档,直接在beats/filebeat/main.go的import部分加上_ "github.com/raboof/beats-output-http/http"
,然后重新编译即可。
4.1 使用本地包
在进行编译时,发现会报错:
http/client.go:82:19: assignment mismatch: 2 variables but transport.TLSDialer returns 1 value
应该是libbeat中的代码有变化导致的,需要修改代码,将beats-output-http克隆到本地后,需要在编译时使用本地包,可以用两种方式:
- 直接修改go.mod:在beats/go.mod中找到beats-output-http所在的行,然后在beats/go.mod文件最后增加一行
replace github.com/luofengmacheng/beats-output-http v0.0.0-20230524012217-1e747e762355 => /root/src/github.com/elastic/beats/libbeat/outputs/http
,其中,模块名和版本与之前找到的beats-output-http的行一致,后面的路径就是beats-output-http的路径(此处重命名为http)。 - 使用go mod edit命令:
go mod edit -require github.com/luofengmacheng/beats-output-http@v0.0.0-20230524012217-1e747e762355 -replace github.com/luofengmacheng/beats-output-http@v0.0.0-20230524012217-1e747e762355=/root/src/github.com/elastic/beats/libbeat/outputs/http
这里需要注意:不要删除beats/go.mod的require中的beats-output-http的行,否则会报错:and is replaced but not required
。
然后就可以进入filebeat目录进行编译了。
4.2 发布在线包
当需要对beats-output-http进行bug修复时,可以将beats-output-http从原来的仓库fork过来,然后进行bug修复。那么,在使用beats-output-http时就需要使用新的仓库,此时需要进行两个调整:
- 修改beats-output-http/go.mod中的模块名,改成新的仓库路径
- 创建tag
然后删除beats/go.mod中原来的模块信息,再进行编译。
5 测试
编译完成后,会在beats/filebeat目录下生成二进制文件filebeat,创建配置文件filebeat.yaml:
filebeat.inputs:- type: logenabled: truepaths:- /etc/kubernetes/audit/audit.logoutput:http:hosts: ["IP:HOST"]
测试:./filebeat run -c ./filebeat.yaml -e
。
6 beats-output-http的部分解释
http的output本身的实现是非常简单的,就是将数据推送到某个url,主要的工作就是要对接beats的配置和插件管理工作。
第一步:让beats知道有这样一个http插件
在libbeat的outputs包中,RegisterType()用于注册插件,其实就是将插件的名称和构造函数保存起来:
// beats-output-http/http/http.go
func init() {outputs.RegisterType("http", MakeHTTP)
}
// libbeat/outputs/output_reg.go
// RegisterType registers a new output type.
func RegisterType(name string, f Factory) {if outputReg[name] != nil {panic(fmt.Errorf("output type '%v' exists already", name))}outputReg[name] = f
}
就是将插件的信息保存到内部的outputReg的map中,在初始化时就可以调用插件的构造函数。插件的构造函数就是解析配置,创建后端的Client对象。
第二步:Client的接口实现
filebeat调用构造函数完成初始化后,http插件就需要接收数据,然后实现具体的业务逻辑。
相关文章:
如何让FileBeat支持http的output插件
目录 1 缘由2 编译filebeat3 配置虚拟机访问外网4 编译beats-output-http4.1 使用本地包4.2 发布在线包 5 测试6 beats-output-http的部分解释 1 缘由 官网的filebeat只有以下几种output插件: Elasticsearch ServiceElasticsearchLogstashKafkaRedisFileConsole …...
解密人工智能:决策树 | 随机森林 | 朴素贝叶斯
文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、决策树2.1 优点2.2 缺点 三、随机森林四、Naive Bayes(朴素贝叶斯)五、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法,通过对…...
web:[极客大挑战 2019]BabySQL
题目 点进页面显示如下 查看源代码 先尝试一下万能密码 没用,or被过滤了 试着双写看看 回显一串,也不是flag 先查询列数尝试一下,把union select过滤了,使用双写 构造payload /check.php?usernameadmin&password1 %27 ununi…...
DRM全解析 —— plane详解(1)
本文参考以下博文: Linux内核4.14版本——drm框架分析(5)——plane分析 特此致谢! 1. 简介 一个plane代表一个image layer(硬件图层),最终的image由一个或者多个plane(s)组成。plane和 Framebuffer 一样是内存地址。…...
数据结构总结
数据结构 相关博文 单链表数组模拟单链表-CSDN博客双链表数组模拟双链表-CSDN博客栈及单调栈数组模拟栈以及单调栈-CSDN博客队列及单调队列数组模拟队列以及单调队列-CSDN博客KMPKMP详细算法思路-CSDN博客TrieTire树的理解-CSDN博客并查集并查集(面试常考ÿ…...
在SOLIDWORKS搭建一个简易的履带式机器人
文章目录 前言一、构建模型基本单元二、搭建车体模块三.插入轮子4.构建履带 前言 趁着十一假期,在solidworks中搭建了一个履带式机器人小车,计划将其应用在gazebo中完成多机器人编队的仿真。 一、构建模型基本单元 构建底板(a面)…...
C# 为什么要限制静态方法的使用
前言 在工作了一年多之后,我发现静态方法的耦合问题实在是头疼。如果可以尽量不要使用静态方法存储数据,如果要存储全局数据就把数据放在最顶层的主函数里面。 静态方法问题 耦合问题,不要用静态方法存储数据 我这里有两个静态方法&#…...
【已解决】Pyecharts折线图,只有坐标轴没有折线数据
【已解决】Pyecharts折线图,只有坐标轴没有折线数据 1、问题复现2、原因3、问题解决 1、问题复现 在做简单的数据通过 Pyecharts 生成折现图的时候,一直只有坐标轴没有折线数据,但是代码一直看不出问题,代码如下: im…...
win10搭建Selenium环境+java+IDEA(3)
这里主要对前面的maven和selenium做补充说明,以及更新一些pom文件下载依赖的问题。 IDEA里面,如果你创建的工程是maven工程文件,那么就会有一个pom.xml文件,可以在这个网站:https://mvnrepository.com/搜索依赖&#…...
String 、Stringbuffer、StringBuilder区别
上代码 public class Test {public static void main(String[] args) {//String 连接10000次消耗1127ms//StringBuffer 连接10000次消耗5ms//StringBuilder 连接10000次消耗3msStringTest(10000);StringBufferTest(10000);StringBuilderTest(10000);}public static void Strin…...
如何提升爬虫IP使用效率?精打细算的方法分享
在进行爬虫数据采集时,爬虫IP是不可或缺的工具。然而,爬虫IP的费用可能是一个爬虫项目的重要开支之一。为了帮助您节省爬虫IP经费,本文将分享一些经济高效的方法,让您在使用爬虫IP时更加节约成本,提高经济效益。 一、优…...
(高阶) Redis 7 第19讲 缓存过期淘汰策略 大厂篇
🌹 以下分享 Redis 缓存淘汰策略,如有问题请指教。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有对阁下帮助,请👍点赞💖收藏🐱🏍分享😀 面试题 1. 生产上,redis内存设置的多少 2. 如何配置、修改Redis 内存大小 3. 如果内存满了,如何处理 4. …...
【四旋翼飞行器】模拟四旋翼飞行器的平移和旋转动力学(Simulink仿真实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Kaggle - LLM Science Exam(一):赛事概述、数据收集、BERT Baseline
文章目录 一、赛事概述1.1 OpenBookQA Dataset1.2 比赛背景1.3 评估方法和代码要求1.4 比赛数据集1.5 优秀notebook 二、BERT Baseline2.1 数据预处理2.2 定义data_collator2.3 加载模型,配置trainer并训练2.4 预测结果并提交2.5 deberta-v3-large 1k Wikiÿ…...
mmap底层驱动实现(remap_pfn_range函数)
mmap底层驱动实现 myfb.c(申请了128K空间) #include <linux/init.h> #include <linux/tty.h> #include <linux/device.h> #include <linux/export.h> #include <linux/types.h> #include <linux/module.h> #inclu…...
品牌如何查窜货
当渠道中的产品出现不按规定区域销售时,这种行为就叫做窜货,窜货不仅会扰乱渠道的健康发展,损害经销商的利益,同时会滋生低价、假货的发生,有效的管控窜货,需要品牌先将窜货链店铺找出来,才能进…...
Java基于SpringBoot的车辆充电桩
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1、效果演示效果图 技术栈2、 前言介绍(完整源码请私聊)3、主要技术3.4.1…...
【ARM】(1)架构简介
前言 ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权(IP)供应商,本身不直接从事芯片生产…...
企业完善质量、环境、健康安全三体系认证的作用及其意义!
一、ISO三体系标准作用 ISO9001:质量管理体系,专门针对企业的质量管理,投标首选,很多大客户要求企业必备这项。 ISO14001:环境管理体系,针对企业的生产环境,排污,节能环保…...
<HarmonyOS第一课>运行Hello World——闯关习题及答案
判断题 1.DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。( 对 ) 2.main_pages.json存放页面page路径配置信息。( 对 ) 单选题 1.在stage模型中,下列配置文件属于AppScope文件夹的是?ÿ…...
NLP 02 RNN
一、RNN RNN(Recurrent Neural Network),中文称作循环神经网络它一般以序列数据为输入通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 传统神经网络(包括CNN),输入和输出都是互相独立的。但有些任务,后续的输出和之前…...
@PostConstruct注解
PostConstruct注解 PostConstruct注解是javax.annotation包下的一个注解,用于标记一个方法,在构造函数执行之后,依赖注入(如Autowired,意味着在方法内部可以安全地使用依赖注入的成员变量,而不会出现空指针异常&#…...
拓世AI|中秋节营销攻略,创意文案和海报一键生成
秋风意境多诗情,中秋月圆思最浓。又是一年中秋节,作为中国传统的重要节日之一,中秋节的意义早已不再仅仅是一家团圆的节日,更是一场商业盛宴。品牌方们纷纷加入其中,希望能够借助这一节日为自己的产品赢得更多的关注和…...
基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(三)之知识测试阶段与评估模块
去雨去雾去雪算法分为两个阶段,分别是知识收集阶段与知识测试阶段,前面我们已经学习了知识收集阶段,了解到知识阶段的特征迁移模块(CKT)与软损失(SCRLoss),那么在知识收集阶段的主要重点便是HCRLoss(硬损失…...
代码随想录二刷day46
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣139. 单词拆分二、力扣动态规划:关于多重背包,你该了解这些! 前言 提示:以下是本篇文章正文内容&#x…...
计算机竞赛 行人重识别(person reid) - 机器视觉 深度学习 opencv python
文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习行人重识别(person reid)系统 该项目…...
在线图片转BASE64、在线BASE64转图片
图片转BASE64、BASE64转图片...
什么是RPA?一文了解RPA发展与进程!
RPA(Robotic Process Automation,机器人流程自动化)是一种通过软件机器人模拟人类在计算机上执行重复性任务的技术。RPA的核心理念是将规则、过程和数据“机器人化”,从而实现对业务流程的自动化。RPA技术可以显著提高企业的工作效…...
【云备份项目】【Linux】:环境搭建(g++、json库、bundle库、httplib库)
文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 🔗链接跳转 2. 安装 jsoncpp 库 🔗链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…...
工信部教考中心:什么是《研发效能(DevOps)工程师》认证,拿到证书之后有什么作用!(下篇)丨IDCF
拿到证书有什么用? 提高职业竞争力:通过学习认证培训课程可以提升专业技能,了解项目或产品研发全生命周期的核心原则,掌握端到端的研发效能提升方法与实践,包括组织与协作、产品设计与运营、开发与交付、测试与安全、…...
网站建设主要流程图/爱站seo工具包官网
今年5月14日抵达自己梦想中的美国留学,到现在为止也有半年多了。回想起来感触许多,现稍微记录下。 (1)美国没有想象中好,美国大学也没有想象中的好。我来到是的Texas西北部Lubbock市,美国排名100左右大小的…...
新手学做免费网站/大连网站开发公司
主要针对英文文本做出词频计算,因为英文是用空格作为词语分割的。中文需要用到分词的库。下面就用奥巴马的一片演讲做词频计算1,分析的文本speech_etxt My fellow citizens: I stand here today humbled by the task before us, grateful for the trust…...
中企动力网站后台操作/谷歌浏览器手机版官网下载
最近在准备即将到来的信息系统项目管理师的考试,在阅读教材过程中收获颇丰,了解了很多信息系统项目管理的知识,这对我从事信息化监理的事业会带来很大帮助,因此我决心尝试着看更多的考试书籍,丰富自己的文化底蕴&#…...
郑州做网站七彩科技/优化法治化营商环境
近年来, 世界各国掀起了以工业物联网为代表的第四次工业革命,智能工厂、产品“智造”更是引起了广泛关注,工业物联网向人们展示了一幅美好的画面,并表现出广阔的市场发展前景。 工业物联网是一个新概念,是传统工业自动…...
网站盈利模式/常见的搜索引擎有哪些
在登陆时被告知test用户被锁1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间SQL> alter session set nls_date_formatyyyy-mm-dd hh24:mi:ss;Session altered.2、查看具体的被锁时间SQL> select username,lock_d…...
有关电商网站开发的参考文献/微信群免费推广平台
在之前的课程里,我们学习了很多Python相关的知识,也对计算机的一些基本原理做了了解。大家还记不记得咱们提到过:程序的三大部分呢?输入处理输出今天的课程,我们继续学习新的内容吧~我们希望程序“处理一些数” 的时候…...