8000 GitHub - yuanxiaoming8899/logstash-cn: Logstash - 传输和处理您的日志、事件或其他数据
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

yuanxiaoming8899/logstash-cn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

日志存储

Logstash与 Beats、Elasticsearch 和 Kibana 一起属于Elastic Stack 。Logstash 是一个服务器端数据处理管道,可以同时从多个来源获取数据,对其进行转换,然后将其发送到您最喜欢的“存储”。(当然,我们的是 Elasticsearch。)。Logstash 有 200 多个插件,您也可以非常轻松地编写自己的插件。

有关更多信息,请参阅https://www.elastic.co/products/logstash

文档和入门

您可以在elastic.co 网站上找到 Logstash 的文档和入门指南

有关构建文档的信息,请参阅https://github.com/elastic/docs中的自述文件

下载

您可以从下载页面下载官方发布的 Logstash 二进制文件以及适用于支持平台的 debian/rpm 软件包。

需要帮忙?

Logstash 插件

Logstash 插件托管在logstash-plugins github 组织下的单独存储库中。每个插件都是一个独立的 Ruby gem,发布到 RubyGems.org。

编写自己的插件

Logstash 以其可扩展性而闻名。Logstash 有数百个插件,您可以非常轻松地编写自己的插件!有关开发和测试这些插件的更多信息,请参阅使用插件部分

插件问题和拉取请求

请在自己的存储库下打开新问题并拉取插件请求

例如,如果您必须报告 Elasticsearch 输出的问题/增强功能,请在此处进行操作。

Logstash 核心将继续存在于该存储库下,所有相关问题和拉取请求都可以在此处提交。

开发 Logstash 核心

先决条件

  • 安装 JDK 版本 11 或 17。确保将JAVA_HOME环境变量设置为 JDK 安装目录的路径。例如set JAVA_HOME=<JDK_PATH>
  • 安装 JRuby 9.2.x 建议使用 Ruby 版本管理器,例如RVMrbenv
  • 分别使用和进行安装rakebundler工具。gem install rakegem install bundler

RVM 安装(可选)

如果您更喜欢使用 rvm(ruby 版本管理器)来管理计算机上的 Ruby 版本,请按照以下说明进行操作。在 Logstash 文件夹中:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby=$(cat .ruby-version)

检查 Ruby 版本

在继续之前,请通过以下方式检查您的 ruby​​ 版本:

$ ruby -v

打印版本应与文件中的版本相同.ruby-version

构建 Logstash

Logstash 项目包含所有 Logstash 的源代码,包括 Elastic-Licensed X-Pack 特性和功能;要仅使用 OSS 许可的代码从源代码运行 Logstash,请导出OSS值为true

export OSS=true
  • 设置要构建的源代码的位置
export LOGSTASH_SOURCE=1
export LOGSTASH_PATH=/YOUR/LOGSTASH/DIRECTORY

安装依赖项gradle (推荐)1

  • 安装开发依赖项
./gradlew installDevelopmentGems
  • 安装默认插件和其他依赖项
./gradlew installDefaultGems

验证安装

要验证您的环境,请运行以下命令来启动 Logstash 并发送您的第一个事件:

bin/logstash -e 'input { stdin { } } output { stdout {} }'

这应该会启动 Logstash,并使用标准输入等待您输入事件

hello world
2016-11-11T01:22:14.405+0000 0.0.0.0 hello world

高级:滴水发射器

Drip是一个解决Logstash开发时JVM启动慢问题的工具。滴注脚本旨在成为 java 命令的直接替代品。我们建议在开发过程中使用点滴,特别是运行测试时。使用drip,命令的第一次调用不会更快,但后续命令会很快。

要告诉logstash使用drip,请设置环境变量JAVACMD=`which drip`

示例(但在第一次运行 rspec 之前请参阅下面的测试部分):

JAVACMD=`which drip` bin/rspec

注意事项

Drip 不适用于 STDIN。您不能使用 drop 来运行使用 stdin 插件的配置。

构建 Logstash 文档

要在本地计算机上构建 Logstash 参考(仅限开源内容),请克隆以下存储库:

Logstash - 包含有关核心功能的主要文档

logstash-docs - 包含生成的插件文档

docs - 包含文档构建文件

确保您在logstash和中签出了相同的分支logstash-docsmaster在仓库中查看docs

