07-Nginx 日志管理及自动切割

这篇具有很好参考价值的文章主要介绍了07-Nginx 日志管理及自动切割。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. Nginx 日志管理及自动切割

对于程序员、运维来说,日志非常得重要。通过日志可以查看到很多请求访问信息,及异常信息。Nginx 也提供了对日志的强大支持。

      1. 日志管理范围

首先,下面要讲的这些日志相关属性可以配置在任意模块。在不同的模块,记录的是不同请求的日志信息。即,日志记录的请求范围是不同的。Nginx 日志一般可以指定三个范围: http{}模块范围、server{}模块范围,与 location{}模块范围。

  1. http{}模块范围

只要有请求通过 http 协议访问该 Nginx,就会有日志信息写入到这里的日志文件。

07-Nginx 日志管理及自动切割

  1. server{}模块范围

只要有请求访问当前 Server,就会有日志信息写入到这里的日志文件。

07-Nginx 日志管理及自动切割 

  1. location{}模拟范围

只要有请求访问当前 location,就会有日志信息写入到这里的日志文件。

07-Nginx 日志管理及自动切割 

      1. 日志管理指令

下面以 http{}模块下的日志为例来学习 Nginx 日志管理指令。

07-Nginx 日志管理及自动切割

 Nginx 的日志分为两类:访问日志与错误日志。Nginx 整个系统的默认日志在生成预编译文件 makefile 时就已经默认给配置好了。当然,无论是访问日志还是错误日志,其默认路径与名称在 nginx.conf 中均是可以修改的。在配置文件中不仅定义了日志文件的路径及名称, 还定义了日志格式。

07-Nginx 日志管理及自动切割

  1. log_format

07-Nginx 日志管理及自动切割

 用于设置访问日志的格式,其后的 main 是为该格式所起的名称,可以任意,而其后面的内容则为具体格式,通过 Nginx 内置变量定义。

  1. $remote_addr获取访问者的 IP 地址。若当前 Nginx 是反代服务器,则此变量获取到的就是客户端的 IP 地址;若当前 Nginx 是静态代理服务器,则此变量获取到的是反代服务器的 IP 地址。
  2. $http_x_forwarded_for获取客户端浏览器的 IP。若当前 Nginx 是反代服务器,则此变量获取到的值为杠(-)。若当前 Nginx 是静态代理服务器,则此变量获取到的是客户端的IP 地址。
  3. $remote_user获取访问者的用户名。
  4. $time_local获取请求访问的时间与时区。
  5. $request获取请求的相关信息,包含请求方式、请求的 URI,及访问协议。
  6. $status后端服务器向其返回的状态码,例如 200。
  7. $body_bytes_sent后端服务器向客户端发送的响应体内容字节数。
  8. $http_referer获取当前请求是从哪个页面过来的。其值在这里显示为杠(-)。
  9. $http_user_agent用户所使用的代理,一般为浏览器。
  1. access_log

07-Nginx 日志管理及自动切割

 该指令用于设置访问日志。上面的格式包含三个参数:

    1. 第一个参数是日志的存放路径与日志文件名;
    2. 第二个参数是日志格式名;
    3. 第三个参数是日志文件所使用的缓存。不过,即使不指定 buffer,其也会存在默认日志缓存的。
    4. access_log 还可以跟一个参数 off,用于关闭访问日志,即直接写 access_log off 即可关闭访问日志。
  1. error_log

07-Nginx 日志管理及自动切割

 该指令用于指定错误日志的路径与文件名。需要注意以下几点:

  1. 其不能指定格式,因为其有默认格式。
  2. 可以使用自己指定的错误日志文件,不过,将来的访问异常日志就不会再写入到默认的

logs/error.log 文件中了。所以关于错误日志,一般使用默认的即可。

  1. 错误日志级别由低到高有:[debug | info | notice | warn | error | crit | alert | emerg],默

认为error,级别越高记录的信息越少。

  1. 错误日志默认是开启的。关闭错误日志的写法为  error_log     /dev/null;
  2. open_log_file_cache

07-Nginx 日志管理及自动切割

该指令用于打开日志文件读缓存,将日志信息读取到缓存中,以加快对日志的访问。该功能默认为 off,即 open_log_file_cache off;

      1. 默认的/favicon.ico 请求

客户端对于服务端页面会自动提交一个/favicon.ico 请求,若没有 favicon.ico 文件则会在日志文件中报出 404。

从网上任意下载一个 ico 图标,将其重命名为 favicon.ico,然后放到 Linux 中的任意目录。然后再修改 nginx.conf 文件,在其中添加如下的 location{}模块。注意,若将其添加到的位置与页面在同一个目录,下面的 location{}模块不用设置。

07-Nginx 日志管理及自动切割 

      1. 日志自动切割

这里仅仅简单介绍一下日志切割的实现步骤,具体实现,网上非常多,用时再查即可。

  1. 创建切割shell 脚本文件

