kiban分析nginx日志:
(1) 配置:
input {
file {
start_position => "beginning"
path => ["/tmp/access.log"]
#path => ["/var/log/nginx/access.log"]
}
}
filter {
# 分析文本并解析提取需要的字段
grok {
# 匹配文本字段,可以引用内置的正则变量。
match => {
"message" => "%{COMMONAPACHELOG}"
}
}
# 解析日期的相关字段
date {
# 对时间进行格式化匹配并转换为ES的date类型。
match => [
# "28/May/2023:16:46:15 +0800"
"timestamp", "dd/MMM/yyyy:HH:mm:ss Z"
]
# 将转换后的结果存储在指定字段,若不指定,则默认覆盖@timestamp字段。
target => "baimei-timestamp"
}
# 分析客户端设备类型
useragent {
# 指定要分析客户端的字段
source => "message"
# 指定将分析的结果放在哪个字段中,若不指定,则放在顶级字段中。
target => "baimei-agent"
}
# 基于IP地址分析地理位置
geoip {
# 指定基于哪个字段分析IP地理位置
source => "clientip"
}
}
output {
elasticsearch {
hosts => ["10.0.0.111:19200","10.0.0.112:19200","10.0.0.113:19200"]
index => "baimei-nginx-access-%{+yyyy.MM.dd}"
}
# stdout {
# codec => rubydebug
# }
}
(2) kibana
然后我们点击 Map
这里要修改 索引中的类型;
具体可以参考: https://www.baimeidashu.com/10259.html
我们上一步,编辑的模板文件中的 映射信息,所以 会自动的转换
然后删除索引 重新上传数据。
然后写几条日志,测试一下:
geoip.location 的字段变化了。
然后我们点击map ,添加图层
菜单栏 ---> Maps ---> 添加图层 ---> 文档 ---> 选择已添加的索引
成功了。
添加图层