从存储库中运行文档构建脚本docs。例如:

./build_docs.pl --doc ../logstash/docs/index.asciidoc --chunk=1 -open

测试

Logstash 中的大多数单元测试都是使用Ruby 部分的rspec编写的。对于 Java 部分,我们使用junit。对于测试,您可以使用测试 rake任务和bin/rspec命令,请参阅以下说明:

核心测试

1- 要运行核心测试,您可以使用 Gradle 任务:

./gradlew test

或使用该rspec工具运行所有测试或运行特定测试:

bin/rspec
bin/rspec spec/foo/bar_spec.rb

rspec请注意,在第一次运行该命令之前,您需要通过运行以下命令来设置 RSpec 测试依赖项:

./gradlew bootstrap

2- 要运行仅覆盖 Java 代码库的测试子集,请运行:

./gradlew javaTests

3- 要执行完整的测试套件(包括集成测试),请运行:

./gradlew check

4- 执行单个 Ruby 测试运行:

SPEC_OPTS="-fd -P logstash-core/spec/logstash/api/commands/default_metadata_spec.rb" ./gradlew :logstash-core:rubyTests --tests org.logstash.RSpecTests

5- 要执行集成测试的单一规范,请运行:

./gradlew integrationTests -PrubyIntegrationSpecs=specs/slowlog_spec.rb

有时您可能会发现对一段 Logstash 代码的更改会导致测试挂起。这些可能很难调试。

如果您进行了设置,LS_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"则可以使用 IDE 调试器连接到正在运行的 Logstash,这可能是查找问题的好方法。

插件测试

要运行所有当前安装的插件的测试:

rake test:plugins

您可以安装logstash包中包含的默认插件集:

rake test:install-default

请注意,如果使用插件管理器安装插件,bin/logstash-plugin install ...请不要忘记在插件安装后使用以下命令安装插件开发依赖项:

bin/logstash-plugin install --development

建筑文物

构建的工件将放置在该LS_HOME/build目录中,如果该目录尚不存在,则将创建该目录。

您可以将 Logstash 快照包构建为 tarball 或 zip 文件

./gradlew assembleTarDistribution
./gradlew assembleZipDistribution

仅 OSS 工件可以类似地使用它们自己的 gradle 任务构建:

./gradlew assembleOssTarDistribution
./gradlew assembleOssZipDistribution

您还可以构建 .rpm 和 .deb,但需要fpm工具。

rake artifact:rpm
rake artifact:deb

和:

rake artifact:rpm_oss
rake artifact:deb_oss

使用自定义 JRuby 发行版

如果您希望构建使用自定义 JRuby,您可以通过custom.jruby.pathGradle 属性设置自定义 JRuby 发行版源根目录的路径来实现。

例如

./gradlew clean test -Pcustom.jruby.path="/path/to/jruby"

项目原则

  • 社区:如果一个新手过得不好,那就是一个bug。
  • 软件:让它工作,然后让它正确,然后让它更快。
  • 技术:如果它今天不起作用,我们可以让它明天起作用。

贡献

欢迎所有贡献:想法、补丁、文档、错误报告、投诉,甚至是您在餐巾纸上草拟的内容。

编程不是必需的技能。无论您在开源和维护者或社区成员中看到什么“发送补丁或死亡”,您都不会在这里看到。

更重要的是你能够做出贡献。

有关贡献的更多信息,请参阅 CONTRIBUTING文件。

脚注

Footnotes

脚注

  1. 使用bundle而不是gradle来安装依赖项

    或者,除了使用之外,gradle您还可以使用bundle

    • 安装开发依赖项

      bundle config set --local path vendor/bundle
      bundle install
      
    • 引导环境:

      rake bootstrap
      
    • 然后您可以使用bin/logstash启动Logstash,但没有安装任何插件。要安装默认插件,您可以运行:

      rake plugin:install-default
      

    这将安装 80 多个默认插件,使 Logstash 准备好连接到多个数据源、执行转换并将结果发送到 Elasticsearch 和其他目的地。

About

Logstash - 传输和处理您的日志、事件或其他数据

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 47.6%
  • Ruby 47.0%
  • Shell 2.1%
  • HTML 1.1%
  • Python 0.8%
  • PowerShell 0.3%
  • Other 1.1%
0