前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx(tengine)访问日志分片

nginx(tengine)访问日志分片

作者头像
欲休
发布2019-10-14 15:28:28
2K0
发布2019-10-14 15:28:28
举报
文章被收录于专栏:前端杂货铺前端杂货铺

说明

nginx日志按天分片是运维的基本要求,不仅可以减小文件大小,方便检索关键数据,也可以定时删除过期的日志。可是nginx和tengine默认并不支持文件分片,因此需要额外处理。

另外,日志分片需要借助 ngx_http_log_module 模块,默认通过yum安装的nginx并不携带此模块,需要额外编译。而tengine默认自带了ngx_http_log_module模块,因此建议使用者直接源码编译tengine即可。

原理

日志分片的原理是利用命名管道。linux下一切皆文件,因此创建命名管道作为linux的访问日志,由第三方程序连接命名管道,获取数据后按时间进行分片。这里的第三方程序既可以是由使用者自己编写的处理程序,也可使用开源的软件,如 cronolog。下文采用cronolog实现日志分片。

步骤

  1. 创建命名管道:mkfifo /opt/logs/nginx/access.log
  2. 启动cronolog:cronolog /opt/logs/nginx/access_%Y%m%.log < /opt/logs/nginx/access.log &
  3. 修改nginx配置文件: http内 ``` log_format main '$remote_addr -
(remote_user [)

time_local] "

(request" ' ')

status

(body_bytes_sent ")

http_referer" ' '"

(http_user_agent" ")

http_x_forwarded_for"'; access_log /opt/logs/nginx/access.log main; ```

  1. 重启nginx:nginx -s reload
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 原理
    • 步骤
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档