shell脚本死循环判断nginx日志reqest_time时间大于3秒是否增加,若增加发送相关日志信息到开发人员
#!/bin/bash while [ 1 ] do pre_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'|awk -F '"' ' $2>3 '|awk -F '"' '{print $2}'|wc -l` # 取 request_tme 大于3秒的计数值 echo $pre_request_time_count sleep 300 last_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'|awk -F '"' ' $2>3 '|awk -F '"' '{print $2}'|wc -l` # 取5分钟后 request_time 大于3秒的计数值 echo $last_request_time_count if [ $pre_request_time_count -lt $last_request_time_count ]; then # 若计数值增加 , 则发送邮件关于 request_time 大于3秒的日志信息到相关收件人员 cat /var/log/nginx/access.log |awk '{print $0}'|awk -F '"' ' $(NF-1)>3 ' | /bin/mail -s "dataline-prod nginx request_time 超过3秒" zhaoweifeng@zhi&&***.cn 157453772@****.com fi done
并加入开机启动 :
[root@dataline-prod ~]# cat /etc/rc.local sh /etc/zabbix/scripts/nginx_request_time.sh & > /dev/null 2>&1
邮件配置参考:
https://www.cnblogs.com/weifeng1463/p/7508485.html