环境:
window10
jdk11
logstash-7.8.0
解压缩目录结构:
LogStash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中
LogStash 是常用的日志采集系统,常用于输出到Elasticsearch
一、配置
配置文件结构:
注意:logstash目录路径中不能存在中文名称
# 输入
input {
...
}
# 过滤器
filter {
...
}
# 输出
output {
...
}
inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd
二、示例
1、LogStash直接采集日志输出到 ElasticSearch
input {
file {
path => "c:/logs/a.log"
start_position => "beginning" # 默认值为end,
Logstash 开始读取文件的初始位置:开始或结束type => "Information" # 添加一个type字段
add_field => {"test"=>"test"} #添加自定义的字段
ags => "标签一" #增加标签
}
file {
path => ["c:/logs/error.log","c:/logs/error1.log"]
start_position => "beginning" # 默认值为end,
Logstash 开始读取文件的初始位置:开始或结束type => "Error" # 添加一个type字段
}
}
filter {
}
output {
elasticsearch { hosts => ["localhost:9200"] }
}
2、filebeat采集日志输出到logstash,logstash再输出到 ElasticSearch
修改filebeat中的filebeat.yml:
filebeat采集日志输出到logstash
filebeat.inputs:
- type: log
enabled: true
paths:
- c:/log/*.log- c:/error/*.log
output.logstash:
hosts: ["localhost:5044"]
修改logstash.conf :
input {
beats {
port => "5044"
}
}
filter {
}
output {
elasticsearch {
hosts => [ "127.0.0.1:9200" ]
}
}
三、运行
cmd运行:
找到logstash的bin目录运行,指定 logstash.conf 配置文件路径运行
logstash -f ../config/logstash.conf