在 Linux 下创建一个实现日志切割的 shell 脚本文件,脚本文件的具体内容可以从网上查找,资源很多。例如,将该 shell 文件创建在 Nginx 安装目录下的 logs 目录中,并命名为cut_nginx_log.sh。

  1. 为该文件添加可执行权限

该文件是要作为定时任务被执行的,所以该文件需要具有可执行权限。

  1. 向 crontab 中添加一个定时任务

crontab 是 Linux 中的一个定义任务文件,每一行都代表一项定义任务。每行由 6 个字段组成,前 5 段是时间设定段,第 6 段是任务段。具体格式如下:

minute(0-59)     hour(0-23)     day(1-31)     month(1-12)     week(0-6)     command

本例执行如下命令后会打开文本编辑器,然后再输入如下文本内容即可。

07-Nginx 日志管理及自动切割

 文章来源地址https://www.toymoban.com/news/detail-448304.html

到了这里,关于07-Nginx 日志管理及自动切割的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gin框架原生方式切割日志,Go语言原生日志切割

    目录 摘要 痛点 正文 1.分析 io.Writer 接口 2.实现 io.Writer 接口 3.将它作为原生输出 4.将它作为 Gin 框架的输出 自定义一个日志输出,将go语言和gin框架的日志自动按天拆分。本文通过实现io.Writer接口的方式,替换原生和gin框架的默认Writer,并植入了自定义的逻辑。该示例只讲述

    2024年02月09日
    浏览(50)
  • Nginx日志管理、Nginx目录索引、Nginx状态监控、Nginx访问控制、访问限制

    目录索引模块简述 ngx_http_autoindex_module 模块处理以斜杠字符 (\\\'/\\\') 结尾的请求,并生成目录列表。 当 ngx_http_index_module 模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module 模块。 配置 Nginx 默认是不允许列出整个目录浏览下载。 配置站点目录浏览功能 案例 自定

    2024年02月12日
    浏览(61)
  • filebeat 日志切割后偏移量重置

    1. [root@master log]# cat test.log  111111111111 222222222222 333333333333 [root@master log]# stat test.log    File: ‘test.log’   Size: 39            Blocks: 8          IO Block: 4096   regular file Device: fd00h/64768d    Inode: 134304003   Links: 1 Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root) A

    2024年02月08日
    浏览(35)
  • GO语言日志切割 + 记录调用源

    日志记录对程序排查问题比较关键,记录下GO中日志选择,从以下出发点考虑: 日志文件能自动切割,以免过大 能记录从哪个文件哪行代码调用的,方便排查问题 配置简单明了 库文件使用人数较多,稳定 经过一段时间摸索,最终选择了 Logrus 和 lumberjack 两个库,使用人数都

    2024年02月15日
    浏览(38)
  • k8s ingress 日志持久化和日志切割脚本

    挂载日志目录 重启pod 生效 ingress 日志切割脚本

    2024年02月11日
    浏览(40)
  • 【shell脚本】shell脚本之日志切割(进阶实战三)

    恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。 shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。 shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。 有需要的可以从这里开始,可以教会你如何去进行shel

    2024年02月15日
    浏览(44)
  • Shell 脚本实现自动启动程序、日志管理和定时任务监控

    本篇将通过Shell 脚本实现自动启动Java程序、日志管理和定时任务监控。脚本启动程序具灵活定制、可移植性和扩展性强的优点,可以根据需要添加额外的功能、配置选项和自定义行为,从而满足更具体的要求。 确保将脚本中的/path/to/log和your_program_port等替换为实际的日志路径

    2024年01月21日
    浏览(43)
  • 划片机实现装片、对准、切割、清洗到卸片的自动化操作

    划片机是一种用于切割和分离材料的设备,通常用于光学和医疗、IC、QFN、DFN、半导体集成电路、GPP/LED氮化镓等芯片分立器件、LED封装、光通讯器件、声表器件、MEMS等行业。划片机可以实现从装片、对准、切割、清洗到卸片的自动化操作。 以下是划片机实现这些操作的步骤

    2024年02月09日
    浏览(31)
  • K8s 日志收集-Day 07

    官方文档:https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/ (1)node节点收集 基于daemonset部署日志收集进程,实现json-file类型(标准输出/dev/stdout、错误输出/dev/stderr)日志收集; 该方式的优点:日志收集架构简单,易部署、易维护。 该方式的缺点:node节点产生的日志、

    2024年03月26日
    浏览(42)
  • 【07】Nginx之SSL

    如何使用SSL对流量进行加密 翻译成大家能熟悉的说法就是将我们常用的http请求转变成https请求,那么这两个之间的区别简单的来说两个都是HTTP协议,只不过https是身披SSL外壳的http. HTTPS是一种通过计算机网络进行安全通信的传输协议。它经由HTTP进行通信,利用SSL/TLS建立全通

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包