标签:GOPATH Filebeat git etc filebeat 编译 源码 go
项目使用了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/filebeat make
结果,不出意外的报错了。。。。undefined: syscall.Dup2
应该是ARM平台提供的Dup2不好用,好在之前了解了一点点go的知识,把他改成Dup3试试,直接根据错误信息修改报错的文件,vi ../libbeat/common/file/stderr_other.go,将调用的地方改成Dup3
很幸运的编译出了filebeat的可执行文件
我们启动一下试试,正常使用会根据需要修改filebeat.yml,我们现在只试试能不能正常启动,简单改了,将log的enabled改成true,其他都默认了
运行测试,可以看到索引模板已经生成,说明我们的filebeat在ARM环境下编译成功了,撒花~~~~~~~~~~~~~~~~~~~~~
标签:GOPATH,Filebeat,git,etc,filebeat,编译,源码,go 来源: https://www.cnblogs.com/yanh0606/p/13490699.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。