nginx常用运维日志分析命令详解程序员

本文章主要介绍了nginx常用运维日志分析命令,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

 nginx常用日志分析命令 运维人员必备

常用日志分析命令 
 
1、总请求数 
wc -l access.log |awk '{print $1}' 
2、独立IP数 
awk '{print $1}' access.log|sort |uniq |wc -l 
3、每秒客户端请求数 TOP5 
awk  -F'[ []' '{print $5}' access.log|sort|uniq -c|sort -rn|head -5 
4、访问最频繁IP Top5 
awk '{print $1}' access.log|sort |uniq -c | sort -rn |head -5 
5、访问最频繁的URL TOP5 
awk '{print $7}' access.log|sort |uniq -c | sort -rn |head -5 
6、响应大于10秒的URL TOP5 
awk '{if ($12 > 10){print $7}}' access.log|sort|uniq -c|sort -rn |head -5 
7、HTTP状态码(非200)统计 Top5 
awk '{if ($13 != 200){print $13}}' access.log|sort|uniq -c|sort -rn|head -5 
8、分析请求数大于50000的源IP的行为 
awk '{print $1}' access.log|sort |uniq -c |sort -rn|awk '{if ($1 > 50000){print $2}}' > tmp.txt 
for i in $(cat tmp.txt) 
do 
     echo $i  >> analysis.txt 
     echo "访问行为统计" >> analysis.txt 
     grep $i  access.log|awk '{print $6}' |sort |uniq -c | sort -rn |head -5 >> analysis.txt 
     echo "访问接口统计" >> analysis.txt 
     grep $i  access.log|awk '{print $7}' |sort |uniq -c | sort -rn |head -5 >> analysis.txt 
     echo -e "/n"  >> /root/analysis/$Ydate.txt 
done 
注:如果源IP来自代理服务器,应将第一条命令过滤地址改为$http_x_forwarded_for地址 
awk '{print $NF}' access.log|sort |uniq -c |sort -rn|awk '{if ($1 > 50000){print $2}}' > tmp.txt 

 快速杀死所有nginx进程

// 通过 killall 命令 
killall nginx 
// 通过 pkill 命令,类似于 pgrep + kill 
pkill nginx 
// 通过先查找再 kill 的方式 
ps -ef | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9 
// 用 cut -c 来截取指定位置的字符串 
ps -ef | grep nginx | grep -v grep | cut -c 11-15 | xargs kill -9 
// 通过 pgrep 指令,根据名字找出所有包含该名字的进程号 
pgrep nginx | xargs kill -9 
// 通过 pidof 指令,根据进程全名找出进程号 
pidof nginx | kill -9 
// 除了管道符的方式,也可以用命令替换,这样就不用通过 xargs 转换参数了 
kill -9 `pgrep nginx` 

  

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/228335.html

(0)
上一篇 2022年1月11日
下一篇 2022年1月11日

相关推荐

发表回复

登录后才能评论