功能概述

本小节主要介绍 Logstash 如何自定义插件。

操作步骤

步骤一:登录 Logstash 节点

步骤二:自定义插件

  1. 在 Logstash 节点中,执行如下命令行创建自定义插件。

    /usr/share/logstash/bin/logstash-plugin generate --type filter --name abcd --path /data/logstash/plugins

    ELK 5.5.1 - QingCloud 1.2.0 及以前版本请使用如下命令。

    sudo docker exec -it $(docker ps -q) logstash-plugin generate --type filter --name abcd --path /data/logstash/plugins

    其中 filter 可替换为待定制的插件的类型,类型包括 inputfiltercodecoutputabcd 可替换为待开发的插件的名称,更多参数详情请参考官方文档

    plugin_generate
  2. 进入上一步生成的插件目录,修改其中的文件,按实际业务需求进行开发,并修改 .gemspec 文件,把包含 TODOFIXME 的行改成实际内容,否则会导致 Logstash 无法启动。

    /data/logstash/plugins/logstash-filter-abcd/logstash-filter-abcd.gemspec
  3. 根据插件类型及参数,修改 Logstash 节点相应的配置参数,详情参考修改集群配置参数

    • 如示例中,将 filter_conf_content 修改为 abcd {}

    • 根据插件所在位置修改 gemfile_append_content,插件位置前缀必须是 /data/logstash/plugins,如示例中,将 gemfile_append_content 修改为 gem "logstash-filter-abcd", :path => "/data/logstash/plugins/logstash-filter-abcd"

      说明

      如有多个 Logstash 节点,请在所有 Logstash 节点上执行第 1、2、3 步骤,确保所有 Logstash 节点成功安装相关插件,不然状态会显示不正常。

  4. 重启 Logstash 节点。

步骤三:测试验证

  1. 参考 Logstash 概述内容,发送一条数据。

    curl -d "qingcloud" $LS_IP:9700
  2. 在 Kibana 中查看近期接收到的日志,详情可参考访问 Kibana。如图,示例中的 logstash_filter_abcd 成功将原消息中的 qingcloud 替换为了 Hello World!,说明插件配置生效。

    log_display