您的位置:首页 > 运维架构 > Nginx

nginx日志分析常用指令

2018-02-26 14:37 399 查看
无聊折腾自己的阿里云服务器,顺便学一波日志分析。
首先理清几个概念:
PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标
uv(unique visitor),指访问某个站点或点击某条新闻的不同IP地址的人数。
我的阿里云上安装了centos系统,查看nginx日志的目录是 /home/wwwlogs/ 配置文件是nginx.conf
一般情况日志的结构如下:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host '
'$status $request_length $body_bytes_sent "$http_referer" '
'"$http_user_agent"  $request_time';

remote_addr : 客户端地址
remote_user : 客户端用户名
time_local : 服务器时间
request : 请求内容,包括方法名,地址,和http协议
http_host : 用户请求是使用的http地址
status : 返回的http 状态码
request_length : 请求大小
body_bytes_sent : 返回的大小
http_referer : 来源页
http_user_agent : 客户端名称
request_time : 整体请求延时
wwwlogs下面有access.log和error.log 前者代表访问你服务器的ip和相应的内容,结构大概如下:



获取pv数的指令比较简单:cat /usr/local/nginx/logs/access.log | wc -l


正常情况下,比如说只想查看访问的所有ip地址 那就只需查看第一行即可:cat access.log|awk '{print $1}'如果要查看ip数量的话,则:cat /usr/local/nginx/logs/access.log | awk '{print $1}' |sort| uniq | wc -l当然 往往我们是需要根据访问量来进行数据分析的,那么可以这么操作:cat access.log |awk '{print $1}'|sort|uniq -c|sort -rn|more按照访问次数来从大到小排序访问ip 结果如下:



如果想查看访问的状态码的话,那也就只需把print 1$改成print 9$ 因为状态码所处的列数是9 结果如下:



对于获取某一时刻的访问量:cat /usr/local/class/logs/access.log | grep date | wc -l获取的数据也可以导出 比如上面的指令可以通过cat /usr/local/class/logs/access.log | grep 2017:13:28:55 | wc -l > access.csv导出为csv文件
其实用来用去也就是那么几个命令: cat:输入文件内容 grep:过滤文本 'sort':排序 'uniq':去重 'awk':文本处理当然,复杂的网站管理肯定远不止这些,不过我这种自己用的没什么访问的小服务器。。这些也就勉强够用了。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: