Ngnix 日志管理及 Shell 实现定时完成日志切割

标签: 操作系统 编程开发 Ngnix shell 日志 | 发表时间:2015-03-04 08:29 | 作者:codeceo
出处:http://www.codeceo.com

一、日志管理

先来看看ngnix的配置文件的server段

接下来我们解释一下默认格式的具体意思

#log_format main ‘$remote_addr(远程IP) – $remote_user(远程用户) [$time_local](访问时间) “$request”(请求方式) ‘
# ‘$status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等) “$http_referer”(referer来源信息) ‘
# ‘”$http_user_agent(用户代理)” “$http_x_forwarded_for(被转发的请求的原始IP)”‘;

注:(1)http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

  (2)日志的格式我们也可以自己定义

我们具体看一下日志记录的信息

Ngnix允许针对不同的server做不同的log,接下来我们自己做一个

保存并退出,然后重新加载一次配置文件

因为我们没开启日志格式,进入配置文件开启即可

接下来重载配置文件成功,然后访问下服务器,再查看log目录下是否有kelly.log日志文件,然后在more kelly.log看是否有日志记录

二、用定时任务完成日志切割备份

思路:用shell写一个脚本,每到00:00:01时就把昨天的日志按日期时间格式重命名,放在相应的目录下,再用USR1信息号控制ngnix重新生成新的日志文件。

接下来我们在/usr/local/ngnix/data目录下做实验,创建一个shell脚本,文件名为runlog.sh

我以下图对此脚本做详细解释

我附上该shell脚本源码,方便读者做测试:

#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

接下来做个定时任务,按指定时间自动执行此脚本(这里我是做测试,所以我每分钟执行一下这个脚本,方便看效果)

然后查看最终效果

此时,我们已经完成了用定时任务执行脚本,然后做日志切割备份。

相关 [ngnix 日志 管理] 推荐:

Ngnix 日志管理及 Shell 实现定时完成日志切割

- - 码农网
先来看看ngnix的配置文件的server段. 接下来我们解释一下默认格式的具体意思. #log_format main ‘$remote_addr(远程IP) – $remote_user(远程用户) [$time_local](访问时间) “$request”(请求方式) ‘. # ‘$status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等) “$http_referer”(referer来源信息) ‘.

日志管理

- - CSDN博客系统运维推荐文章
#很关键 [root@client01 ~]# ls /var/log/ anaconda.ifcfg.log. tallylog #关键日志,大部分记录在里面 [root@client01 ~]# ls /var/log/messages /var/log/messages. [root@client01 ~]# ps -ef|grep log #系统日志服务 root.

windows下一分钟配置ngnix实现HLS m3u8点播

- - 三棵杏软件工作室
下载 nginx-1.5.10 for windows 2. 修改配置文件nginx-1.5.10\conf\nginx.conf,增加以下行到最后一个"}"的前一行:. } 同时,新建子目录:nginx-1.5.10\html\hls,把生成的m3u8和切片好的ts文件或目录拷贝到hls目录下 3.

使用Spring进行统一日志管理 + 统一异常管理

- - 编程语言 - ITeye博客
统一日志和异常管理配置好后,SSH项目中,代码以往散落的log.info() 和 try..catch..finally 再也不见踪影.  * 由Spring AOP调用 输出异常信息,把程序异常抛向业务异常 .         // 在后台中输出错误异常异常信息,通过log4j输出.         // 在这里判断异常,根据不同的异常返回错误.

linux日志集中管理查看syslog-ng+splunk

- - C1G军火库
syslog-ng ,可以简单的看成取代 syslog 的的日志服务器,企业级的.目前我们使用的 syslog-ng 开源版本是启动于十年之前的 syslog-ng 项目的“直系后代”.syslog-ng可运行与“server”和“agent”模式,分别支持 UDP、可靠的TCP和加密的TLS协议.syslog 可以用来在混合复杂的环境里建立灵活的、可靠的日志服务器..

Java程序员须知的七个日志管理工具

- - ImportNew
Splunk>Storm 日志管理工具有Splunk、Sumo Logic、LogStash、GrayLog、Loggly和PaperTrails等等,数不胜数. 日志就像石油,二十多年了我们一直想摆脱它,却一直没有做到. 为了处理日益增长的数据,近年来出现了一大批分析和管理日志的工具,开发和管理人员能够借助这些工具来了解增长的数据.

SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)

- - 企业架构 - ITeye博客
         从业近二,三年了,第一次写博客,平时做做脚手架或者架构一些基础框架然后给大家使用或者自己总结翻译一些文档. 虽然是第一次但是我还是要拿Spring开刀. 希望张开涛,涛兄看到的时候不要喷我,给我一点指导.          首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题.

向IPO进发!日志管理分析平台Sumo Logic获7500万美元F轮融资

- - 36氪
6月27日,基于云计算的日志管理分析平台Sumo Logic宣布完成7500万美元的F轮融资,进入IPO之前的冲刺阶段. 此轮投资由Sapphire Ventures领投,Accel Partners、DFJ Growth、Greylock Partners、Institutional Venture Partners、红杉资本和Sutter Hill Ventures等跟投.

Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况,在方法调用前

- - 行业应用 - ITeye博客
原文地址: http://hi.baidu.com/wolf_childer/item/f0b5b0e664252cacc10d75d1.        在java开发中日志的管理有很多种. 我一般会使用过滤器,或者是Spring的拦截器进行日志的处理. 如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个方法的调用.

日志优化

- - 互联网 - ITeye博客
在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索. 绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢. 今天就让我们来聊聊Java日志性能那些事. 说到Java日志,大家肯定都会说要选择合理的日志级别、合理控制日志内容,但是这仅是万里长征第一步……哪怕一些 DEBUG级别的日志在生产环境中不会输出到文件中,也可能带来不小的开销.