nginx日志
相关知识可参考文章:nginx日志格式及自定义日志配置
1.查看nginx的log配置
1)vim /etc/nginx/nginx.conf
打开为
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn; //记录nginx错误日志的路径, WARN代表错误日志的级别
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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 /var/log/nginx/access.log main; // main代表nginx的log_format的name
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
针对其中log_format
1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
2.$remote_user :用来记录客户端用户名称;
3.$time_local : 用来记录访问时间与时区;
4.$request : 用来记录请求的url与http协议;
5.$status : 用来记录请求状态;成功是200,
6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
7.$http_referer :用来记录从那个页面链接访问过来的;
8.$http_user_agent :记录客户端浏览器的相关信息;
2).将 1)中的 error.log打印出来的标准格式
tail -f /var/log/nginx/error.log
2017/10/11 14:01:36 [error] 1337#1337: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.2.157", referrer: "http://192.168.2.157/"
2017/10/11 14:16:05 [error] 1337#1337: *3 open() "/usr/share/nginx/html/1111" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /1111 HTTP/1.1", host: "192.168.2.157"
2017/10/11 14:16:26 [error] 1392#1392: *1 open() "/usr/share/nginx/html/1111" failed (2: No such file or directory), client: 192.168.2.113, server: localhost, request: "GET /1111 HTTP/1.1", host: "192.168.2.157"
2.nginx变量
1)http请求变量
arg_PARAMETER、http_HEADER、sent_http_HEADER(服务端返回给客户端reponse的head)
例子:
vim /etc/nginx/nginx.conf
修改配置文件
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn; //记录nginx错误日志的路径, WARN代表错误日志的级别
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$http_user_agent' '$remote_addr - $remote_user [$time_local] "$request" ' //原始是http-User-Agent 但是这里需要小写,并且将-替换成_
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; // main代表nginx的log_format的name
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
保存后
nginx -t -c /etc/nginx/nginx.conf // -t表示检查配置文件的格式正确与否,-c 标识配置文件的路径的检查
如果成功后
nginx -s reload -c /etc/nginx/nginx.conf //重新加载配置
请求几次本机
curl http://127.0.0.1
tail -n 200 /var/log/nginx/access.log
发现日志最前面出现的相应的信息
2)内置变量
nginx内置的
点击Logging to syslog
http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log

点击红框可以查看所有的内置变量
3)自定义变量
自己定义
nginx日志的更多相关文章
- 烂泥:利用awstats分析nginx日志
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割 ...
- 烂泥:切割nginx日志
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会 ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- 使用flume-ng聚合双活Nginx日志
前不久使用Keepalived搭建了Nginx双活代理服务器,以达到一个公网IP后支持多个云主机的多个域名网站的目的.完成后又想在这双活的Nginx上有所有访问网站的日志,之前有了解过Google A ...
- nginx日志分析利器GoAccess
面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...
- linux shell:nginx日志切割脚本
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.l ...
- 使用elk+redis搭建nginx日志分析平台
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...
- Nginx 日志分享
Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 ...
- elk系列3之通过json格式采集Nginx日志
preface 公司采用的LNMP平台,跑着挺多nginx,所以可以利用elk好好分析nginx的日志.下面就聊聊它吧. 下面的所有操作都在linux-node2上操作 安装Nginx nginx是开 ...
- 使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...
随机推荐
- 吴裕雄 10-MySQL插入数据
语法以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( ...
- 转换es6
{ "presets": [["env", { "modules": false }],"stage-3"," ...
- 三种方式解决你的js加载乱码
第一种方式——编码统一 我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你 ...
- OpenCV之Vec3f
Vec3f表示的是3通道float类型的 Vect,就相当于3通道float类型的图像(这是其中一个具体化),解释可以从源代码中看出来. 下面给出一个具体的例子: Vec3f point = Vec3 ...
- css flex 兼容ios android--商品展示 添加购物车
https://blog.csdn.net/u010035608/article/details/52711248 <!DOCTYPE html> <html> <hea ...
- HttpClient之EntityUtils对象
最近在学习安卓并用thinkphp做后台,为了抵抗自己的烂记性,就在这里记录一下当我从tp后台获取到json串传到安卓客户端所用到的一个方法函数. EntityUtils对象是org.apache.h ...
- weechat 常用指令
添加服务器: /server add freenode irc.freenode.org 设置nick: /set irc.server.freenode.nicks "mynick,myn ...
- Linux 机器的渗透测试命令备忘表
如下是一份 Linux 机器的渗透测试备忘录,是在后期开发期间或者执行命令注入等操作时的一些典型命令,设计为测试人员进行本地枚举检查之用. 系统信息命令 对于本地的枚举检查很有用. 基于 Redhat ...
- 100. Same Tree (Tree;DFS)
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- Shell教程 之字符串
1.Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号. 1.1 单引号 str='I am ...