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

配置nginx日志目录

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

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

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

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

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

  1. #! /bin/bash
  2. M=$(date +%Y%m)
  3. D=$(date +%m%d)
  4. WWW_NGINX_LOGS_DIR=/data/logs/nginx/www/
  5. WWW_NGINX_ACCESS_LOG=/data/logs/nginx/www/nginx_access.log
  6. WWW_NGINX_ERROR_LOG=/data/logs/nginx/www/nginx_error.log
  7. DATABASE_NGINX_LOGS_DIR=/data/logs/nginx/database/
  8. DATABASE_NGINX_ACCESS_LOG=/data/logs/nginx/database/nginx_access.log
  9. DATABASE_NGINX_ERROR_LOG=/data/logs/nginx/database/nginx_error.log
  10. PHP_LOGS_DIR=/data/logs/php/
  11. # 裁剪www域名下的nginx日志
  12. if [ -f "$WWW_NGINX_ACCESS_LOG" ]; then
  13. echo 'www域名下nginx_access.log文件存在,开始裁剪日志'
  14. if [ ! -d "$WWW_NGINX_LOGS_DIR$M" ]; then
  15. mkdir -p "$WWW_NGINX_LOGS_DIR$M"
  16. echo '文件夹创建成功'
  17. fi
  18. mv ${WWW_NGINX_ACCESS_LOG} ${WWW_NGINX_LOGS_DIR}${M}/nginx_access_${D}.log
  19. else
  20. echo 'www域名下nginx_access.log不文件存在'
  21. fi
  22. if [ -f "$WWW_NGINX_ERROR_LOG" ]; then
  23. echo 'www域名下nginx_error.log文件存在,开始裁剪日志'
  24. if [ ! -d "$WWW_NGINX_LOGS_DIR$M" ]; then
  25. mkdir -p "$WWW_NGINX_LOGS_DIR$M"
  26. echo '文件夹创建成功'
  27. fi
  28. mv ${WWW_NGINX_ERROR_LOG} ${WWW_NGINX_LOGS_DIR}${M}/nginx_error_${D}.log
  29. else
  30. echo 'www域名下nginx_error.log不文件存在'
  31. fi
  32. # 裁剪database域名下的nginx日志
  33. if [ -f "$DATABASE_NGINX_ACCESS_LOG" ]; then
  34. echo 'database域名下nginx_access.log存在,开始裁剪日志'
  35. if [ ! -d "$DATABASE_NGINX_LOGS_DIR$M" ]; then
  36. mkdir -p "$DATABASE_NGINX_LOGS_DIR$M"
  37. echo '文件夹创建成功'
  38. fi
  39. mv ${DATABASE_NGINX_ACCESS_LOG} ${DATABASE_NGINX_LOGS_DIR}${M}/nginx_access_${D}.log
  40. else
  41. echo 'database域名下nginx_access.log不存在'
  42. fi
  43. if [ -f "$DATABASE_NGINX_ERROR_LOG" ]; then
  44. echo 'database域名下nginx_error.log存在,开始裁剪日志'
  45. if [ ! -d "$DATABASE_NGINX_LOGS_DIR$M" ]; then
  46. mkdir -p "$DATABASE_NGINX_LOGS_DIR$M"
  47. echo '文件夹创建成功'
  48. fi
  49. mv ${DATABASE_NGINX_ERROR_LOG} ${DATABASE_NGINX_LOGS_DIR}${M}/nginx_error_${D}.log
  50. else
  51. echo 'database域名下nginx_error.log不存在'
  52. fi
  53. kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

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

  1. 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. django运行报错TypeError: object supporting the buffer API required

    运行django项目报错:TypeError: object supporting the buffer API required 解决方案: 将settings.py中数据库的密码改成字符串格式 源 ...

  2. 【louguP2234】[HNOI2002]营业额统计(链表)

    题目链接 离线用链表维护,先按权值排序,建立链表,记录每一天在链表的位置,然后按天数从大到小查询,查询完删除 #include<algorithm> #include<iostrea ...

  3. 软件工程卷1 抽象与建模 (Dines Bjorner 著)

    I 开篇 1. 绪论 II 离散数学 2. 数 (已看) 3. 集合 4. 笛卡尔 5. 类型 6. 函数 7. λ演算 8. 代数 9. 数理逻辑 III 简单RSL 10. RSL中的原子类型和值 ...

  4. 趣谈Linux操作系统学习笔记:第二十七讲

    一.文件系统的功能规划 1.引子 咱们花了这么长的时间,规划了会议室管理系统,这样多个项目执行的时候,隔离性可以得到保证. 但是,会议室里面被回收,会议室里面的资料就丢失了.有一些资料我们希望项目结束 ...

  5. git中ignore文件配置

    在项目中我们有一些文件是不能公开的,或者说是每个人需要单独配置的,那么这个时候使用 git 就不能上传这些文件.此时就需要对 .gitignore 文件进行配置. git 的忽略原则:参考 廖雪峰的g ...

  6. 【BigData】Java基础_构造方法的使用

    需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test. ...

  7. 【操作系统之六】Linux常用命令之less

    一.概念less 工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有 ...

  8. Nginx配置反向代理支持WebSocket

    http { #WebSocket代理配置 map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { ...

  9. Atlassian JIRA 插件开发之二 安装和创建项目

    安装参考 https://developer.atlassian.com/server/framework/atlassian-sdk/install-the-atlassian-sdk-on-a-w ...

  10. python 计算列表内容出现次数

    """python 计算列表内容出现次数""" #方法一: l = ['a','a','b','c','d','b','b','b'] te ...