网站的风格有哪些,3d建模培训班有用吗,美食网页制作素材,广州开发网站技术支持全文目录 1 日志处理1.1 实时日志分析1.1.1 nginx日志配置1.1.2 nginx日志示例1.1.3 日志分析示例 1.2 多文件合并分析1.3 时间范围日志提取 2 问题追查2.1 进程级问题定位2.2 网络连接排查2.3 硬件故障追踪 3 数据统计3.1 磁盘空间预警3.2 进程资源消耗排名3.3 HTTP状态码统计… 全文目录 1 日志处理1.1 实时日志分析1.1.1 nginx日志配置1.1.2 nginx日志示例1.1.3 日志分析示例 1.2 多文件合并分析1.3 时间范围日志提取 2 问题追查2.1 进程级问题定位2.2 网络连接排查2.3 硬件故障追踪 3 数据统计3.1 磁盘空间预警3.2 进程资源消耗排名3.3 HTTP状态码统计 4 高级组合技巧4.1 TCP连接状态分析4.2 日志时间戳转换4.3 多条件文件清理 5 参考文献 写在前面 前面的博文详细梳理了《Linux日志处理命令完全解构 》和《从零开始掌握Linux数据流管道与重定向完全指南》从各个单一命令的原理介绍再到数据流如何在命令之间进行输入和输出今天终于可以把前面的内容进行综合应用来完成本篇关于日志处理实战应用的整理。 本文重点介绍几种实战中常用的利用管道来整合多命令达成预期处理效果的实战应用希望能够给读者带来帮助。 1 日志处理
1.1 实时日志分析
1.1.1 nginx日志配置
http {log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $$http_user_agent $http_x_forwarded_for;access_log /var/log/nginx/access.log main;
}1.1.2 nginx日志示例
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index.html HTTP/1.1 200 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index1.html HTTP/1.1 500 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index2.html HTTP/1.1 500 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index.html HTTP/1.1 200 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index.html HTTP/1.1 400 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index2.html HTTP/1.1 502 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -
192.168.1.100 - - [27/Apr/2025:15:30:45 0800] GET /index1.html HTTP/1.1 504 612 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) -1.1.3 日志分析示例
动态跟踪Nginx日志统计500错误的请求路径出现次数
tail -f access.log | grep 500 | awk {print $7} | sort | uniq -c统计近1000条日志输出请求路径访问次数最多的三个
tail -n 1000 access.log | awk {print $7} | sort -nr | uniq -c | head ‐3统计某一时刻504 错误访问的URL及远程id
grep 2025:15:30 access.log | awk -F $9504 {print $1,$7}| sort | uniq -c | sort -nr1.2 多文件合并分析
合并多个日志文件统计非本机IP的访问量TOP20
cat access.log* | grep -v 127.0.0.1 | awk {print $1} | sort | uniq -c | sort -nr | head -201.3 时间范围日志提取
提取MySQL服务在指定时间段内的死锁日志显示上下文3行
journalctl --since 2025-04-25 09:00 --until 2025-04-25 12:00 -u mysql | grep -C3 deadlock2 问题追查
2.1 进程级问题定位
通过进程名定位PID查询相关进程打开的文件描述符处理过程过滤进程→提取PID→查看文件句柄
ps aux | grep nginx | awk {print $2} | xargs -I{} lsof -p {}2.2 网络连接排查
筛选80端口监听状态格式化输出结果处理过程过滤监听状态→匹配端口→表格排版
netstat -tulnp | awk $6LISTEN $4~:80$ | column -t统计网络连接情况
netstat -n | awk /^tcp/ {S[$NF]} END {for(a in S) print a, S[a]} # TCP连接统计返回结果示例
LAST_ACK 7
SYN_RECV 33
ESTABLISHED 159
FIN_WAIT1 51
FIN_WAIT2 90
TIME_WAIT 107解释说明
SYN_RECV表示正在等待处理的请求数
ESTABLISHED表示正常数据传输状态
TIME_WAIT表示处理完毕等待超时结束的请求数2.3 硬件故障追踪
分析内核日志中错误信息按设备名统计异常次数处理过程过滤错误→提取设备标识→统计频次
dmesg -T | grep -i error | awk -F[: ] {print $1,$3} | sort | uniq -c3 数据统计
3.1 磁盘空间预警
检测磁盘使用超80%的分区邮件通知管理员
df -h | awk $5 80 {print $6,$5} | column -t | mail -s Disk Alert zhangsanexample.com3.2 进程资源消耗排名
显示当前运行的进程信息包括进程ID、父进程ID、命令名称、内存使用百分比和CPU使用百分比并按内存使用百分比降序排列显示前10条结果
ps -eo pid,ppid,cmd,%mem,%cpu --sort-%mem | head -n 10 | awk NR1 {print $1,$4}3.3 HTTP状态码统计
统计日志中不同HTTP状态码出现次数处理过程提取状态码→排序计数→格式化输出
awk {print $9} access.log | sort | uniq -c | awk {printf 状态码%s: %d次\n,$2,$1}4 高级组合技巧
4.1 TCP连接状态分析
统计已建立连接的远程端口分布
ss -tunap | awk {print $1,$5} | grep ESTAB | awk -F: {print $2} | sort | uniq -csort -nr4.2 日志时间戳转换
将日志中的时间转换为Unix时间戳便于分析
grep ERROR app.log | awk {print $1,$2} | xargs -I{} date -d {} %s4.3 多条件文件清理
删除30天前且大于100MB的日志文件
find /logs -name *.log -mtime 30 -exec du -sh {} | awk $1 100M {print $2} | xargs rm -vf5 参考文献
文献1文献2文献3 写在最后 以上有限的例举了一些常用的组合式方法和命令来解决一些实际工作中的问题这里仅是抛砖引玉给读者一个认知上的拓展并不能梳理的特别全面根据遇到的实际情况需要做灵活调整已达成预期的效果。如果对你有帮助欢迎点赞和收藏如有任何问题也欢迎评论指正一起加油