当前位置: 首页 > news >正文

如何让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博客并查集并查集(面试常考&#xff…...

在SOLIDWORKS搭建一个简易的履带式机器人

文章目录 前言一、构建模型基本单元二、搭建车体模块三.插入轮子4.构建履带 前言 趁着十一假期,在solidworks中搭建了一个履带式机器人小车,计划将其应用在gazebo中完成多机器人编队的仿真。 一、构建模型基本单元 构建底板(a面&#xff09…...

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&#xff…...

mmap底层驱动实现(remap_pfn_range函数)

mmap底层驱动实现 myfb.c&#xff08;申请了128K空间&#xff09; #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…...

品牌如何查窜货

当渠道中的产品出现不按规定区域销售时&#xff0c;这种行为就叫做窜货&#xff0c;窜货不仅会扰乱渠道的健康发展&#xff0c;损害经销商的利益&#xff0c;同时会滋生低价、假货的发生&#xff0c;有效的管控窜货&#xff0c;需要品牌先将窜货链店铺找出来&#xff0c;才能进…...

Java基于SpringBoot的车辆充电桩

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1、效果演示效果图 技术栈2、 前言介绍&#xff08;完整源码请私聊&#xff09;3、主要技术3.4.1…...

【ARM】(1)架构简介

前言 ARM既可以认为是一个公司的名字&#xff0c;也可以认为是对一类微处理器的通称&#xff0c;还可以认为是一种技术的名字。 ARM公司是专门从事基于RISC技术芯片设计开发的公司&#xff0c;作为知识产权&#xff08;IP&#xff09;供应商&#xff0c;本身不直接从事芯片生产…...

企业完善质量、环境、健康安全三体系认证的作用及其意义!

一、ISO三体系标准作用 ISO9001&#xff1a;质量管理体系&#xff0c;专门针对企业的质量管理&#xff0c;投标首选&#xff0c;很多大客户要求企业必备这项。 ISO14001&#xff1a;环境管理体系&#xff0c;针对企业的生产环境&#xff0c;排污&#xff0c;节能环保&#xf…...

<HarmonyOS第一课>运行Hello World——闯关习题及答案

判断题 1.DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。&#xff08; 对 &#xff09; 2.main_pages.json存放页面page路径配置信息。&#xff08; 对 &#xff09; 单选题 1.在stage模型中&#xff0c;下列配置文件属于AppScope文件夹的是&#xff1f;&#xff…...

法律条款时间逻辑的DSL与状态机实现:从概念到工程实践

1. 项目概述&#xff1a;当法律条款遇上时间逻辑最近在做一个挺有意思的项目&#xff0c;叫“Clause-Logic/exoclaw-temporal”。光看名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你接触过合同、协议或者任何带有法律效力的文书&#xff0c;并且尝试过用代码去处理它…...

ios蓝牙开发

一、蓝牙基本概念蓝牙&#xff1a;BLE (Bluetooth Low Energy/低功耗蓝牙)&#xff0c;一般应用苹果的官方框架基于 <CoreBluetooth/CoreBluetooth.h> 框架进行开发。中心设备&#xff1a;用于扫描周边蓝牙外设的设备&#xff0c;比如我们上面所说的中心者模式&#xff0…...

LDBlockShow终极指南:5步掌握高质量连锁不平衡热图绘制

LDBlockShow终极指南&#xff1a;5步掌握高质量连锁不平衡热图绘制 【免费下载链接】LDBlockShow LDBlockShow: a fast and convenient tool for visualizing linkage disequilibrium and haplotype blocks based on VCF files 项目地址: https://gitcode.com/gh_mirrors/ld/…...

openOii:开源工业信息集成框架架构解析与实战指南

1. 项目概述与核心价值最近在开源社区里&#xff0c;一个名为openOii的项目引起了我的注意。这个由开发者 Xeron2000 发起的项目&#xff0c;从名字上就透着一股“开放”和“工业”的气息。作为一个在工业自动化和数据集成领域摸爬滚打了十多年的老兵&#xff0c;我深知在制造业…...

CodeMaker完整指南:5分钟掌握IntelliJ IDEA智能代码生成插件

CodeMaker完整指南&#xff1a;5分钟掌握IntelliJ IDEA智能代码生成插件 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 还在为Java和Scala项目中的重复编码工作而烦…...

利用Taotoken的多模型能力为AIGC应用构建弹性后备方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用Taotoken的多模型能力为AIGC应用构建弹性后备方案 对于开发图像生成、文案创作等AIGC应用的团队而言&#xff0c;服务连续性至…...

【仿真实战】AnyLogic地铁站客流仿真:从零搭建带安检与限流的多层车站模型

1. 从零开始搭建地铁站仿真模型 第一次接触AnyLogic做地铁站客流仿真时&#xff0c;我完全被各种模块和参数搞晕了。后来在几个实际项目中摸爬滚打&#xff0c;终于总结出一套小白也能快速上手的方法。这次我们就来搭建一个包含安检区和限流措施的多层地铁站模型&#xff0c;整…...

基于MCP协议与本地全文检索的电子元件文档AI查询系统

1. 项目概述&#xff1a;为LLM构建一个本地化的电子元件文档搜索引擎如果你是一名嵌入式工程师、硬件开发者&#xff0c;或者像我一样&#xff0c;经常需要和德州仪器&#xff08;TI&#xff09;、意法半导体&#xff08;ST&#xff09;、亚德诺&#xff08;ADI&#xff09;这些…...

终极音乐解锁指南:3步免费解锁任何加密音乐文件

终极音乐解锁指南&#xff1a;3步免费解锁任何加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https://git…...

Windows平台iOS模拟器开发革命:ipasim如何让iOS应用在Windows上“原生“运行

Windows平台iOS模拟器开发革命&#xff1a;ipasim如何让iOS应用在Windows上"原生"运行 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 嘿&#xff0c;开发者朋友们&#xff01;你是否曾经梦想过在Win…...