nginx(日志管理之日志的使用、定时任务完成日志切割)
来源:互联网 发布:项目计划表软件 编辑:程序博客网 时间:2024/06/14 11:01
说明:本文主要介绍nginx的日志管理,具体包括日志的使用、日志切割备份。
查看Nginx的server段,可以看到如下信息:
#access_log logs/host.access.log main;
这说明,该server,他的访问日志文件是logs/host.access.log。使用的格式是“main”,除了main格式,还可以自定义其他格式。
Main格式:log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent"$http_referer" '
'"$http_user_agent""$http_x_forwarded_for"';
Main格式是一种定义好的日志格式,并起的名字,便于引用。
以上的例子,main类型的日志,记录的remote_addr…http_x_forwarded_for等选项。
参数详情:参数
说明
示例
$remote_addr
客户端地址(远程地址)
211.28.65.253
$remote_user
客户端用户名称
(远程客户机名称)
--
$time_local
访问时间和时区
18/Jul/2012:17:00:01 +0800
$request
请求的URI和HTTP协议
"GET /article-10000.html HTTP/1.1"
$http_host
请求地址,即浏览器中你输入的地址(IP或域名)
192.168.100.100
$status
HTTP请求状态
200
$upstream_status
upstream状态
200
$body_bytes_sent
发送给客户端文件内容大小
1547
$http_referer
url跳转来源
https://www.baidu.com/
$http_user_agent
用户终端浏览器等信息
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$ssl_protocol
SSL协议版本
TLSv1
$ssl_cipher
交换数据中的算法
RC4-SHA
$upstream_addr
后台upstream的地址,即真正提供服务的主机地址
10.10.10.100:80
$request_time
整个请求的总时间
0.205
$upstream_response_time
请求过程中,upstream响应时间
0.002
Nginx针对不同的server段可以做不同的log。日志的使用
1、打开主配置文件,将log_format的注释去掉
http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';#(需要打开) .....}
2、在你需要的server的段里面配置日志存放位置
server {listen 80;server_name 192.168.0.2;location / { root z.com; index index.html indexIp.html;}access_log logs/z.com.log192.log main; //日志存放在logs/z.com.log192.log 其格式是main格式(配置的日志文件不必提前先创建,因为nginx启动访问server就会自动生成日志文件)}
然后启动nginx查看目录下是否有新生成的日志文件。
查看日志里面的信息
定时任务完成日志切割
1、创建一个日志切割的脚本
Vi /data/runlog.sh(创建一个脚本为runlog.sh的脚本,路径位置为/usr/local/nginx/data/runlog.sh)在里面写入脚本
#!/bin/bashLOGPATH=/usr/local/nginx/logs/z.com.access.logBASEPATH=/data/$(date –d yesterday +%Y%m)mkdir –p $BASEPATHbak=$BASEPATH/$(date –d yesterday +%d%H%M).zcom.access.logmv $LOGPATH $baktouch $LOGPATHkill -SIGUSR1 `cat /usr/local/nginx/logs/nginx.pid`
记得最后一行的“-SIGUSR1”命令根据操作系统不同使用会有所差异,所以需要查询自己的系统是不是这样写的。使用命令kill -l就可以看到支持那些命令。
脚本说明:定义日志存放路径,然后计算今天的日期确定存放的目录,然后将这个目录创建出来。然后再根据“时和分”计算出日志名称(存放在那个目录下)。然后将日志移动到文件夹中。然后创建一个新的空日志文件,下次创建日志的时候,里面是重新开始记录日志的。
2、创建一个定时器
Crontab -e
01 00 * * * /xxx/path/b.sh 每天0时1分(建议在02-04点之间,系统负载小)
这样日志就会每天定时备份到指定位置中去。
小技巧:一般手动切割日志查看具体信息可以这样写:
tail -n 30000 logs/catalina.out > a.txt (截取后3万行日志,保存到a.txt中)
- nginx(日志管理之日志的使用、定时任务完成日志切割)
- 定时任务完成日志切割
- linux CentOS7 下 Nginx 1.13.7 日志管理(定时任务完成日志切割)
- Nginx之日志的切割
- 每天定时切割nginx日志的脚本
- docker 内cron建立定时任务完成nginx 日志轮询切割
- Linux 定时切割日志任务
- nginx日志定时切割脚本
- 每天定时切割nginx日志
- Nginx日志定时切割脚本
- nginx的日志切割
- nginx的日志切割
- logrotate切割日志之nginx
- 使用golang切割nginx日志
- 定时任务分割nginx日志
- 编写定时切割Nginx日志脚本
- Linux下nginx日志每天定时切割
- 编写每天定时切割Nginx日志的脚本
- apt-get update与apt-get upgrade区别
- nodejs-004JSMath函数/数组/表/字符串/常用接口
- 解决ubuntu+win10双系统循环进入启动界面导致无法启动win10的问题
- LeetCode
- 黑色帽子
- nginx(日志管理之日志的使用、定时任务完成日志切割)
- cordova build app提示找不到javac
- ionic3+angular4中给DOM添加监听事件后报错:Uncaught (in promise): TypeError: Cannot read property 'addEventListen
- 计算机程序的思维逻辑 (14)
- 杀菌锅的特点
- 【转载】appium简明教程
- font-awesome-animated字体的动画效果
- Tensorflow的Bazel编程(二)
- JSTL标签的使用方法以及<c:forEach>的详解