nginx 日志整理 目录区分 日志配置
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 日志整理 目录区分 日志配置的更多相关文章
- Nginx实战(三) 日志配置与切割
访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...
- 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?
原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复 ...
- nginx启用TCP反向代理日志配置
Nginx使用TCP反向代理日志配置不同于http 修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式 stream { log_format pro ...
- Nginx 核心配置-自定义日志路径及清空日志注意事项
Nginx 核心配置-自定义日志路径及清空日志注意事项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关于日志清空注意事项 1>.nginx服务写访问日志是基于acces ...
- Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
系统环境 [root@web ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web ~]# uname -a Linux d ...
- ELKStack入门篇(二)之Nginx、Tomcat、Java日志收集以及TCP收集日志使用
1.收集Nginx的json格式日志 1.1.Nginx安装 [root@linux-node1 ~]# yum install nginx -y [root@linux-node1 ~]# vim ...
- nginx中有关命令和日志切割,配置文件加载的详细阐述
一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...
- ELK6 收集不同来源的日志并做区分
https://blog.csdn.net/u010871982/article/details/79035317 使用filebeat替代logstash进行日志采集 https://blog.cs ...
- logstash收集时filebeat区分日志
logstash收集时filebeat区分日志 1.场景 filebeat在服务器中同时收集nginx和web项目日志,需要对两个日志在logstash中分别处理 2.版本区别 ==6.x之前 ...
随机推荐
- SpringBoot配置文件加载位置与优先级
1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –fil ...
- 洛谷p1747好奇怪的游戏题解
题目 永远不要怀疑劳动人民的智慧! 把快读里最后的return直接返回零的 我已经不是第一次写错了! 我要是再写错我就****** 主要是逆向思维,把从两个点往(1, 1)走想成从(1, 1)点往这两 ...
- 【meet in the mid】【qbxt2019csp刷题班day1C】birthday
Description 给定一个长度为 \(n\) 序列,值域为 \([1, v]\),每次选择一段区间,要求在这个区间上选择一些元素加入到两个集合中,每个元素要么不选要么只能加入一个集合,要求两个集 ...
- c博客作业-数组
0. 1.本章学习总结 1.1学习内容总结 1.1.1一维数组 1.一般定义形式:类型名 数组名 [数组长度];类型名指定数组中每个元素的类型,数组名是数组变量的名称,是一个合法的标识符,数组长度是一 ...
- 关于nlp的一些探索
深度学习,知识图谱,nlp学习经历 获取信息来源:英文paper研读,吴恩达公开课,Hiton公开课,北大nlp教材,英文最新学术论文,中科院院士技术 ...
- 第02组 团队Git现场编程实战
目录 1. 组员职责分工(2分) 2. github 的提交日志截图(1分) 3. 程序运行截图(3分) 4. 程序运行环境(1分) 5. GUI界面(5分) 6. 基础功能实现(10分) 7. 鼓励 ...
- Android Q Beta 6 终极测试版发布!
前言 当今手机市场可谓是百花齐放,但手机系统却屈指可数,其中Android和iOS就占据了整个手机系统市场的99%,单单Android就占据了整个手机系统市场的86%,可谓是占据绝对优势. 其 ...
- Spring Boot进阶系列二
上一篇文章,主要分析了怎么建立一个Restful web service,系列二主要创建一个H5静态页面使用ajax请求数据,功能主要有添加一本书,请求所有书并且按照Id降序排列,以及查看,删除一本书 ...
- C# Process.Start()函数打开url被360拦截问题
使用Process.Start(new ProcessStartInfo(url))来打开某一网址的时候,往往会被360提示 类似这样的 信息: “威胁:修改此注册表项将更改IE连接设置.少数软件会修 ...
- Storm里面fieldsGrouping和Field参数和 declareOutputFields
Fields,个人理解,类似于一张表,你取那些字段以及这些字段所对应的数据给后面的bolt用 这个Field通常和fieldsGrouping分组机制一起使用,这个Field特别难理解,我自己也是在网 ...