收破烂的小白 2023-09-04 09:26 采纳率: 0%
浏览 6

logstash自定义插件开发问题

在研究logstash自定义插件时以filter-geoip插件为例,从github上把源码来取在电脑上,使用IDEA修改源码后进行编译报错,报错信息:Could not get unknown property 'logstashCoreGemPath' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler,求以插件filter-geoip为例从开发环境步骤搭建开始的一个过程

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-04 12:25
    关注

    【以下回答由 GPT 生成】

    对于优化后的问题,我能够给出具体的解决方案。

    首先,让我们来搭建logstash自定义插件的开发环境。下面是一个完整的步骤:

    1. 确保你已经安装了以下软件和工具:
    2. Java Development Kit (JDK): 确认已经正确安装了JDK,并且配置了JAVA_HOME环境变量。
    3. Gradle: 确认已经正确安装了Gradle,并且配置了GRADLE_HOME环境变量。
    4. Apache Maven: 确认已经正确安装了Maven,并且配置了MAVEN_HOME环境变量。

    5. 在你的项目目录下,创建一个新的文件夹,例如my-plugin

    6. my-plugin文件夹下,创建一个build.gradle文件,用于配置Gradle构建脚本。以下是一个基本的build.gradle示例:

    ```groovy buildscript { repositories { mavenCentral() } dependencies { classpath "org.logstash.plugins:gradle-plugin:1.4.0" } }

    plugins { id "org.logstash.plugins.gradle-plugin.arbitrary" version "1.4.0" }

    logstashCoreGemPath = "路径/to/logstash-core" //注意替换为你本地logstash-core的路径

    logstashPlugin { name 'my-plugin' description 'My custom Logstash plugin' }

    repositories { mavenCentral() }

    dependencies { compileOnly "org.logstash.plugins:logstash-core:6.5.0" } ```

    注意,这里你需要将logstashCoreGemPath替换为你本地logstash-core路径,这个路径是在你配置开发环境时下载或克隆logstash源代码得到的。

    1. 确保在my-plugin文件夹下创建一个新的文件夹,命名为src/main/java。在这个文件夹下,你可以开始编写你的自定义插件代码。

    2. src/main/java文件夹下,创建你的自定义插件类文件,例如MyPlugin.java。以下是一个示例代码:

    ```java import org.logstash.filters.FilterPlugin; import org.logstash.filters.PluginFactory;

    public class MyPlugin implements FilterPlugin {

       public static final String CONFIG_NAME = "my_plugin";
    
       public MyPlugin(String id, Map<String, Object> config, PluginFactory factory) throws ValidatingFilterDelegatorException {
           super(id, config, factory);
       }
    
       @Override
       public Collection<Event> filter(final Collection<Event> events) {
           // 在这里你可以编写你的自定义插件逻辑
           // 返回处理后的事件集合
           return events;
       }
    

    } ```

    这只是一个简单的例子,你可以根据你实际的需求进行修改和扩展。

    1. src/main/java文件夹下,创建一个新的文件夹,命名为META-INF/logstash/filters。在这个文件夹下,你需要创建一个用于描述你的插件的配置文件,命名为my_plugin.json。以下是一个示例配置文件:

    json { "version": "0.1.0", "logstash": { "plugin-type": "filter", "filter-type": "my_plugin", "config-name": "my_plugin" }, "required_jars": ["logstash-core-6.5.0.jar"] }

    注意,这里的required_jars应该指定你的插件所依赖的JAR文件名称,例如logstash-core-6.5.0.jar

    1. 在命令行或终端中,切换到你的项目目录my-plugin,执行以下命令构建插件:

    gradle logstashPluginJar

    这个命令会自动构建你的插件,并生成一个JAR文件,可以在Logstash中使用。

    1. 构建成功后,在build/logstash-plugin/my-plugin-0.1.0.jar路径下会生成你的插件的JAR文件。

    以上是从搭建开发环境到构建自定义插件的完整步骤。如果你按照以上步骤进行操作,并注意替换相应的路径,应该就能够成功编译和构建你的logstash自定义插件了。

    如果你在执行以上步骤时遇到问题或有其他相关疑问,请随时提问,我会尽力提供帮助。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 odoo17中,产品分包路线如何设置?可从销售订单中直接触发采购订单及相关单据
  • ¥30 vite打包部署后,遇到Failed to load module script
  • ¥15 请教下win10wx和麒麟wx无法互通俩者数据并不兼吗,如何解决?(标签-linux)
  • ¥15 永劫无间游戏如何实现微加速 或者说游戏优化(玩家)
  • ¥15 knx的软件sdk库
  • ¥15 用VBA将文件夹内的所有表格自动复制到一个表格的sheet1内,
  • ¥15 帮找书和配套代码。。
  • ¥15 使用深度优先搜索所有可能路径
  • ¥20 Ant Design of Vue 的表格使用,根据当前代码,实现以下功能
  • ¥15 C#中模版应用的问题