if "_grokparsefailure" not in [tags] {
if [ip] !~ "^127\.|^192\.168\.|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[01]\.|^10\." {
geoip {
source => "ip"
}
}
}
filter {
date {
locale => "en_US"
match => [ "logdate", "MMM dd yyyy HH:mm:ss", "MMM d yyyy HH:mm:ss", "ISO8601" ]
target => "@timestamp"
add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }
}
}
日期格式
ISO8601
2011-04-19T03:44:01.103Z
UNIX
1326149001
1326149001.132
UNIX_MS
1366125117000
year
yyyy: 2015
yy: 15
month of the year
M: 1
MM: 01
MMM: Jan
MMMM: January
day of the month
d: 1
dd: 01
hour of the day (24H)
H: 0
HH: 00
minutes of the hour
m: 0
mm: 00
seconds of the minute
s: 0
ss: 0
fraction of a second
S: 0
SS: 00
SSS: 000
time zone offset or identity
Z: -0700
ZZ: -07:00
ZZZ: America/Los_Angeles
time zone names
z
week of the year
w: 1
ww: 01
day of the year
D: 1
day of the week
e: 1
day of the week
E, EE, EEE: Mon
EEEE: Monday
"2015-01-01T01:12:23"
"yyyy-MM-dd'T'HH:mm:ss"
安装
启动
Windows需要双引号
本地测试
输出到ES
多重输出
使用配置文件启动
配置文件
条件判断支持:
if
,else if
,else
,==
,!=
,<
,>
,<=
,>=
,=~
,!~
,in
,not in
,and
,or
,nand
,xor
,!
,()
logstash-filebeat.conf
logstash-apache.conf 文件路径必须为绝对路径 使用默认
index => "logstash-%{+YYYY.MM.dd}"
将会触发默认ILM而生成logstash-YYYY.MM.dd-000001
格式的index,默认策略为达到50GB或30天后发生rollover 使用ilm_rollover_alias将覆盖index设置logstash-csv.conf
logstash-gelf.conf
grok正则表达式
https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
文件位置记录
logstash会记录文件读取位置
删除文件即可重新读取日志文件
使用最新的geoip
排除内网地址
解析userAgent
解析日期
注意日期day之前有时是一个空格有时是两个空格 默认target=
@timestamp
日期格式