logstash是ELK中收集信息的部分,发送到elasticsearch,最近在配置这一块,记录一下
我用的是logstash-7.6.2
下载logstash-7.6.2.tar.gz包后解压
tar -zxvf logstash-7.6.2.tar.gz
进入到logstash-7.6.2/config下新增一个config文件,我这里增加一个toes.config
input {
file {
#日志路劲
path => ["日志文件地址/*.log4j"]
#排除日志文件 *为通配符
exclude => ["all*.log"]
#type自定义
type => "65applog"
#start_position => "beginning"
#sincedb_path => "/dev/null"
#使用正则表达式,合并多行日志
codec => multiline {
pattern => "^\<log4j:event" #发现<log4j:event,就合并日志
negate => true
what => "previous"
}
}
}
output {
elasticsearch {
hosts => ["http://elastic IP:9200"]
#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
index => "wmsapplog"
#user => "elastic"
#password => "changeme"
}
#stdout {codec => rubydebug}
}
如果是多个路劲的日志文件也可以这样配置
input {
file {
path => ["日志路劲1/server.log*"]
exclude => ["all*.log"]
type => "65serverlog"
#使用正则表达式,合并多行日志
codec => multiline {
pattern => "^\d{2}\:\d{2}\:\d{2}\,\d{3}" #发现日期02:01:01,123像这种,就合并日志
negate => true
what => "previous"
}
}
file {
path => ["日志路劲2/epny*.log4j"]
exclude => ["all*.log"]
type => "65uilog"
#start_position => "beginning"
#sincedb_path => "/dev/null"
#使用正则表达式,合并多行日志
codec => multiline {
pattern => "^\<log4j:event" #发现<log4j:event,就合并日志
negate => true
what => "previous"
}
}
}
output {
#如果想要两个日志索引不一样可根据type判断
# if [type] == "65serverlog"{
# elasticsearch {
# hosts => ["http://ElasticSeach IP:9200"]
# #index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
# index => "索引名"
# #user => "elastic"
# #password => "changeme"
# }
#}
# if [type] == "66serverlog"{...}
elasticsearch {
hosts => ["http://ElasticSeach IP:9200"]
#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
index => "wmsuilog"
#user => "elastic"
#password => "changeme"
}
#stdout {codec => rubydebug}
}
然后再配置pipeline.yml中增加如下部分
- pipeline.id: toes
path.config: 路劲/toes.config
#如果多个config文件继续添加即可
#- pipeline.id: toes1
# path.config: 路劲/toes1.config
配置完成,启用应用
#后台启动
nohup /infor/logstash/logstash-7.6.2/bin/logstash -f > /dev/null 2>&1 &
第一次启动完之后发现报错,原因是需要jdk1.8以上,因为我以前应用安装的是jdk1.7,所以这里我指定路劲下jdk1.8,具体需要修改config下配置文件startup.options在第一行增加如下图所示即可
重新启动成功