暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nginx日志详解

广西南宁平衡信息技术有限公司 2021-04-30
1899

Nginx日志详解

1


前言

    此前介绍了Apache服务器的访问及错误日志的查看与常规分析,本篇将介绍Nginx日志及其相关配置。

2


Nginx日志介绍

       Nginx日志其主要作用是查看系统运行记录和出错说明,了解系统运行的状态。其日志分为两种:access_log(访问日志)、error_log(错误日志)。

       access_log(访问日志):主要记录客户端向Nginx服务器所有的发起请求,包括:客户端IP、浏览器信息、referer、请求处理时间、URL请求等。

       error_log(错误日志):主要记录处理请求过程的错误信息,包括:错误发生时间、严重性、错误解释等。


3


Nginx日志配置

    一般情况 ,Nginx的access.log和error.log相关配置在Nginx的nginx.conf配置文件中进行。nginx.conf用于配置在nginx运行时加载模块运行时所依赖的配置项,包括守护进程配置、工作方式配置、日志配置、加载自定义配置文件配置等,此次仅谈论access.log和error.log日志的相关配置。

  无论是window还是Linux下,nginx.conf的默认存储路径都为/nginx安装路径/conf/nginx.conf。

存放路径配置

1、通过命令配置

      nginx中要配置访问日志文件access.log的路径可以通过“access_log ”指令进行。

语法:access_log <日志文件> 

 #配置access_log路径
access_log /www/wwwlogs/access.log

该例子指定日志的写入路径为/www/wwwlogs/,日志格式使用默认的combined(具体参数见下述格式配置)。

同样,配置错误日志文件error.log的路径也有自己的调试指令:error_log。

语法:error_log    <日志文件>    <错误日志级别>;

#配置error.log路径
error_log  /www/wwwlogs/nginx-error.log error

该例子指定日志的写入位置为/www/wwwlogs日志级别使用默认的error。

error_log 级别分为 debug, info, notice, warn, error, crit  默认为crit。crit 记录内容最少,degug记录内容最多,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,当调成error级别时,错误日志记录的内容会更加丰富。

2、在nginx.conf直接输入

     直接在nginx.conf文件中编辑写入路径。


格式配置

1、access.log格式配置

      Nginx预定义了combined日志格式,如果没有明确指定日志默认使用该格式:

log_format combined '$remote_addr - $remote_user [$time_local] '
                 '"$request" $status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';

     如果不想使用Nginx预定义的格式,可以通过一个关键参数来实现自定义:log_format。

语法:

log_format  name [escape=default|json] string ...;

.name 格式名称。在access_log指令中引用。

.escape 设置变量中的字符编码方式是json还是default,默认是default。

.string 要定义的日志格式内容。该参数可以有多个。参数中可以使用Nginx变量。

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';

该例子指定内容有客户端ip,客户端用户名称、本地时间、原始请求行等

    下面是定义Nginx访问日志格式常用到的一些参数:

2、error.log格式配置

   错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义。


4


日志分析实例 

系统环境:Linux CentoOS 7

宝塔安装:bt 5.9.1

1、找到nginx.conf文件路径

find / -name nginx.conf

2、根据路径查看该文件,找到access_log、error_log日志文件存放路径:

vi /www/servers/Nginx/conf/nginx.conf

从而找到服务器的access_log、error_log日志存放位置:

 /www/wwwlogs/nginx_error_log

/www/wwwlogs/access.log

3查看access.log

192.168.x.x - - [12/Jun/2019:16:54:47 +0800] "POST /phpmyadmin_b7d094da9da573b5/index.php HTTP/1.1" 302 36 "http://XX:8888/database" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"

4、查看nginx_error.log

2021/04/28 08:42:44 [emerg] 1682#0: bind() to 0.0.0.0:888 failed (98: Address already in use)

   以上便是Nginx日志一些相关介绍,通过认识日志目录和日志配置的字段和格式,方便我们查询相关数据。



扫码 关注



文章转载自广西南宁平衡信息技术有限公司,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论