Nginx日志对于统计、系统服务排错很有用,但是原始的配置方案,日志很难定位问题。因此设想将nginx日志分类,包括access及error日志。并且按照不同域名及日志进行分类。

配置nginx日志目录

方便管理,建议不同的server按照不同的.conf分开,方便后期维护,然后在nginx.conf中引入。

vim /usr/local/nginx/conf/nginx.conf
# 引入其他server块的配置文件
include vhost/www.conf;
include vhost/database.conf;

在www.conf,database.conf的server块中配置日志的目录

access_log /data/logs/nginx/www/nginx_access.log main;
error_log /data/logs/nginx/www/nginx_error.log error;
access_log /data/logs/nginx/database/nginx_access.log main;
error_log /data/logs/nginx/database/nginx_error.log error;

写自动执行切割日志的脚本 cut_nginx_log.sh如下

#! /bin/bash
M=$(date +%Y%m)
D=$(date +%m%d) WWW_NGINX_LOGS_DIR=/data/logs/nginx/www/
WWW_NGINX_ACCESS_LOG=/data/logs/nginx/www/nginx_access.log
WWW_NGINX_ERROR_LOG=/data/logs/nginx/www/nginx_error.log DATABASE_NGINX_LOGS_DIR=/data/logs/nginx/database/
DATABASE_NGINX_ACCESS_LOG=/data/logs/nginx/database/nginx_access.log
DATABASE_NGINX_ERROR_LOG=/data/logs/nginx/database/nginx_error.log PHP_LOGS_DIR=/data/logs/php/ # 裁剪www域名下的nginx日志
if [ -f "$WWW_NGINX_ACCESS_LOG" ]; then
echo 'www域名下nginx_access.log文件存在,开始裁剪日志'
if [ ! -d "$WWW_NGINX_LOGS_DIR$M" ]; then
mkdir -p "$WWW_NGINX_LOGS_DIR$M"
echo '文件夹创建成功'
fi
mv ${WWW_NGINX_ACCESS_LOG} ${WWW_NGINX_LOGS_DIR}${M}/nginx_access_${D}.log
else
echo 'www域名下nginx_access.log不文件存在'
fi if [ -f "$WWW_NGINX_ERROR_LOG" ]; then
echo 'www域名下nginx_error.log文件存在,开始裁剪日志'
if [ ! -d "$WWW_NGINX_LOGS_DIR$M" ]; then
mkdir -p "$WWW_NGINX_LOGS_DIR$M"
echo '文件夹创建成功'
fi
mv ${WWW_NGINX_ERROR_LOG} ${WWW_NGINX_LOGS_DIR}${M}/nginx_error_${D}.log
else
echo 'www域名下nginx_error.log不文件存在'
fi # 裁剪database域名下的nginx日志
if [ -f "$DATABASE_NGINX_ACCESS_LOG" ]; then
echo 'database域名下nginx_access.log存在,开始裁剪日志'
if [ ! -d "$DATABASE_NGINX_LOGS_DIR$M" ]; then
mkdir -p "$DATABASE_NGINX_LOGS_DIR$M"
echo '文件夹创建成功'
fi
mv ${DATABASE_NGINX_ACCESS_LOG} ${DATABASE_NGINX_LOGS_DIR}${M}/nginx_access_${D}.log
else
echo 'database域名下nginx_access.log不存在'
fi if [ -f "$DATABASE_NGINX_ERROR_LOG" ]; then
echo 'database域名下nginx_error.log存在,开始裁剪日志'
if [ ! -d "$DATABASE_NGINX_LOGS_DIR$M" ]; then
mkdir -p "$DATABASE_NGINX_LOGS_DIR$M"
echo '文件夹创建成功'
fi
mv ${DATABASE_NGINX_ERROR_LOG} ${DATABASE_NGINX_LOGS_DIR}${M}/nginx_error_${D}.log
else
echo 'database域名下nginx_error.log不存在'
fi kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

执行命令crontab -e将脚本添加到crontab任务中

