nginx并发连接数和响应时间抓取shell笨拙版

并发连接数和响应时间抓取想法
1.数据图使用cacti for nginx插件进行记录
2.nginx编译stub_status模块,log记录添加[$time_local]和$request_time字段
3.并发连接数定期curl status页面获得
4.响应时间使用本地时间戳做条件在日志中匹配得到(未改造nginx记录日期格式)

本地抓取shell笨拙基础版
1.根据时间戳抓取响应时间和并发连接数做join
2.nginxstatus current显示当前的并发连接数,响应时间,一秒钟内的响应时间均值和最大值nginxstatus 3.detail显示过去24小时内的每一分钟内的并发连接数和响应时间均值
4.nginxstatus crond每秒钟记录一次并发连接数
5.nginxstatus help
#!/bin/bash
####nginxstaus.sh####
QPS=`curl -s status.test.com |awk '{ if( $1~/Active/ ) print $NF}'`
DATE=`date +"%d/%b/%Y:%T"`
LAST_DATE=`date -d '-1 day' +"%d/%b/%Y:%T"`
LOG="/var/nginxlog/access.log"
LOG1=/tmp/logs
AVG_RT=`grep $DATE $LOG |awk -F "-" '{ total+=$5 }END{ if( $total!=0 ) print total/NR }'`
MAX_RT=`grep $DATE $LOG |awk -F "-" '{ print $5 }' |sort -nr |head -1`
DAYS_AVG=`sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG |awk -F "-" '{ total+=$5 } END{ if( $total!=0 ) print "avg_rt = ", total/NR }'`
QPS_AVG=`sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG1 |awk '{ total+=$2 } END{ if( $total!=0 ) print "qps_rt = ", total/NR }'`
DAYS_MAX=`sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG |awk -F "-" '{ print $5 }' | sort -nr | head -1`
QPS_MAX=`sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG1 |awk '{ print $2 }' | sort -nr | head -1`
case $1 in
current )
echo "$DATE qps:$QPS avg_rt:$AVG_RT max_rt:$MAX_RT"
;;
detail )
echo -e "time   rt  qps\n----------------"
join <( sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG |awk -F '[[ :]+' '{k=$4":"$5":"$6;a[k]+=$NF;b[k]++}END{for(i in a)if( $a[i]!=0 ) print i,a[i]/b[i]}' |sort -t : -k1n ) <( sed -n "\#'$LAST_DATE'#,\#'$DATE'#p"  $LOG1 |awk -F "/|:| " '{k=$3":"$4":"$5;a[k]+=$NF;b[k]++}END{for(i in a)if( $a[i]!=0 ) print i,a[i]/b[i]}' |sort -t : -k1n )
echo -e "\n----------------\n$DAYS_AVG $DAYS_MAX $QPS_AVG $QPS_MAX"
;;
crond )
echo "$DATE $QPS" >>$LOG1
;;
help )
echo "useage current | detail | blank | help |crond"
;;
esac

