在新的filebeat模块上进行协作

问题描述 投票:0回答:1

我正在为自定义应用程序日志构建一个新的filebeat模块,我希望与我的同事合作。我知道克隆只是我的本地副本,没有机会让我的同事看到我的变化而没有首先合并到https://github.com/elastic/beats/仓库,所以我选择分叉beats存储库而不是克隆它然后克隆叉子。

我按照instructions建立了我的开发环境。在filebeat下运行make没有输出所以我认为一切都很好。

我生成模块,文件集,并为文件集设置我的摄取管道。我的pipeline.json看起来像这样:

{
  "description": "Pipeline for parsing CA Service Desk Manager stdlogs",
  "processors": [
    {
        "grok": {
            "field": "message",
            "patterns": [
                "%{TIMESTAMP:casdm.stdlog.timestamp} %{HOSTNAME:casdm.stdlog.hostname} %{PROCESS:casdm.stdlog.process.name} %{PID:casdm.stdlog.process.id} %{LOGLEVEL:casdm.stdlog.level} %{FILENAME:casdm.stdlog.file.name} %{POSINT:casd.stdlog.file.line} %{DATA:casdm.stdlog.message}"
            ],
            "pattern_definitions": {
                "TIMESTAMP": "%{MONTHNUM2}/%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}",
                "PROCESS": "%{USERNAME}",
                "PID": "%{POSINT}",
                "LOGLEVEL": "(FATAL|EXIT|SIGNIFICANT|SEVERE_ERROR|ERROR|WARNING|INFORMATION|MILESTONE|TRACE|VERBOSE)",
                "FILENAME": "(?:[A-Za-z0-9_. -]+)"
            }
        }
    }
  ],
  "on_failure" : [{
    "set" : {
      "field" : "error.message",
      "value" : "{{ _ingest.on_failure_message }}"
    }
  }]
}

它不是一直存在但是对于filebeat模块创建是新的我现在排除了日志格式的所有特殊情况。

我是instructed to generate the fields based on the pipeline configuration。一切都很好看:

~/go/src/github.com/jvalkonen/beats/filebeat $ make create-fields MODULE=casdm FILESET=stdlog
Fields.yml generated for casdm/stdlog

但是,在fields.yml下没有找到module/casdm/stdlog/_meta/(无论情况如何),模块级别module/casdm/_meta/fields.yml不包含我在module/casdm/stdlog/ingest/pipeline.json中设置的任何字段。这已经表明存在问题,但我不知道输出表明一切都很好。如果我然后运行make update生成文档和配置我得到一个错误,这似乎并不表示pipeline.json的问题,但开发设置本身,可能是我分叉项目而不是克隆它的事实:

~/go/src/github.com/jvalkonen/beats/filebeat $ make update
mage update
Error: failed to find github.com/elastic/beats/dev-tools/mage in the project's vendor
failed to find github.com/elastic/beats/dev-tools/mage in the project's vendor
make: *** [update] Error 1

构建管道中的某些东西指的是弹性github路径而不是我的分叉repo。我可以去搜索并替换所有这些引用但是我试图完全向后执行此操作并且有更简单的方法来实现我想要做的事情吗?

我的问题是:

  1. 在一般情况下,可以在克隆的回购协作上进行协作,还是需要先进行分叉?
  2. 作为git和GitHub的新手,是否有更简单的方法在GitHub仓库上进行协作而不会成为贡献者或搞乱源代码库?
  3. 我对制造错误来源的假设是否接近?如果是的话,它的正确解决方案是什么?
git github filebeat elastic-beats
1个回答
0
投票

原来我的问题是作为一个git和go noob的组合,要么没有阅读有关如何正确设置开发环境的指令,要么没有那些指令。

无论如何,这是我需要做的事情(按照this Elastic community thread的指示:

  1. 安装Go的正确版本(已经有)
  2. 克隆官方节拍回购(这是我出错的地方,我分叉并克隆了我的叉子)
  3. 在github上分享官方节拍回购
  4. 将我的fork设置为克隆repo的原点,并将官方beats repo添加为上游
  5. 设置路径变量并安装mage(我已经设置了环境,但我不记得看到了mage的安装命令,所以我想这是我的进程中的一个错误)

在此之后我不再出错,到目前为止我需要工作的所有命令都有效,包括从头开始构建filebeat。

© www.soinside.com 2019 - 2024. All rights reserved.