通过配置文件管理管道

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

Logstash通过管道完成数据的采集与处理,管道配置中包含input、output和filter(可选)插件,input和output用来配置输入和输出数据源、filter用来对数据进行过滤或预处理。阿里云Logstash支持多管道并行运行,目前最多支持20个。本文介绍如何通过配置文件管理管道,包括创建管道、修改管道、复制管道和删除管道。

前提条件

您已完成以下操作:

  • 创建阿里云Elasticsearch实例。

    具体操作,请参见创建阿里云Elasticsearch实例

  • 开启目标阿里云Elasticsearch实例的自动创建索引功能(本文以此为例),或提前在实例中创建索引和Mapping。

    开启自动创建索引功能的具体操作,请参见配置YML参数。创建索引和Mapping的具体操作,请参见步骤三:创建索引

    说明

    阿里云Elasticsearch为了保证用户操作数据的安全性,默认将自动创建索引配置设置为不允许。阿里云Logstash在传输数据的时候,使用提交数据的方式创建索引,而不是Create index API的方式。所以在使用阿里云Logstash上传数据之前,需要先把集群的自动创建索引设置为允许,或提前创建好索引和Mapping。

  • 创建阿里云Logstash实例。

    具体操作,请参见创建阿里云Logstash实例

使用限制

  • 阿里云Logstash最多支持20个管道并行运行。

  • 如果output指定的数据源为阿里云Elasticsearch,需要提前开启自动创建索引,或创建目标索引和Mapping。

  • 配置过程中涉及到阿里云系列产品时,需要在同一专有网络下,否则需要配置网络与安全。详细信息,请参见配置NAT公网数据传输

  • 如果在output中使用了file_extend参数,需要先安装logstash-output-file_extend插件。具体操作,请参见安装或卸载插件

创建管道

  1. 进入阿里云Elasticsearch控制台的Logstash页面
  2. 进入目标实例。
    1. 在顶部菜单栏处,选择地域。
    2. Logstash实例中单击目标实例ID。
  3. 在左侧导航栏,单击管道管理

  4. 单击创建管道

  5. 输入管道IDConfig配置

    配置示例如下。

    input {
        beats {
            port => 8000
        }
    }
    filter {
    
    }
    output {
        elasticsearch {
            hosts => ["http://es-cn-o40xxxxxxxxxx****.elasticsearch.aliyuncs.com:9200"]
            index => "logstash_test_1"
            password => "es_password"
            user => "elastic"
        }
        file_extend {
            path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test"
        }
    }

    参数

    说明

    input

    指定输入数据源。支持的数据源类型,请参见Input plugins

    说明
    • 当Input插件需要监听Logstash进程所在节点的端口时,请使用8000~9000范围内的端口。

    • 如果您需要在input中定义插件、驱动或其他文件,可单击查看扩展文件路径,在扩展文件管理对话框中,单击前往上传,根据提示上传对应的文件。详细信息,请参见配置扩展文件

    filter

    指定对输入数据进行过滤的插件。支持的插件类型,请参见Filter plugins

    output

    指定目标数据源类型。支持的数据源类型,请参见Output plugins

    file_extend可选,用来开启调试日志功能,并通过path参数配置调试日志的输出路径。建议您配置该参数,配置后,可直接在控制台上查看输出结果。如果未配置,需要去目标端确认输出结果,再返回控制台修改,这样会耗费大量的时间和人力。详细信息,请参见使用Logstash管道配置调试功能

    重要

    使用file_extend参数前,需要先安装logstash-output-file_extend插件。具体操作,请参见安装或卸载插件。其中的path参数默认为系统指定路径,请勿修改。您也可以单击开启配置调试获取path路径。

    Config配置的结构及支持的数据类型的详细信息(不同版本支持的数据类型可能不同),请参见Structure of a Config File

    重要
    • 为了提升安全性,在使用JDBC驱动并配置管道时,需要在jdbc_connection_string参数后面添加allowLoadLocalInfile=false&autoDeserialize=false,否则当您在添加Logstash配置文件的时候,调度系统会抛出校验失败的提示,例如jdbc_connection_string => "jdbc:mysql://xxx.drds.aliyuncs.com:3306/<数据库名称>?allowLoadLocalInfile=false&autoDeserialize=false"

    • 当Config配置中有类似last_run_metadata_path的参数时,需要阿里云Logstash服务提供文件路径。目前后端开放了/ssd/1/<Logstash实例ID>/logstash/data/路径供您测试使用,且该目录下的数据不会被删除。因此在使用时,请确保磁盘有充足的使用空间。指定参数路径后,Logstash会在对应路径下自动生成文件,但不支持查看文件内容。

    • 由于阿里云Logstash创建在专有网络下,配置过程中涉及到阿里云系列产品时,建议使用同一专有网络下的实例。如果使用外网访问阿里云Logstash,需要配置网络与安全,详细信息,请参见配置NAT公网数据传输

    • 建议使用file_extend打印日志进行测试,不要使用stdout。

  6. 单击下一步,配置管道参数。

    管道参数配置

    参数

    说明

    管道工作线程

    并行执行管道的Filter和Output的工作线程数量。当事件出现积压或CPU未饱和时,请考虑增大线程数,更好地使用CPU处理能力。默认值:实例的CPU核数。

    管道批大小

    单个工作线程在尝试执行Filter和Output前,可以从Input收集的最大事件数目。较大的管道批大小可能会带来较大的内存开销。您可以设置LS_HEAP_SIZE变量,来增大JVM堆大小,从而有效使用该值。默认值:125。

    管道批延迟

    创建管道事件批时,将过小的批分派给管道工作线程之前,要等候每个事件的时长,单位为毫秒。默认值:50ms。

    队列类型

    用于事件缓冲的内部排队模型。可选值:

    • MEMORY:默认值。基于内存的传统队列。

    • PERSISTED:基于磁盘的ACKed队列(持久队列)。

    队列最大字节数

    请确保该值小于您的磁盘总容量。默认值:1024 MB。

    队列检查点写入数

    启用持久性队列时,在强制执行检查点之前已写入事件的最大数目。设置为0,表示无限制。默认值:1024。

    警告

    配置完成后,需要保存并部署才能生效。保存并部署操作会触发实例重启,请在不影响业务的前提下,继续执行以下步骤。

  7. 单击保存或者保存并部署

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

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

  8. 在创建成功提示框中,单击确认,在管道列表中查看创建成功的管道。

    等待实例重启完成后,即可完成管道任务的创建。

修改管道

警告

修改管道后,在保存并部署时会触发实例重启,请在不影响业务的情况下执行操作。

  1. 管道列表区域,单击目标管道右侧操作列下的修改管道

  2. 修改管道任务页面,修改管道的Config配置管道参数配置管道ID不可修改)。

  3. 单击保存保存并部署,等待实例重启完成后,即可完成管道修改。

复制管道

警告

复制管道后,在保存并部署时会触发实例重启,请在不影响业务的情况下执行操作。

  1. 管道列表区域,选择目标管道右侧操作列下的更多 > 复制管道

  2. 复制管道任务页面,修改管道ID,其他配置保持不变。

  3. 单击保存保存并部署,等待实例重启完成后,即可完成管道复制。

删除管道

警告
  • 管道删除后无法恢复,正在运行的管道任务会被中断,请确认后操作。

  • 管道删除操作会触发实例变更,请在不影响业务的情况下执行操作。

  1. 管道列表区域,选择目标管道右侧操作列下的更多 > 删除管道

  2. 删除管道对话框中,查看风险提示。

  3. 单击继续,等待实例变更完成后,即可删除管道。

相关文档

常见问题