正在加载

准备就绪

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/ 目录的符号链接。

我们建议使用以下工作流程来为 Packetbeat 做出贡献

  • 在 GitHub 中将 Beats Fork 到您自己的帐户
  • $GOPATH/src/github.com/elastic/beats 文件夹中,将您的 fork 添加为新的远程。 例如 (将 tsg 替换为您的 GitHub 帐户)
$ git remote add tsg git@github.com:tsg/beats.git
  • 为您的工作创建一个新分支
$ git checkout -b cool_new_protocol
  • 根据需要经常提交,然后使用以下命令推送到您的私有 fork
$ git push --set-upstream tsg cool_new_protocol
  • 当您准备好提交 PR 时,只需从 GitHub Web 界面执行此操作即可。 欢迎尽早提交您的 PR。 创建 PR 后,您仍然可以将提交添加到分支。 尽早提交 PR 可以给我们更多时间来提供反馈并可能帮助您完成它。
© . All rights reserved.