当前位置: 首页 > news >正文

日志管理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

日志管理
[root@localhost  nginx]# date -s '2013-09-21 19:00:38'
Sat Sep 21 19:00:38 PDT 2013
[root@localhost  nginx]# clock -w
[root@localhost  nginx]#  date -d yesterday
Fri Sep 20 19:01:02 PDT 2013
[root@localhost  nginx]#  date -d yesterday +%Y%m%d
20130920
我们观察nginx的server段,可以看到如下类似信息
 #access_log  logs/host.access.log  main;
这说明 该server, 它的访问日志的文件是  logs/host.access.log ,
使用的格式”main”格式.
除了main格式,你可以自定义其他格式.

main格式是什么?
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

main格式是我们定义好一种日志的格式,并起个名字,便于引用.
以上面的例子, main类型的日志,记录的 remote_addr.... http_x_forwarded_for等选项.


1: 日志格式 是指记录哪些选项
默认的日志格式: main
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';

如默认的main日志格式,记录这么几项
远程IP- 远程用户/用户时间 请求方法(如GET/POST) 请求体body长度 referer来源信息
http-user-agent用户代理/蜘蛛 ,被转发的请求的原始IP
http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP
2: 声明一个独特的log_format并命名
    log_format  mylog '$remote_addr- "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
在下面的server/location,我们就可以引用 mylog
在server段中,这样来声明
Nginx允许针对不同的server做不同的Log ,(有的web服务器不支持,如lighttp)
access_log logs/access_8080.log mylog;   
声明log   log位置          log格式;
实际应用: shell+定时任务+nginx信号管理,完成日志按日期存储
分析思路:
凌晨00:00:01,把昨天的日志重命名,放在相应的目录下
再USR1信息号控制nginx重新生成新的日志文件
 
具体脚本:
[root@localhost  data]# vi log
[root@localhost data]# mv log runlog.sh
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

定时任务
[root@localhost data]# crontab 编辑定时任务
01 00 * * * /xxx/path/b.sh  每天0时1分(建议在02-04点之间,系统负载小)分时日月周
*/1 * * * * sh /usr/local/nginx/data/runlog.sh


转载于:https://my.oschina.net/goudingcheng/blog/626803

相关文章:

  • 初探验证码识别
  • HttpClient4.5教程-基础 1.1
  • Spring的IoC容器(转)BeanFactory
  • 最短路问题------分别用深搜和广搜去解题
  • linux ps 查看耗cpu高的线程
  • LVS-NAT 模式配置
  • 堆内存与栈内存
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • shell中的特殊符号
  • zookeeper环境搭建中的几个坑[Error contacting service. It is probably not running]的分析及解决...
  • J2EE 第二阶段项目之JUnit4进行单元测试(五)
  • 3月9日(用 DBHelper 工具连接 mysql 数据库 实现登录验证)
  • python socket编程入门(编写server实例)+send 与sendall的区别与使用方法
  • POJ - 1170 Shopping Offers (五维DP)
  • IE兼容问题,各类css hack代码(亲测有效)
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 0x05 Python数据分析,Anaconda八斩刀
  • angular2开源库收集
  • Flex布局到底解决了什么问题
  • HTTP请求重发
  • JavaScript HTML DOM
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java方法详解
  • Python爬虫--- 1.3 BS4库的解析器
  • Vue小说阅读器(仿追书神器)
  • windows-nginx-https-本地配置
  • 如何实现 font-size 的响应式
  • 事件委托的小应用
  • 手机端车牌号码键盘的vue组件
  • 通信类
  • MPAndroidChart 教程:Y轴 YAxis
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (七)理解angular中的module和injector,即依赖注入
  • (转)iOS字体
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .net FrameWork简介,数组,枚举
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .Net下的签名与混淆
  • @Autowired 与@Resource的区别
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [20190113]四校联考
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [autojs]autojs开关按钮的简单使用
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [flink总结]什么是flink背压 ,有什么危害? 如何解决flink背压?flink如何保证端到端一致性?
  • [FUNC]判断窗口在哪一个屏幕上
  • [HackMyVM]靶场 VivifyTech
  • [HOW TO]怎么在iPhone程序中实现可多选可搜索按字母排序的联系人选择器