|NO.Z.00007|——————————|^^构建^^|——|Nginx&Nginx.V1.16&企业级LNMP&Yum.V3|

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述|NO.Z.00007|——————————|^^构建^^|——|Nginx&Nginx.V1.16&企业级LNMP&Yum.V3|相关的知识,希望能为你提供帮助。
一、AWK、Sed、Grep分析nginx日志;

### --- AWK、Sed、Grep分析Nginx日志;~~~作为运维人员,在企业中日志内容主要用于拍错,定问题,根据日志内容错误提示, ~~~能够第一时间去定位问题,拍错问题,从而快速的解决问题,降低企业的损失。 ~~~其实日志内容出了用于运维人员,开发人员,DBA排错之外, ~~~换可以对日志内容进行分析,统计,评估, ~~~从而掌握门户网站IP、PV、UV、访问量,资源分配,使用情况等。

### --- AWK、Sed、Grep分析Nginx日志; ### --- cd到nginx的日志目录[root@localhost nginx]# cd /var/log/nginx/ [root@localhost nginx]# ll -rw-rw-r-- 1 nginx root 1527988 Nov3 22:13 access.log -rw-r--r-- 1 rootroot34543 Oct 31 11:45 access.log-20201031.gz -rw-rw-r-- 1 nginx root47309 Nov1 10:12 access.log-20201101.gz -rw-rw-r-- 1 nginx root87592 Nov2 13:24 access.log-20201102.gz -rw-rw-r-- 1 nginx root46903 Nov3 12:41 access.log-20201103.gz -rw-rw-r-- 1 nginx root0 Nov2 13:25 error.log -rw-r--r-- 1 rootroot1488 Oct 30 13:20 error.log-20201031.gz -rw-rw-r-- 1 nginx root299 Nov1 18:11 error.log-20201102.gz

### --- 每一条都是一个用户的访问请求;[root@localhost nginx]# more access.log 192.168.1.101 - - [03/Nov/2020:12:41:22 +0800] "POST /zabbix.php?action=notifications.get& sid=a2c13a51c1e3ec42& output=ajax HTTP/1.1" 200 436 "http://192.168.1.59/zabbix.php?action=da shboard.view& ddreset=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/86.0.4240.75 Safari/537.36"

二、基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志,
### --- 统计当天,总的用户访问量: ### --- 基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志, ### --- 分析和统计Nginx全天总的请求数(访问量)操作的指令和方法如下:[root@localhost nginx]# awk print $0 access.log |wc -l// 统计我们当天用户访问量;单引号表示命令段,大括号把命令括起来,表示一个动作,print打印动作,$0表示文本所有内容,wc 统计,-l打印行号 3884 [root@localhost nginx]# sed = access.log|tail -2// sed = 是显示行号的,tail -2表示显示最后两行 3884 192.168.1.101 - - [03/Nov/2020:22:22:45 +0800] "POST /zabbix.php?action=notifications.get& sid=a2c13a51c1e3ec42& output=ajax HTTP/1.1" 200 436 "http://192.168.1.59/hosts.php?ddreset=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"

[root@localhost nginx]# sed = access.log|tail -2 |head -1// head -1 表示第一行 3884 [root@localhost nginx]# sed = access.log|tail -2 |head -1 3884[root@localhost nginx]# wc -l access.log|cut -d "" -f1// -f1便是fire字段 3884 access.log [root@localhost nginx]# awk ENDprint NR access.log 3884

三、基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志,
### --- 基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志, ### --- 分析和统计Nginx全天09:00~11:00之间总的请求数(访问量)操作的指令和方法如下: ### --- 范围 head表示前5条,tail表示末尾5条[root@localhost nginx]# awk /2020:09:00/ access.log|more [root@localhost nginx]# sed -n /2020:09:00/paccess.log|more [root@localhost nginx]# grep -aiw2020:12:41access.log|more[root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/paccess.log|head -5 [root@localhost nginx]# awk /2020:12:41/,/2020:12:00/access.log|wc -l

四、基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志,
### --- 基于SHELL编程三剑客Awk、Sed、Grep分析线上Nginx的日志, ### --- 分析和统计Nginx全天09:00~11:00之间总的请求数(访问量),将IP地址打印出来, ### --- 同时将前20名的IP地址打印,将访问次数超过500的IP加入linux的黑名单;操作的指令和方法如下:### --- 都属于正则表达式: ### --- 将09:00~11:00的IP地址打印出来; [root@localhost nginx]#sed -n /2020:12:41/,/2020:12:00/paccess.log|awk print$1|more 192.168.1.101 192.168.1.59 [root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/paccess.log|grep -oE "([0-9]1,3\\.)3[0-9]1,3"|more 192.168.1.101 192.168.1.59

### --- 将访问次数超过500次的IP加入linux的黑名单: ~~~sort -n正向排序;uniq -c去重并统计,sort -nr 逆向排序,head -20 打印20名;root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/paccess.log|grep -oE "([0-9]1,3\\.)3[0-9]1,3"|sort -n|uniq -c|sort -nr|head -20//打印访问量排前20名的IP地址; 3964 192.168.1.101 3961 192.168.1.59

### --- 打印访问次数超过500次的用户地址; [root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/paccess.log|grep -oE "([0-9]1,3\\.)3[0-9]1,3"|sort -nr|uniq -c|sort -nr|awk if(($1> 500)) print$2 192.168.1.101 192.168.1.59### --- 访问量超过500次的加入IPtables防火墙黑名单:(IPtable) ### --- $ip/32表示IP地址,IPtable规则 [root@localhost nginx]# for ip in $(sed -n /2020:12:41/,/2020:12:00/paccess.log|grep -oE "([0-9]1,3\\.)3[0-9]1,3"|sort -nr|uniq -c|sort -nr|awk if(($1> 500)) print$2); do iptable -t filter -A INPUT -s $ip/32 -m tcp -p tcp --dport 80 -j DROP ; done

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warmd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor 【|NO.Z.00007|——————————|^^构建^^|——|Nginx&Nginx.V1.16&企业级LNMP&Yum.V3|】

    推荐阅读