博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日志管理
阅读量:4640 次
发布时间:2019-06-09

本文共 2282 字,大约阅读时间需要 7 分钟。

1、错误日志配置 错误日志属于核心功能模块的参数

worker_processes  1;error_log  /data/logs/nginx/error.log  error;    #一般配置这一行即可events {    worker_connections  1024;}

语法规则:error_log file level

错误的日志级别有[debug|info|notice|warn|error|crit|alert|emerg],级别越高,记录的信息越少,生产场景一般是warn|error|crit这三个级别之一

可以放置的标签段为:main,http,server,location

2、访问日志配置

①定义日志格式(放置的http标签内),在没有特殊要求的情况下,采用默认配置即可

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                  '$status $body_bytes_sent "$http_referer" '                  '"$http_user_agent" "$http_x_forwarded_for"';

②在每个虚拟主机配置应用

root@c1 ~]# cat /application/nginx/conf/vhost/www.heboan.com.confserver {     listen       80;     server_name  www.heboan.com;           location / {        root   /data/www/heboan;        index  index.html index.htm;     }         access_log  /data/logs/nginx/www.heboan.com.log; #配置这一行即可}  #没有什么需求,建议在生产环境关闭访问日志access_log  off

3、访问日志的轮询切割

①创建轮询切割脚本

#vim /data/shell/nginx_cut_log.sh#!/bin/bash#LOGDIR=/data/logs/nginxLOGBKDIR=$LOGDIR/`date +%Y-%m`NGINX_SBIN=/application/nginx/sbin/nginx logrotate () {    local I    for I in `ls $LOGDIR`;do        if [ -f $LOGDIR/$I ];then            log_bkname=$LOGBKDIR/${I}_`date +%d`.gz            log_file=$LOGDIR/$I            cat $log_file|gzip >$log_bkname            rm -f $I        fi    done    ${NGINX_SBIN} -s reload} delempdir () {    local I    for I in $*;do        IFEMPTY=`ls $I`        [ "$IFEMPTY" == "" ] && rmdir $I    done} #do the log rotating[ ! -d $LOGBKDIR ] && mkdir -p $LOGBKDIRlogrotate #delete the outdated bakcup log filesfind $LOGDIR -name "*log*" -mtime +7  -exec rm -rf {} \; #delete the empty directory under $LOGDIRALLBAKLOCATION=`find $LOGDIR -type d`delempdir $ALLBAKLOCATION

②通过定时任务每天00.01点准时执行/data/shell/nginx_cut_log.sh

[root@c1 ~]# crontab -l#cut nginx access log by heboan01 00 * * * /usr/bin/bash /data/shell/nginx_cut_log.sh

4、不记录不需要的访问日志

在实际工作中,对负载均衡器健康节点检查或某些特定文件(比如图片、js、css)的日志,一般不需要记录下来,因为在统计pv时是按照页面计算的,而日志写入太频繁会消耗大量的I/0,降低服务的性能

具体配置方法如下:

location ~ .*\.(js|png|JPG|jpeg|JPEG|css|bmp|gif|GIF)$ {    access_log off;}

5、访问日志权限设置

加入日志目录为/app/logs,则授权方法如下:

chown -R root.root /app/logschmod -R 700 /app/logs

不需要在日志目录上给nginx用户读或写许可,但很多网友都没注意这个问题,他们把该权限直接给了nginx或apache用户,这就成为了安全隐患。

 

转载于:https://www.cnblogs.com/sellsa/p/7787807.html

你可能感兴趣的文章
mac 端口转发方案
查看>>
[2017.02.23] Java8 函数式编程
查看>>
Knowledge Point 20180305 数据在计算机中的表示
查看>>
谈谈对web标准的理解
查看>>
求二进制中1的个数(编程之美2.1)
查看>>
58前端内推笔试2017(含答案)
查看>>
Java学习笔记
查看>>
sprintf 和strcpy 的差别
查看>>
打表打表何谓打表?
查看>>
MPEG4与.mp4
查看>>
实验5
查看>>
git 下载 安装
查看>>
录制终端信息并回放
查看>>
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集
查看>>
C语言对mysql数据库的操作
查看>>
SQL Server 数据库备份
查看>>
INNO SETUP 获得命令行参数
查看>>
Charles抓取https请求
查看>>