00 00 * * * /bin/bash /data/logs/cut_nginx_log.sh

nginx 日志整理 目录区分 日志配置的更多相关文章

  1. Nginx实战(三) 日志配置与切割

    访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...

  2. 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

    原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复   ...

  3. nginx启用TCP反向代理日志配置

    Nginx使用TCP反向代理日志配置不同于http 修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式 stream { log_format pro ...

  4. Nginx 核心配置-自定义日志路径及清空日志注意事项

    Nginx 核心配置-自定义日志路径及清空日志注意事项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关于日志清空注意事项 1>.nginx服务写访问日志是基于acces ...

  5. Nginx服务编译安装、日志功能、状态模块及访问认证模式实操

    系统环境 [root@web ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web ~]# uname -a Linux d ...

  6. ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用

    1.收集Nginx的json格式日志 1.1.Nginx安装 [root@linux-node1 ~]# yum install nginx -y [root@linux-node1 ~]# vim ...

  7. nginx中有关命令和日志切割,配置文件加载的详细阐述

    一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...

  8. ELK6 收集不同来源的日志并做区分

    https://blog.csdn.net/u010871982/article/details/79035317 使用filebeat替代logstash进行日志采集 https://blog.cs ...

  9. logstash收集时filebeat区分日志

    logstash收集时filebeat区分日志     1.场景 filebeat在服务器中同时收集nginx和web项目日志,需要对两个日志在logstash中分别处理 2.版本区别 ==6.x之前 ...

随机推荐

  1. 请用js语言实现sort排序函数,要求:sort([4,5,2,-1,0])返回[-1,0,2,4,5]

    Array.prototype.sort1=function(fn){ var len=this.length; while(len>0){ for(var i=0;i<len;i++){ ...

  2. OI蒟蒻收集的各种网址集合(无标记

    本地收藏夹伤不起…… https://zh.wikipedia.org/wiki/Template:%E7%AE%97%E6%B3%95 https://courses.csail.mit.edu/6 ...

  3. vb.net 判断某个文件是否已经打开了

    '   判断这个excel文件是否已经打开了: 如果打开了,不能下载 Try Dim fs AsFileStream = NewFileStream(excelFileName, FileMode.O ...

  4. nuxt或者vue,axios中如何发送多个请求

    在使用vue或者nuxt中,我们需要使用axios去发送多个http请求,参考了axios的官方说明你也许会想到使用axios.all发送请求,但是这样可能会出现一些异常错误: (node:9360) ...

  5. Linux文件和目录管理

    一.与文档相关的命令 1,命令head:用于显示文件前10行,后面直接跟文件名.如果加-n,则显示文件的前几行. 选项-n后有无空格均可也可以省略字母n,直接跟数字 2,命令tail:和命令head类 ...

  6. Keras 中的 verbose 参数

    在 fit( ) 和 evaluate( ) 中 都有 verbose 这个参数,但都是表示日志显示的参数. 具体如下:  fit( ) 中 的 verbose 参数: verbose:日志显示ver ...

  7. [记录]mscorlib recursive resource lookup bug解决方法

    [Content]Expression: [mscorlib recursive resource lookup bug]Description: Infinite recursion during ...

  8. 用ADB 抓取和存储APP日志方法

    前置条件:电脑已经安装好adb (一)  进入adb目录下连接手机,检测出手机 CD 到SDK的platform-tools (二)adb logcat-c  清除日志  (三)adb  logcat ...

  9. Adobe Audition cc 修改音频 --- 淡出、淡入,合并、裁剪

    ​1.导入音频到Adobe Audition cc中支持多个音频操作 也可以使用鼠标把音频放入其中 2.淡出淡入: 红色圈中的就是淡出淡入的控制符 左手按住ctrl 或者 shift 键  右手按住鼠 ...

  10. spring扩展点之五:ApplicationContextInitializer实现与使用

    ApplicationContextInitializer是Spring框架原有的东西,这个类的主要作用就是在ConfigurableApplicationContext类型(或者子类型)的Appli ...