nginx日志按照天进行分割

简介:

直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务。需要使用到$time_iso8601 内嵌变量来获取时间。$time_iso8601格式如下:2015-08-07T18:12:02+02:00。然后使用正则表达式来获取所需时间的数据。

按天分割日志

使用下面的代码块

1
2
3
4
5
6
7
if  ($time_iso8601 ~  "^(\d{4})-(\d{2})-(\d{2})" ) {
     set  $year $ 1 ;
     set  $month $ 2 ;
     set  $day $ 3 ;
}
  
access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;

也可以使用Perl语法来捕获,如下:

1
2
3
if  ($time_iso8601 ~  "^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})" ) {}
  
access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;

按时、分、秒分割

1
2
3
4
5
6
7
8
9
if  ($time_iso8601 ~  "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})" )
{
     set  $year $ 1 ;
     set  $month $ 2 ;
     set  $day $ 3 ;
     set  $hour $ 4 ;
     set  $minutes $ 5 ;
     set  $seconds $ 6 ;
}

非常方便的进行日志分割。建议按小时分割日志,方便分析查询日志。

1
2
3
4
5
6
7
8
9
10
server {
     listen        80 ;
     server_name  www.test.com;
     if  ($time_iso8601 ~  "^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})" ) {}
     access_log / var /log/nginx/www.test.com-$year-$month-$day-access.log;
     location / {
                root   html;
                index  index.html index.htm;
             }
}

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1786551如需转载请自行联系原作者

qianghong000
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
28天前
|
存储 JSON 应用服务中间件
Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?
【2月更文挑战第30天】Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?
15 2
|
3月前
|
Java 应用服务中间件 nginx
微服务框架(二十九)Logstash Nginx 日志上报
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Logstash Nginx 日志上报 本系列文章中所使用的框架版本为Spring Boot 2.0.3...
|
9天前
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
16 2
|
14天前
|
存储 Java
用logrote和split分割nohup.out日志
用logrote和split分割nohup.out日志
|
1月前
|
域名解析 网络协议 应用服务中间件
nginx-ingress通过ipv6暴露服务,并在nginx ingress日志中记录客户端真实ipv6的ip地址
本文主要通过阿里云提供的clb和nlb来实现,建议是提前创建好双栈的vpc和vsw(使用clb可以不用双栈vpc和vsw)
175 1
|
3月前
|
负载均衡 应用服务中间件 nginx
【实践】使用Nginx作为GrayLog日志接入的负载均衡
【实践】使用Nginx作为GrayLog日志接入的负载均衡
39 0
|
3月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
33 0
|
3月前
|
消息中间件 JSON 负载均衡
ELK7.x日志系统搭建 2. Nginx、Cluster等日志收集
ELK7.x日志系统搭建 2. Nginx、Cluster等日志收集
111 0
|
3月前
|
存储 监控 Ubuntu
日志切割工具-Logrotate实现nginx日志切割
日志切割工具-Logrotate实现nginx日志切割
36 0
|
3月前
|
应用服务中间件 nginx
nginx日志模块 ngx_http_log_module
nginx日志模块 ngx_http_log_module