注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Trafficserver二次bash编程的一些经验集累  

2014-06-15 13:35:19|  分类: trafficserver编 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
直接读取ATS的工作参数,除使用tsar之外,也可以使用这些方法直接使用SHELL命令读取。

 1) ATS状态参数读取方法之一:            
        直接使用traffic_line -r 来读取。                

traffic_line -r   proxy.node.cache_total_hits
traffic_line -r
proxy.node.cache_hit_ratio
traffic_line -r proxy.node.cache_hit_ratio_int_pct
traffic_line -r proxy.node.bandwidth_hit_ratio
traffic_line -r proxy.node.bandwidth_hit_ratio_int_pct

traffic_line -r proxy.node.cache_hit_ratio_avg_10s #查询当前缓存服务命中率

traffic_line -r proxy.node.current_server_connections #到后端源的连接数

traffic_line -r proxy.node.current_client_connections #前端用户到TServer的连接数

traffic_line -r proxy.node.user_agent_xacts_per_second #平均每秒处理的并发

traffic_line -r proxy.node.client_throughput_out #当前TServer输出到前端的带宽流量(单位Mbps)

......

2) Ats状态参数读取方式之二:

        直接使用bash管道向traffic_shell发送参数读取指令.

        说明:因为traffic_shell在v4.0+的取缔,所以不能再用了.

        使用bash编环境与ATS编程整合的一个小方法:使用bash读取traffic_shell下的参数
        #  echo “show:proxy-stats”|traffic_shell

          本处使用echo命令向traffc_shell发送命令。但是此处要系统的tcl能正常工作。
        表示创作echo将字符串“show:proxy-stats”通过管道发给traffic_shell即可直接读出状态参数结果。
        如图:
       

ATS二次开发小技巧集累 - itoedr - itoedr的it学苑
 然后通过AWK可以取出其中的各项参数转给web前端做状态展示.
        附:此类参数很丰富如下show:???对中"show:"之后的状态参数均可以echo通过管道"|"向traffic_shell发送取得数据.
         *******************************
        show:alarms show:cache show:cache-stats show:cluster show:dns-resolver show:dns-stats show:hostdb show:hostdb-stats show:http show:http-stats show:http-trans-stats show:icp show:icp-stats show:logging show:logging-stats show:network show:parent show:port-tunnels show:proxy show:proxy-stats show:remap show:scheduled-update show:security show:socks show:ssl show:status show:version show:virtual-ip
         *********************
        使用发现,第一种方法(traffic_line的方法)成功性很高。但是traffic_shell+管道的方法却经常失败。最终总算找出了原因:traffic_line的方法依赖远低于traffic_shell的方法。
       
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
traffic_shell的正常运行要依赖于更多的依存于更多的运行库.
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
traffic_line有依存库就相对要少一些.
       鉴于以上原因,笔者采用了traffic_line的方式读取trafficserver的运行参数.
        增补说明:
         从ATS4.0开始,traffic_shell被官方遗弃,从而减小了ATS的tcl的依赖性,也算是一种精简.
三.使用traffic_layout读取trafficserve的运行环境
      trafficserver越发精练,也增加了一些有用的工具,traffic_layout就可以一下为我们使用者展示出她的使用环境,示例如下:
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
要读取各个文件参数,最好在root权限下
当然需要说明一翻的是,在/etc/default/中有系统更优先默认优先配置,看看其下面trafficserver的内容:
/etc/default/trafficserver## Defaults for trafficserver initscript
## sourced by /etc/init.d/trafficserver
## installed at /etc/default/trafficserver by the maintainer scripts

##
## This is a POSIX shell fragment
##

## Variable: RUNDIR
## Default: /var/run/trafficserver
## Description: Set this to the directory where runtime data is stored. The
##              default value should work fine for almost all users.
# RUNDIR=/var/run/trafficserver

## Variable: TC_START
## Default: no
## Description: Set to "yes" if you want the init script to start the
##              `traffic_cop' binary. Usually this is what most users want
TC_START=yes

## Variable: TC_DAEMON_ARGS
## Default: (empty)
## Description: Set here command line arguments the init script shall pass
##              through `traffic_cop' upon startup.
# TC_DAEMON_ARGS=""

## Variable: TC_PIDFILE
## Default: $RUNDIR/cop.lock
## Description: Set this to a (writable) path where the PID file of the
##              `traffic_cop' script should be stored. Most likely you don't
##              need to change this value.
# TC_PIDFILE=$RUNDIR/cop.lock

##
## NOTICE:
##        Typically you do not want to configure anything below. Note, generally Traffic
##        Server is started through `traffic_cop' which is a watchdog to control any local
##        Traffic Server instances. It starts both, traffic_manager and traffic_server, as
##        does it monitor these processes. While it is generally not advised, you can
##        choose to manage both processes yourself. In such cases do not set TC_START to
##        "yes" and enable any service you want below.
##
##        Choose either alternative, but do not mix up both.

## Configuration for `traffic_manager'.
## Meaning of variables is analogous to traffic_cop above, but for the
## `traffic_manager' binary.

# TM_START=no
# TM_DAEMON_ARGS=""
# TM_PIDFILE=$RUNDIR/manager.lock

## Configuration for `traffic_server'.
## Meaning of variables is analogous to traffic_cop above, but for the
## `traffic_server' binary.

# TS_START=no
# TS_DAEMON_ARGS=""
# TS_PIDFILE=$RUNDIR/server.lock
 
四. 利用tsar读取ATS的利用率的一种方法"tsar --ts_cache|tail -f --line=3|awk 'NR==2 {print $2} ' "
        先看一看"tsar --ts_cache"的作用(在一般用户条件下):
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
        可用命令:       tsar --ts_cache|tail -f --line=3|awk 'NR==2 {print $2} ' 或者命令:"tsar --ts_cache|tail -n 3|awk 'NR==2 {print $2} ' "
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
例子:一段php代码:
********************************************************************************************
<?php
 echo "[";
echo "{cache_hit:";
$hitvalue=`tsar --ts_cache|tail -f --line=3|awk 'NR==2 {print $2} ' `*1;
//shell_exec("tsar --ts_cache|tail -n 3|awk 'NR==2 {print $2} ' ");
echo $hitvalue;
echo "},{";
echo "rest_hit:";
echo  100-$hitvalue;
echo "}";
echo "]";
?>
*******************************************************************************************
五.tsar读取ATS的状态
1)利用tsar读取ATS的cache的大小尺寸
::命令::php代码----- echo `tsar --ts_storage|tail -n 3|grep MEAN|awk '{print $3}'`;
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
2)读取带宽利用率
   :: php代码::   echo `tsar --ts_cache |grep MEAN|awk '{print $4}'`;
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
通过tsar的非特权读取ats效率并抽取数值内容.
六、php下结合suders配置实现ATS的带宽与内容利用率的例子
   ::suders的授权:
Trafficserver二次bash编程的一些经验集累 - itoedr - itoedr的it学苑
 为php执行shell命令授权.
php代码:
**************************************
<?php
$cdnbandreuse=`sudo traffic_line -r  proxy.node.bandwidth_hit_ratio_int_pct`*1;
echo  ceil($cdnbandreuse);
?>
**************************************
   通过上述代码取得ATS对于带宽利用的贡献并返回给前端html展示.
  评论这张
 
阅读(364)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017