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

Posted yanqi_vip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了|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 Nov  3 22:13 access.log
-rw-r--r-- 1 root  root   34543 Oct 31 11:45 access.log-20201031.gz
-rw-rw-r-- 1 nginx root   47309 Nov  1 10:12 access.log-20201101.gz
-rw-rw-r-- 1 nginx root   87592 Nov  2 13:24 access.log-20201102.gz
-rw-rw-r-- 1 nginx root   46903 Nov  3 12:41 access.log-20201103.gz
-rw-rw-r-- 1 nginx root       0 Nov  2 13:25 error.log
-rw-r--r-- 1 root  root    1488 Oct 30 13:20 error.log-20201031.gz
-rw-rw-r-- 1 nginx root     299 Nov  1 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/p  access.log|more
[root@localhost nginx]# grep -aiw  2020:12:41  access.log|more

[root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/p  access.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/p  access.log|awk print$1|more
192.168.1.101
192.168.1.59
[root@localhost nginx]# sed -n /2020:12:41/,/2020:12:00/p  access.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/p  access.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/p  access.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/p  access.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|的主要内容,如果未能解决你的问题,请参考以下文章