- A+
所属分类:Nginx
nginx的日志配置可以参见《nginx日志配置》一文。如果要想以json格式记录nginx日志以便logstash分析,该如何指定日志格式呢?可以按照下面的格式来实现。
定义nginx日志格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
log_format logstash_json '{ "@timestamp": "$time_local", ' '"@fields": { ' '"remote_addr": "$remote_addr", ' '"remote_user": "$remote_user", ' '"body_bytes_sent": "$body_bytes_sent", ' '"request_time": "$request_time", ' '"status": "$status", ' '"request": "$request", ' '"request_method": "$request_method", ' '"http_referrer": "$http_referer", ' '"body_bytes_sent":"$body_bytes_sent", ' '"http_x_forwarded_for": "$http_x_forwarded_for", ' '"http_user_agent": "$http_user_agent" } }'; |
指定记录日志格式:
1 |
access_log /data/logs/nginx/www.ttlsa.com.access.log logstash_json; |
日志输出如下:
不利于阅读。复制到http://jsonlint.com/美化下格式。

微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
27/03/2015 上午 1:08 沙发
Parse error on line 16:
…ild/JSS15J)" }}{ "Timestamp": "
———————^
Expecting ‘EOF’, ‘}’, ‘,’, ‘]’
27/03/2015 上午 10:13 1层
@汪仁君 格式出错
29/03/2015 下午 4:43 2层
@默北 是的,那请问我改如何修正呢?我完全按照您的设置来的。
07/04/2015 下午 6:01 3层
@汪仁君 你的格式没有贴出来呢。
21/07/2014 上午 8:42 板凳
ipstream加进去感觉好点,可以清晰判断是Nginx还是后端返回的,防止跟开发扯皮
"upstream": "$upstream_addr":"$upstream_status"’;