• 编译Filebeat源码


    项目使用了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环境下编译成功了,撒花~~~~~~~~~~~~~~~~~~~~~

  • 相关阅读:
    服务器IIS禁止通过IP访问
    如何自定义Kubernetes资源
    敏捷 | 无处不在的敏捷思想应用
    敏捷 | 如何做好服务型Scrum Master?
    敏捷 | 如何填好推进的坑?
    敏捷 | 如何正确推进敏捷?
    敏捷 | 如何正确理解敏捷?
    管理 |《技术管理案例课》学习总结(下)
    管理 |《技术管理案例课》学习总结(上)
    《ArcGIS 从基础到实战》书正式出版
  • 原文地址:https://www.cnblogs.com/yanh0606/p/13490699.html
Copyright © 2020-2023  润新知