file:使用file 作为输入源
path: 日志的路径,支持/var/log.log,及[ “/var/log/messages”, “/var/log/.log” ] 格式
start_position: 从文件的开始读取事件。
另外还有end参数
ignore_older: 忽略早于24小时(默认值86400)的日志,设为0,即关闭该功能,以防止文件中的事件由于是早期的被logstash所忽略。
filter段:
grok:数据结构化转换工具
match:
匹配条件格式,将nginx日志作为message变量,并应用grok条件NGINXACCESS进行转换
geoip: 该过滤器从geoip中匹配ip字段,显示该ip的地理位置
source:
ip来源字段,这里我们选择的是日志文件中的最后一个字段,如果你的是默认的nginx日志,选择第一个字段即可(注:
这里写的字段是/opt/logstash/patterns/nginx 里面定义转换后的)
target:
指定插入的logstash字断目标存储为geoip
database:
geoip数据库的存放路径
add_field: 增加的字段,坐标经度
add_field: 增加的字段,坐标纬度
mutate:数据的修改、删除、类型转换
convert:将坐标转为float类型
convert:http的响应代码字段转换成 int
convert:http的传输字节转换成int
replace:替换一个字段
remove_field:移除message 的内容,因为数据已经过滤了一份,这里不必在用到该字段了。不然会相当于存两份
date: 时间处理,该插件很实用,主要是用你日志文件中事件的事件来对timestamp进行转换,导入老的数据必备!在这里曾让我困惑了很久哦。别再掉坑了
match:匹配到timestamp字段后,修改格式为dd/MMM/yyyy:HH:mm:ss Z
mutate:数据修改
remove_field:移除timestamp字段。
output段:
elasticsearch:输出到es中
host:es的主机ip+端口或者es 的FQDN+端口
index:为日志创建索引logstash-nginx-access-*,这里也就是kibana那里添加索引时的名称