ELK学习笔记之logstash配置多入多出并互相隔离
0x00 概述
需求:需要利用同一logstash进程采集不同日志,输出到es的不同index,各输入输出隔离;
主要需要解决如下两个问题:
0x01 如何加载多个配置文件
普通启动方式:
nohup bin/logstash -f config/logstash.conf &
多配置文件启动方式:
nohup bin/logstash -f config/java-conf &
注意:java-conf为目录,将加载该目录下所有配置文件;不要使用config/java-conf/*.conf
问题:配置不当,各输入输出会存在交叉,解决办法参考以下第二点。
0x02 如何隔离各输入输出
利用type,对输入输出进行筛选,配置参考:
log1.conf input { file { type => "log1" path => "/**/log1.log" discover_interval => 10 # 监听间隔 start_position => "beginning" #从头开始 } } #输出到elasticsearch output { if [type] == "log1"{ elasticsearch { index => "log1-%{+YYYY.MM.dd}" hosts => "192.168.2.32:9200" #输出到elasticsearch 对应服务器 } } } log2.conf input { file { type => "log2" path => "/**/log2.log" discover_interval => 10 # 监听间隔 start_position => "beginning" #从头开始 } } #输出到elasticsearch output { if [type] == "log2"{ elasticsearch { index => "log2-%{+YYYY.MM.dd}" hosts => "192.168.2.32:9200" #输出到elasticsearch 对应服务器 } } }
PS:index名不能包含大写字母。