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. ISE 14.7安装教程最新版(Win10安装)

    一.下载 第一步下载首先自己下载好四个压缩包,把第一个解压,其余的三个不用解压,然后去第一个解压后的文件夹打开启动程序. 第二步是点击启动程序后会有以下界面 next到下一个界面,这个时候需要把之前没 ...

  2. OpenStack总体架构概览&OpenStack核心组件介绍

    下面个是51CTO上一位朋友发布的O版OpenStack核心组件说明,总结的非常到位,所以我就不再造轮子了.~,~ https://down.51cto.com/data/2448945 私有云 公有 ...

  3. Spring Security教程(二)

    上一篇博客中,Spring Security教程(一),我把用户信息和权限信息放到了xml文件中,这是为了演示如何使用最小的配置就可以使用Spring Security,而实际开发中,用户信息和权限信 ...

  4. Java小学四则运算

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166 github远程仓库的地址:https://github.c ...

  5. 小程序报错 “渲染层错误” Expect END descriptor with depth 0 but get another

    项目中有几个页面在控制台出现这个“渲染层错误”,虽然不影响业务操作,怕存在潜在风险,今天抽时间找了下原因,解决这个问题. 控制台报错日志如下: (中国标准时间) 渲染层错误 Error: Expect ...

  6. ng 手机验证码验证/发送(含倒计时)

    ng 的手机号码进行验证: 1.在对应的ts文件中,先声明一个变量 private mobile: string private btnCaptchaText: string = '发送验证码'   ...

  7. [工具]法国神器mimikatz 2.1.1 一键版 & PowerShell版

    无需任何参数,运行EXE即可自动读取Windows系统密码 EXE版需要其它功能请使用原版 (参数已写死仅读密码) 结果保存于当前目录mz.log EXE https://github.com/k8g ...

  8. SSM 整合配置

    目录 1. Maven : pox.xml 2. Web container : web.xml 3. Spring context : dbconfig.properties + applicati ...

  9. [转帖]聊聊Web App、Hybrid App与Native App的设计差异

    聊聊Web App.Hybrid App与Native App的设计差异 https://www.cnblogs.com/zhuiluoyu/p/6056672.html 编者按:这3类主流应用你都了 ...

  10. Docker 制作定制asp.netcore 的容器

    上文Windows docker k8s asp.net core的k8swebap镜像只是一个asp.net core程序,在实际生产中我们希望容器中还有一些其他程序,比如ssh 和telegraf ...