满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述|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|】
推荐阅读
- 脑图-免费开源的思维导图软件
- |NO.Z.10000|——————————|MonitorIng|
- kettle庖丁解牛第9篇之DB连接终篇
- 类和对象—4
- 用Java十多年了,能“精通Java”了吗()
- 元宇宙的灵动之魂——电子游戏
- k8s-DNS
- PXE高效装机
- 百度小程序包流式下载安装优化