准备工作
编辑准备工作
编辑Packetbeat是用Go编写的,因此安装 Go 并了解其基础知识是理解本指南的先决条件。但如果您不是 Go 专家,也请不必担心。Go 是一种相对较新的语言,很少有人是这方面的专家。事实上,包括最初的 Packetbeat 作者在内,许多人都是通过为 Packetbeat 和 libbeat 做贡献来学习 Go 的。
您还需要充分了解要添加支持的线协议。对于标准协议或开源项目中使用的协议,您通常可以找到详细的规范和示例源代码。Wireshark 是一个非常有用的工具,可以帮助您了解其支持的协议的内部工作原理。
在某些情况下,您甚至可以使用现有的库来执行协议的实际解析和解码。如果特定协议的 Go 实现具有足够宽松的许可证,您可能可以使用它来解析和解码单个消息,而不是编写自己的解析器。
在开始之前,请阅读为 Beats 做贡献。
克隆和编译
编辑在您安装 Go并将GOPATH环境变量设置为指向您首选的工作区位置后,您可以使用以下命令克隆 Packetbeat
$ mkdir -p ${GOPATH}/src/github.com/elastic $ cd ${GOPATH}/src/github.com/elastic $ git clone https://github.com/elastic/beats.git
注意:如果您有多个 go 路径,请使用${GOPATH%%:*}
代替${GOPATH}
。
然后,您可以使用以下命令进行编译:
$ cd beats $ make
请注意,克隆的位置很重要。如果您希望在GOPATH
环境之外工作,可以克隆到另一个目录,并且只创建一个指向$GOPATH/src/github.com/elastic/
目录的符号链接。
Fork 和分支
编辑我们建议您使用以下工作流程来为 Packetbeat 做贡献
- 将 Beats Fork 到您自己的 GitHub 账户中
- 在
$GOPATH/src/github.com/elastic/beats
文件夹中,将您的 Fork 添加为一个新的远程仓库。例如(将tsg
替换为您的 GitHub 账户)
$ git remote add tsg [email protected]:tsg/beats.git
- 为您的工作创建一个新的分支
$ git checkout -b cool_new_protocol
- 您可以随意提交,然后使用以下命令推送到您的私有 Fork:
$ git push --set-upstream tsg cool_new_protocol
- 当您准备好提交 PR 时,只需通过 GitHub 网页界面提交即可。请随时尽早提交您的 PR。您仍然可以在创建 PR 后向分支添加提交。尽早提交 PR 可以让我们有更多时间提供反馈,并可能帮助您解决问题。