nginx服务器日志介绍与按天分割
来源:互联网 发布:赵薇事件公知 编辑:程序博客网 时间:2024/06/15 20:36
nginx的log日志分为access log 和 error log。 其中access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息。 error log 则是记录服务器错误日志。
nginx的log日志比较强大,可以记录所有的访问记录,从而进行针对性分析。但是如果把所有访问日志都放到一个文件的话,随着时间的进行,文件会越来越大,而积累的内容也不利于我们进行有效性的分析,所以对日志文件进行合理切割是有必要的。
nginx日志的常规格式的参数明细表:
$remote_addr
客户端的ip地址(代理服务器,显示代理服务ip)
$remote_user
用于记录远程客户端的用户名称(一般为“-”)
$time_local
用于记录访问时间和时区
$request
用于记录请求的url以及请求方法
$status
响应状态码,例如:200成功、404页面找不到等。
$body_bytes_sent
给客户端发送的文件主体内容字节数
$http_user_agent
用户所使用的代理(一般为浏览器)
$http_x_forwarded_for
可以记录客户端IP,通过代理服务器来记录客户端的ip地址
$http_referer
可以记录用户是从哪个链接访问过来的
nginx日志的分割(按天)[root@cqs_test tmp]# vim /usr/local/bin/cut_nginx_logs.sh
#!/bin/bash
#function:cut nginx log files
#set the path to nginx log files(设置nginx日志存储路径)
log_files_path="/usr/local/nginx/logs/"
log_files_dir=${log_files_path}
#set nginx log files you want to cut(切割的日志)
log_files_name=(access)
#set the path to nginx.(nginx命令执行路径)
nginx_sbin="/usr/local/nginx/sbin/nginx"
#Set how long you want to save(日志保存时间)
save_days=10
#############################################Please do not modify the following script ##############################################
mkdir -p $log_files_dirlog_files_num=${#log_files_name[@]}
#cut nginx log files(当前最新日志看 access.log)
for((i=0;i<$log_files_num;i++));domv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday" +"%Y-%m-%d")done
#delete 10 days ago nginx log files(删除10天的日志)
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
#restart nginx
$nginx_sbin -s reload
以上的sh脚本只要针对性地修改对应的路径,便可使用了。
把对应的cut_nginx_logs.sh加入系统计划中
[root@cqs_test tmp]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
#每天0点执行日志切割脚本
00 00 * * * root /usr/local/bin/cut_nginx_logs.sh
[root@cqs_test tmp]# cd /usr/local/nginx/logs/
[root@cqs_test logs]# ll
total 3064
-rw-r--r--. 1 root root 70414 Sep 12 16:34 access.log
-rw-r--r--. 1 root root 246 Sep 1 12:00 access.log_2017-09-03
-rw-r--r--. 1 root root 246 Sep 4 12:00 access.log_2017-09-04
-rw-r--r--. 1 root root 66150 Sep 6 21:08 access.log_2017-09-06
-rw-r--r--. 1 root root 74082 Sep 8 13:58 access.log_2017-09-07
-rw-r--r--. 1 root root 48882 Sep 11 12:00 access.log_2017-09-10
-rw-r--r--. 1 root root 12116 Sep 12 09:57 access.log_2017-09-11
-rw-r--r--. 1 nobody root 2835879 Sep 12 11:46 error.log
-rw-r--r--. 1 root root 5 Sep 12 09:30 nginx.pid
接下来就可以比较方便地分析对应的日志文档了。
- nginx服务器日志介绍与按天分割
- nginx按天分割日志
- nginx 按天分割日志
- Nginx日志按天分割的解决方案 与 实施
- nginx日志按日期分割(按天分割)
- reids按天分割日志
- Nging日志按天分割
- Apache日志按天分割
- 按天分割apache日志
- nginx 日志格式化,按天分割 并删除七天的日志
- Apache中按天分割日志(Windows)
- Apache中按天分割日志(Windows)
- apache 日志按天分割归档
- Weblogic11G,日志功能按天分割记录
- tomcat日志未按天分割
- python对日志按天分割
- nginx 日志按天分割并定时匹配404访问链接
- Nginx按天分割轮询日志文件
- spring和mybatis整合
- 博客怎么写?
- locust
- 解决-maven项目,jsp引入包不起作用
- matlab2c使用c++实现matlab函数系列教程-load函数
- nginx服务器日志介绍与按天分割
- Hibernate的一对一映射
- 欢聚时代2017校招笔试题目(JAVA基础类)A卷--3
- 顺序表应用3:元素位置互换之移位算法
- 深入理解计算机系统(1.1)------Hello World 是如何运行的
- Zookeeper的可靠性是怎么保证的?
- [NOI 2008] 志愿者招募
- 浅谈继承和多态
- 剑指offer(31)—整数1出现的次数