使用Logstash管道配置调试功能

当Logstash管道配置出现错误时,可能导致输出数据结果不符合预期,需要反复去目标端确认数据格式,再返回控制台修改配置,这样会耗费大量的时间和人力。对于这种情况,您可以通过阿里云Logstash提供的管道配置调试功能,在管道配置完成后,直接在控制台上查看管道配置的输出结果,降低调试成本。本文介绍具体的实现方法。

前提条件

已安装logstash-output-file_extend插件。如果还未安装,请先安装该插件,安装方法请参见安装或卸载插件

操作步骤

  1. 进入阿里云Elasticsearch控制台的Logstash页面
  2. 在顶部菜单栏处,选择地域。
  3. 在顶部菜单栏处,选择地域,然后在实例列表中单击目标实例ID。

  4. 在左侧导航栏,单击管道管理

  5. 单击创建管道

  6. 配置并启动管道。

    1. Config配置中,填写管道IDConfig配置

      config配置

      参数

      说明

      管道ID

      自定义输入。输入后,管道ID会自动映射到file_extendpath路径下。

      Config配置

      Config配置由三部分组成:

      • input:指定待读取的数据源,支持Logstash自带的input plugins(除过file插件)。

      • filter:进一步加工处理数据源采集到的数据,支持丰富的Filter plugins

      • output:将过滤后的数据发送到特定的目的端。阿里云Logstash不仅支持开源的 Logstash output plugins,还可通过配置特有的file_extend插件,开启调试日志功能,即可在管道部署完成后直接查看输出结果,并进行验证与调试。

      config配置示例如下。

      input {
           elasticsearch {
             hosts => "http://es-cn-0pp1jxv000****.elasticsearch.aliyuncs.com:9200"
             user  => "elastic"
             index => "twitter"
             password => "<YOUR_PASSWORD>"
             docinfo => true
           }
      
      }
      filter {
      
      }
      output {
          elasticsearch {
          hosts => ["http://es-cn-000000000i****.elasticsearch.aliyuncs.com:9200"]
          user => "elastic"
          password => "<your_password>"
          index => "%{[@metadata][_index]}"
          document_id => "%{[@metadata][_id]}"
      
        }
         file_extend {
           path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test"
         }
      
      }
      重要
      • output中的file_extend配置默认为注释状态,如果需要使用调试功能,请先删除注释。

      • file_extend中的path参数默认为系统指定路径,请勿修改。您也可以单击开启配置调试获取path路径。

      • path中的{pipelineid}将自动映射为管道ID,请勿修改为其他名称,否则无法获取调试日志。

      Elasticsearch input插件可以根据配置的查询语句,从Elasticsearch集群读取文档数据,适用于批量导入测试日志等操作。默认读取完数据后,同步动作会自动关闭,而阿里云Logstash需保证进程一直运行,关闭后将会重新启动进程,导致某些单一任务场景(如logstash input es)存在重复写数据的情况。设置长时间范围的定时任务可绕过写重复的情况,如每年3月5日13点20分触发任务执行,执行完第一次任务后停止管道运行,可避免重复写情况。可以通过cron语法配合schedule参数实现,详情请参见Logstash官网Scheduling介绍

      例如,设置3月5日13点20分执行任务:

      schedule => "20 13 5 3 *"
    2. 单击下一步,配置管道参数。

      管道配置参数的详细信息,请参见通过配置文件管理管道

    3. 保存并部署管道。

      • 保存:将管道信息保存在Logstash里并触发实例变更,配置不会生效。保存后,系统会返回管道管理页面。可在管道列表区域,单击操作列下的立即部署,触发实例重启,使配置生效。

      • 保存并部署:保存并且部署后,会触发实例重启,使配置生效。

    4. 在创建成功提示框中,单击确认

  7. 查看调试日志。

    1. 等待实例重启完成后,在管道列表中,单击目标管道右侧操作列下的查看调试日志

    2. 日志查询页面的调试日志页签中,获取管道处理后的输出数据。

      对于多个管道,您可在搜索框中输入pipelineId: <管道ID>过滤对应的日志。查看调试日志