Logstash 参考指南(多个管道) - 风继续吹 - SegmentFault 思否
- -如果需要在同一进程中运行多个管道,Logstash提供了一种通过名为. pipelines.yml的配置文件完成此操作的方法,这个文件必须放在. path.settings文件夹,并遵循此结构:. 该文件在YAML中格式化并包含一个字典列表,其中每个字典描述一个管道,每个键/值对指定该管道的设置. 这个示例展示了两个不同的管道,它们由ID和配置路径描述,对于第一个管道,.
如果需要在同一进程中运行多个管道,Logstash提供了一种通过名为 pipelines.yml
的配置文件完成此操作的方法,这个文件必须放在 path.settings
文件夹,并遵循此结构:
- pipeline.id: my-pipeline_1
path.config: "/etc/path/to/p1.config"
pipeline.workers: 3
- pipeline.id: my-other-pipeline
path.config: "/etc/different/path/p2.cfg"
queue.type: persisted
该文件在YAML中格式化并包含一个字典列表,其中每个字典描述一个管道,每个键/值对指定该管道的设置。这个示例展示了两个不同的管道,它们由ID和配置路径描述,对于第一个管道, pipeline.workers
的值被设置为3,而在另一个则启用持久队列特性,在 pipelines.yml
文件中未显式设置的设置值将退回到 pipelines.yml
设置文件中指定的默认值。
在没有参数的情况下启动Logstash时,它将读取 pipelines.yml
文件并实例化文件中指定的所有管道,另一方面,当你使用 -e
或 -f
时,Logstash会忽略 pipelines.yml
文件,并记录对此的警告。
如果当前配置的事件流不共享相同的输入/过滤器和输出,并且使用标记和条件将它们彼此分离,那么使用多个管道尤其有用。
在一个实例中有多个管道还允许这些事件流具有不同的性能和耐久性参数(例如,管道工作人员和持久队列的不同设置),这种分离意味着,一个管道中的阻塞输出不会对另一个管道产生反压力。
也就是说,考虑管道之间的资源竞争是很重要的,因为默认值是为单个管道调优的,因此,例如,考虑减少每个管道使用的管道工人的数量,因为默认情况下每个管道每个CPU核心将使用1个工人。
每个管道都隔离了持久队列和死信队列,它们位置的命名空间为 pipeline.id
值。