arm编译 filebeat_编译Filebeat源码

本文档详细介绍了如何在ARM架构服务器上编译Filebeat源码,由于官方未提供ARM版本,需要自行下载go语言环境,设置环境变量,从GitHub获取Beats源码,针对报错进行代码修改,并成功编译出可执行文件,最终验证了在ARM环境下Filebeat的编译和运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目使用了Filebeat,现在需要运行在ARM架构的服务器上,但是Filebeat官方没有提供,需要自己编译一份

filebeat等组件的源码地址 https://github.com/elastic/beats ,可以选择需要的版本,然后下载ZIP包来使用,也可以按照下面步骤直接git下载

编译filebeat需要go语言环境,先安装go环境

#创建工作目录

mkdir -p /opt/gowork

#安装go和git 命令

yum install -y go git

#设置环境变量

echo "export GOROOT=/usr/lib/golang" >> /etc/profile

echo "export GOBIN=\$GOROOT/bin" >> /etc/profile

echo "export GOPATH=/opt/gowork" >> /etc/profile

echo "export PATH=\$PATH:\$GOROOT:\$GOBIN:\$GOPATH" >> /etc/profile

#刷新环境变量

. /etc/profile

#测试go是否成功,查看env中GOPATH是否生效

go version

go env

然后下载源码(吐槽一下国内的破网,国外的什么网站都屏蔽,下载代码费了好长时间)

mkdir -p ${GOPATH}/src/github.com/elastic

cd ${GOPATH}/src/github.com/elastic

# 我需要的6.8版本,根据实际情况确定分支

git clone-b 6.8 https://github.com/elastic/beats.git

下载完之后进入filebeat目录,如果编译其他组件就进其他目录,然后执行编译命令

cd beats/filebeatmake

结果,不出意外的报错了。。。。undefined: syscall.Dup2

应该是ARM平台提供的Dup2不好用,好在之前了解了一点点go的知识,把他改成Dup3试试,直接根据错误信息修改报错的文件,vi ../libbeat/common/file/stderr_other.go,将调用的地方改成Dup3

很幸运的编译出了filebeat的可执行文件

我们启动一下试试,正常使用会根据需要修改filebeat.yml,我们现在只试试能不能正常启动,简单改了,将log的enabled改成true,其他都默认了

运行测试,可以看到索引模板已经生成,说明我们的filebeat在ARM环境下编译成功了,撒花~~~~~~~~~~~~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值