logstash学习(四)—— 多管道
Apr 10, 2019
1. 多管道配置
如果需要在同一个进程运行多个管道(pipeline),可以配置logstash的pipelines.yml文件,该文件在logstash/config目录下。配置文件的结构如下:
|
|
配置文件需要遵循yaml格式列出一组路径,每个路径都描述了一个管道信息,并且需要以键值对的形式对管道进行描述。上述例子展现了两种通过ID和路径信息描述管道的方式。对于第一个管道,pipeline.workers的值被设置为3,而在另一个则启用持久队列特性。管道之间的资源竞争是很重要的,因为默认值是为单个管道调优的,考虑减少每个管道使用的管道工人的数量可以对单个管道调优,因为默认情况下每个管道每个CPU核心将使用1个工人。在pipelines.yml文件中未显式设置值的将使用默认值。
2. 启动
在logstash的bin目录下:
|
|
在没有参数的情况下启动logstash时,它将读取pipelines.yml文件并实例化文件中指定的所有管道,当使用-e或-f时,Logstash会忽略pipelines.yml文件,并记录对此的警告。
3. 注意事项
- 当输入使用相同插件的时候,比如都用了s3插件,需要考虑了设置临时存储文件的路径。因为s3插件在没有设置文件下载路径的情况下,默认把文件下载到了“/tmp/logstash”路径下,当有多个管道进行一起下载的时候,如果对命名没有区分,则可能造成处理文件出现异常。解决方法是指定各自管道的临时存储路径,s3的指定方法是设置temporary_directory参数,并在路径下创建指定的目录。
- 当数据导入出现异常,需要删除数据重新启动的时候,需要先删除对导入数据进度的记录文件,具体做法是将logstash\data\下的文件都删掉。
