当前位置: 首页 > 后端技术 > Java

弹力叠那些东西【10】

时间:2023-04-01 21:24:42 Java

logstash架构pipelineinput-filter-output3-stage处理流程队列管理插件生命周期管理logstash事件内部流数据表示当原始数据在输入端转化为事件,在输出端转化为目标格式事件数据在配置文件中为事件添加、删除、修改和检查队列中的属性在内存中,无法处理崩溃和停机,导致数据丢失。磁盘持久化队列可以处理崩溃等,数据不会丢失。确保数据至少被消耗一次。作为缓冲区替代kafka和其他消息队列。queue.type:persisted(默认内存)queue.max_bytes:4gb队列最大存储数据量线程配置pipeline.workers|-wpipeline线程数为filter_output处理线程数默认为CPU数corespipeline.batch.size|-bbatcher获取一次要分批处理的文档数量默认为125,可以根据输出调整。占用的heap空间越大,pipeline.batch.delay|-uBatcher等待时间可以通过jvm.options以ms为单位进行调整。配置logstash设置配置文件logstash.ymllogstash配置如node.namepath.datapipeline.workersqueue.typejvm.options修改jvm参数如heapsizepipeline定义数据处理流程文件以conf结尾多实例运行bin/logstash--path.settingsinstance1/2修改不同实例的logstash.yml,自定义路径。数据确保不是同一个管道配置用于配置输入过滤输出插件input{}filter{}output{}mainvaluetypeboolean:isFailed=>truevaluetypeNumberport=>33stringtypeStringname=>"helloworld"数组users=>[{id=>1,name=>bob},{id=>2,name=>lili}]path=>["/var/log/messages","/var/log/*.log"]hashmatch=>{"filed1"=>"value1""field2"=>"value2"}注意#配置中可以参考logstash事件的属性。使用[]直接引用字符串世界引用字段值主要有两种方式。{}实现,例如req=>"requestis%{request}"支持条件判断语法=>=正则模式是否匹配:=~!~包含(字符串或数组):in,notin布尔运算符:andornandxor!分组运算符:()