一、说明
自定义一个配置文件
- 匹配内容
[2020-09-26 13:07:54] GET http://www.test.com/index/index/test 0.118220
- 配置文件
# 从日志写入信息
input {
file {
# path:输入的文件的路径 string or array
# 读取一个类型文件:path => "路径"
# 读取多个类型文件:path => [ "路径1", "路径2", "...", "路径n" ]
path => "E:/test/log/*/*.log"
start_position => "beginning" #从什么位置开始读取文件 "beginning","end"
stat_interval => 3 # 我们统计文件的频率(以秒为单位),以查看它们是否已被修改。number或者string_duration("1 second")
}
}
# 处理从日志读取到的日志
filter {
# 使用grok正则匹配
grok {
match => {
# 默认每一行为一条es记录,这一行的内容为es记录的message字段。
# message配置单个规则: "message" => "规则1"
# message配置多个规则: "message" => ["规则1", "规则2", ..., "规则n"]
"message" => [
"\[%{TIMESTAMP_ISO8601:timestamp}\] %{USERNAME:method}[T ]%{URL:url} %{NUMBER:exec_time}"
]
}
}
# 把我们的字段timestamp替换掉系统默认的字段@timestamp
date {
match => ["timestamp", "ISO8601"]
target => "@timestamp"
}
mutate{
# 删除我们的字段timestamp。不删除的话es:如果正则匹配成功,一条记录就会有2个字段;timestamp,@timestamp
remove_field => ["timestamp"]
}
}
# 输出信息到 es
output {
elasticsearch {
# host(同message配置):string or array
hosts => ["localhost:9200"] #配置Es地址
index => "info-%{+YYYY.MM.dd}" #配置es索引(表名)
}
}
URL
为自定义正则 ELK logstash的grok 自带的正则匹配、自定义正则 使用
二、windows启动logstash
cd D:\ProgramFiles\ELK\logstash-7.2.0\bin
logstash.bat -f ../logstash_test.conf
- 配置文件
logstash_test.conf
写哪都可以,只要你能够正确指定。我的配置文件写在logstash-7.2.0 根目录
,也是bin 的同级目录