需求背景:小组内需要做一些日志分析工作,但生产环境的日志不包含请求时间数据,但是直接修改生产配置影响太大,所以只能增加一个nginx日志格式同时产生两种日志并分开存储,之后通过firebeat做字段分离并将其传输到logstash(这里用firebeat传输到logstash的原因是,nginx日志存储生产环境使用的是firebeat,而日志分析的elk部署在另一个AWS区域的非生产环境),最后在logstash当中做类型转换,然后在kibana中展示、分析
软件版本:本次搭建使用的软件都是6.2.4版本
同时本文不详细讲述搭建过程,只说明搭建过程中的几个难点,至于软件安装,百度和官方都有文档说明。
难点1.nginx更换日志格式
直接在nginx配置日志格式,并重启即可,如有旧版本的日志,建议清除或者指定新的日志文件(注:nginx可以指定多分不同格式的日志文件,将其存储在不同的文件即可)
include mime.types;
default_type application/octet-stream;
log_format json '{"@timestamp": "$time_iso8601", '
'"time": "$time_iso8601", '
'"remote_addr": "$remote_addr", '
'"AWS_ALB_ip": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"request_time": "$request_time", '
'"upstream_response_time": "$upstream_response

本文介绍了在需要进行日志分析的背景下,如何修改Nginx日志格式,生成包含请求时间的数据,并通过firebeat传输到非生产环境的logstash。难点包括Nginx日志字段的解释、字段分离的实现以及在ELK中处理数据类型以支持聚合分析。在Logstash中转换字段类型,确保可以在Kibana中进行有效展示和分析。
最低0.47元/天 解锁文章
541

被折叠的 条评论
为什么被折叠?



