利用SHELL三剑客怎样统计和分析nginx日志
1、在企业生产环境中,日志内容主要用来做什么呢?日志内容主要用于运维人员、开发人员、DBA排错软件服务的故障的,因为通过日志内容能够第一时间找到软件服务的异常或者故障原因,从而第一时间解决问题,降低企业的损失。
2、日志内容在企业中,除了用于排错、定位问题之外。运维人员、开发人员还可以对日志内容进行分析、统计、过滤,评估网站访问量、PV(Page Veiw)、UV(uniq visitor)、IP(独立IP)、用户访问行为等。
3、基于SHELL编程三剑客Awk、Sed、Grep来分析、统计线上Nginx日志,统计Nginx访问日志全天总的请求数,操作指令如下:
wc -l access_20200228.log|cut -d" " -f1
awk '{print $0}' access_20200228.log|wc -l
awk '{print NR}' access_20200228.log|tail -1
sed = access_20200228.log|tail -2|head -1
grep -aic "" access_20200228.log

4、基于SHELL编程三剑客Awk、Sed、Grep来分析、统计线上Nginx日志,统计Nginx访问日志全天(09:00-11:00)总的请求数,操作指令如下
grep "2020:09:00" access_20200228.log|wc -l
grep "2020:11:00" access_20200228.log|wc -l
sed -n '/2020:09:00/'p access_20200228.log
awk "/2020:09:00/,/2020:11:00/" access_20200228.log|wc -l
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|wc -l
5、基于SHELL编程三剑客Awk、Sed、Grep来分析、统计线上Nginx日志,统计Nginx访问日志全天(09:00-11:00)总的请求数,将访问的用户IP打印出来,将访问量排前20名IP打印,操作指令如下:
#将访问的用户IP打印出来;
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|cut -d" " -f1
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|awk '{print $1}'
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"
#将访问量排前20名IP打印出来;
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c
sed -n '/2020:09:00/,/2020:11:00/'p access_20200228.log|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|head -20