更多相关文章
  • C#WinForm之DOTA2英雄搭配助手网页抓取+在线绿色版+源码开放
    睡不着,无聊......再整理点好玩的出来.先上图 效果 碎碎念 自从13级后打出DOTA2的天梯积分以来简直是逆水行舟不进则退啊,室友已经高呼着被游戏玩了!!结果怒删游戏 其实我也发现这游戏不合适我玩…天梯里场场被各种选英雄针对,普通场又是剑圣.斧王横行.加之本人比较懒,不爱看视频,场均10死那是 ...
  • 完全原创,自己写的一个脚本,Nginx前20个访问IP的抓取,执行脚本后,会不断的提取日志,直接你输入0后才会停止,否则会一直循环下去,时间可以自己定,脚本如下: #!/bin/bash# date 2013-04-24# Liuyang# nginx log file directorynginx ...
  • 自动发送密码抓取远程日志.在linux系统中,如何用shell脚本抓取远程日志?分析线上的日志会有一个困境,机器太多,如果每台都登录上去看不太现实,但是下载下来更麻烦因为每台SCP都要求输入密码.于是我便写了一个自动抓取远程日志的脚本,实现在基本功能.代码:#!/usr/bin/expect -fi ...
  • 今天,大数据部老大交给我一项任务——抓取股票历史数据.于是乎,我自行在网上找了一下,发现wget真真是一个非常强大的linux下载工具.我已经被深深震撼到了.下面叙述今天的一些过程,还是比较坎坷的. 首先,我利用公司现在存在的股票数据,使用hive查询所有的股票代码并导入本地: hive -e -- ...
  • Golang实现webapi接口调用及web数据抓取getpost模式
    前沿:    继续扩展我的golang服务端,这边有些数据库是没有权限的,对方给了我webservices的接口,针对异常的数据,我要去抓数据,再次分析,golang貌似没有python那么多的模拟浏览器访问的模块,还好默认的http就支持. 功能一点都不必urllib2 差...    正题!!! ...
  •  一.单独抓取文件中ip地址,文件内容是Mar 31 07:53:20 drserver2 spamdyke[27749]: ALLOWED from: [email protected] to: [email protected] origin_ip: 71.229.51. ...
  • Scrapy爬虫实例抓取豆瓣小组信息并保存到mongodb中
    这个框架关注了很久,但是直到最近空了才仔细的看了下 这里我用的是scrapy0.24版本先来个成品好感受这个框架带来的便捷性,等这段时间慢慢整理下思绪再把最近学到的关于此框架的知识一一更新到博客来.最近想学git 于是把代码放到 git-osc上了: https://git.oschina.net/ ...
  • 对抓取网页的脚本的研究
    对抓取网页的脚本http://life2death.blog.51cto.com/7550586/1657133 的研究:声明:本人只是拿来学习研究,谢谢浮夸往事大神.一道企业shell编程实战题 http://oldboy.blog.51cto.com/2561410/1657042本脚本对htt ...
一周排行
  • 概述当您安装动态主机配置协议(DHCP)服务器角色时,DHCP服务器将IP地址和其他网络配置参数提供给作为DHCP客户端配置的主机计算机和网络设备.如果DHCP由于网络.硬件或其他故障而变得不再可用,则可能会对在DH ...
  • 一.设备文件管理方法devfs–Linux早期采用的静态管理方法–/dev目录下有大量静态文件–绝大多数文件没有对应的硬件连接–内核版本2.6.13开始被完全取代udev–只有连到系统上来的设备才在/dev下创建设备 ...
  • 1.测试环境操作系统:CentOS6.5director:    eth0,DIP:192.168.220.131    eth,VIP:192.168.220.132realserver1:    eth0, ...
  • 奇怪吸引子---Rucklidge
          奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性 ...
  • 无聊中安装的MACOS截图欣赏
  • 蓝牙技术是一种支持点对点或点对多点的话音.数据业务的短距离无线通信技术.蓝牙系统采用一种灵活的无基站的组网方式,使得一个蓝牙设备可同时与7个其它的蓝牙设备相连接.蓝牙系统的网络结构为拓扑结构,有两种形式: 微微网(p ...
  • 文章试读不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四职场规划:一些杂七杂八的职场感悟吧.不值钱的软件人才精力充沛与事业成功   让系分来得更猛烈些吧    不值钱的系 ...
  • 关于硬盘分区:主分区(包含扩展分区).逻辑分区,主分区最多有4个(包含扩展分区).因此我们在对硬盘分区时最好划分主分区连续,比如说:主分区一.主分区二.扩展分区.此文章以fdisk工具为例,对一个硬盘划分.1.fdi ...
  •     呵呵,经过一段时间的努力总算是完成了这篇文章.从附件中的修定时间你可以看出,从开始写这个主题到最终完成花了很长的时间.之所以花这么多的时间,是因为内存管理模块具有一定的复杂性,在写作的过程中总是想找到高效且简 ...
  • http://poj.org/problem?id=2593/*  Description:  思想:对于数据a[],从左向右依次求解以a[i]结尾的最大子段和b[i],  然后变b[i]为a[i]左边(包括a[i] ...