Nginx日志格式和目录通常在配置文件 /etc/nginx/nginx.conf 中。
Nginx日志格式
[backcolor=transparent]日志格式
配置文件中定义了Nginx日志的打印格式,即main格式:
-
[backcolor=transparent]
log_format main [backcolor=transparent]
'$remote_addr - $remote_user [$time_local] "$request" '
- [backcolor=transparent] [backcolor=transparent]'$request_time $request_length '
- [backcolor=transparent] [backcolor=transparent]'$status $body_bytes_sent "$http_referer" '
- [backcolor=transparent] [backcolor=transparent]'"$http_user_agent"'[backcolor=transparent];
声明使用了main日志格式和写入的文件名。
- [backcolor=transparent]access_log [backcolor=transparent]/[backcolor=transparent]var[backcolor=transparent]/[backcolor=transparent]logs[backcolor=transparent]/[backcolor=transparent]nginx[backcolor=transparent]/[backcolor=transparent]access[backcolor=transparent].[backcolor=transparent]log main
- [backcolor=transparent]字段说明
- [backcolor=transparent]日志样例
- [backcolor=transparent]192.168[backcolor=transparent].[backcolor=transparent]1.2[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent]-[backcolor=transparent] [backcolor=transparent][[backcolor=transparent]10[backcolor=transparent]/[backcolor=transparent]Jul[backcolor=transparent]/[backcolor=transparent]2015[backcolor=transparent]:[backcolor=transparent]15[backcolor=transparent]:[backcolor=transparent]51[backcolor=transparent]:[backcolor=transparent]09[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent]0800[backcolor=transparent]][backcolor=transparent] [backcolor=transparent]"GET /ubuntu.iso HTTP/1.0"[backcolor=transparent] [backcolor=transparent]0.000[backcolor=transparent] [backcolor=transparent]129[backcolor=transparent] [backcolor=transparent]404[backcolor=transparent] [backcolor=transparent]168[backcolor=transparent] [backcolor=transparent]"-"[backcolor=transparent] [backcolor=transparent]"Wget/1.11.4 Red Hat modified"
配置Logtail收集Nginx日志
通过Logtail收集Nginx日志完整流程请参考
快速入门,根据您的网络部署和实际情况选择对应配置。本文档仅展示配置Logtail的第二步[backcolor=transparent]指定收集模式步骤中的详细配置。
填写配置名称、日志路径,并选择日志收集模式为[backcolor=transparent]完整正则模式。
输入日志样例并开启[backcolor=transparent]自动提取字段。
单击 手动输入正则表达式,并调整正则表达式。

日志服务支持对日志样例划词自动解析,即对您在划词时选取的字段自动生成正则表达式。但鉴于实际的日志数据格式可能会有细微变动,您需要在根据实际情况对自动生成的正则表达式做出调整,使其符合收集过程中所有可能出现的日志格式。
由于 request_length 和 body_bytes_sent 这两个字段在这里是数字类型,但有些情况下这里不是数字而是“-”,所以匹配结果(\d+)需要替换成(\S+)。如果您还有其它字段存在这种情况,请按照同样的规则完成替换。
[backcolor=transparent]符合日志格式的正则表达式:[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]-[backcolor=transparent]\s[backcolor=transparent]-[backcolor=transparent]\s\[[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent][^[backcolor=transparent]\][backcolor=transparent]]+[backcolor=transparent]\]\s[backcolor=transparent]"(\S+)\s(\S+)\s(\S+)"[backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]([backcolor=transparent]\S[backcolor=transparent]+)[backcolor=transparent]\s[backcolor=transparent]"([^"[backcolor=transparent]]+)[backcolor=transparent]"\s"[backcolor=transparent]([^[backcolor=transparent]"]+)"
正则表达式修改完成后,单击 [backcolor=transparent]验证。如果正则式没有错误,会出现提取的结果,如果有错误请再次调整正则式。
为日志内容抽取结果填写对应的Key。
分别为提取结果取一个有意义的字段名称,比如时间字段的命名为time。开启 [backcolor=transparent]使用系统时间,然后单击 [backcolor=transparent]下一步。
Logtail配置完成后,将此配置应用到机器组即可开始规范收集Nginx日志。