Linux服务器日志管理与分析
一、日志种类与作用
在Linux服务器系统中,存在着多种类型的日志,如内核日志、安全日志、审计日志、邮件日志以及应用程序日志(如Nginx、MYSQL、Redis、MQ、ZK等)。这些日志内容主要用于定位软件服务或操作系统的故障。通过对日志内容进行分析和统计,可以评估网站的访问量、IP地址、UV(独立访客)、PV(页面浏览量)以及用户行为。
二、使用SHELL编程三剑客分析Nginx日志
基于SHELL编程的awk、sed、grep工具,我们可以对Nginx的WEB日志进行深入分析。需要找到Nginx日志文件的位置,这通常可以通过find工具来实现。
三、Nginx WEB日志实战一:总请求数统计
要统计Nginx全天总的请求数,可以使用以下命令:
1. 使用`awk`命令打印日志中的所有行并统计行数:
```sh
awk '{print $0}' access_20240523.log | wc -l
```
2. 直接统计日志文件行数:
```sh
cat access_20240523.log | wc -l
```
或者使用其他命令如`wc -l < access_20240523.log`。
四、Nginx WEB日志实战二:时间范围请求数统计
若要统计特定时间范围(如10:00-11:00)内的请求数,可以使用以下命令:
1. 匹配时间范围内的行并统计行数:
```sh
awk '/23\/May\/2024:10:00/' access_20240523.log | wc -l
```
或者使用其他文本处理命令如`sed`和`grep`结合来实现。
五、Nginx WEB日志实战三:IP地址提取与统计
若要提取并统计10:00-11:00之间访问的IP地址,可以使用以下命令:
1. 提取IP地址并打印出来:
```sh
sed -n '/23\/May\/2024:10:00/,/23\/May\/2024:11:00/p' access_20240523.log | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq -c -f 7 | sort -nrk 1,1n | head -n 20
```
这里使用了`sort`和`uniq`命令来对IP地址进行排序和去重,并通过`head`命令取前20个。
六、Nginx WEB日志实战四:IP访问次数排名
若要统计IP地址访问次数并排前20名,可以使用以下命令:
```sh
sed -n '/23\/May\/2024:10:00/,/23\/May\/2024:11:00/p' access_20240523.log | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq -c | sort -nr | awk 'NR<=20 {print $7}'
```这里通过一系列的命令组合来提取IP地址,并按访问次数进行排序和打印前20名。
七、Nginx WEB日志实战五:IP设置