本文转载之https://blog.zymlinux.net/index.php/archives/251
Tsar是什么?
Tsar是淘宝的采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等)以及应用数据(如squidhaproxy nginx等),tsar支持实时查看和历史查看,方便了解应用和服务器的信息!
官方网址:http://tsar.taobao.org/
github地址:https://github.com/kongjian/tsar
豪哥贴的一张图
Tsar的优点?
技术开源
淘宝技术支持
淘空见同学非常负责,上次提了下bug,很快就修复了
模块化
自带很多系统性能监控模块
自带很多常用软件的监控模块
可自写插件收集监控其他信息
支持本机查看
支持输出到远程数据库
配合nagios的被动监控,页面显示
1:安装Tsar(本配置适合默认安装ats的童鞋)
下载安装很简单,github默认就提供了两种方法,不过先不用急着安装先,继续看下面的内容。
1
2
3
|
#git clone git:
//github
.com
/kongjian/tsar
.git
mod_ts_cache.c
mod_ts_client.c
mod_ts_codes.c
mod_ts_conn.c
mod_ts_err.c
mod_ts_os.c
#make
#make
install
|
1
2
3
4
5
|
#wget -O tsar.zip https:
//github
.com
/alibaba/tsar/archive/master
.zip
#unzip tsar.zip
参考上面
#make
#make
install
|
Tsar源码包的目录和文件
1
2
3
4
5
6
7
|
├── conf
├── devel
├── include
├── modules
├── rpm
├── src
└── tools
|
配置文件在conf目录,模块文件在modules目录里面,Tsar并不是默认就启用所有的模块的,所以ats的监控默认需要手动启用。
启用Tsar的ats监控模块
在conf/tsar.conf文件中的对应位置添加上如下on内容(备注:把下面内容写在同一行上,会有问题)
1
2
3
4
5
6
7
|
mod_ts_cache on
mod_ts_client on
mod_ts_codes on
mod_ts_conn on
mod_ts_err on
mod_ts_os on
mod_ts_storage on
|
关于ats的socket文件
在Tsar安装目录的modules下,ats相关的模块c源码中都有ats的一个socket文件的指定,这个socket文件非常重要,如果位置对应不上,Tsar监控ats部分是不会出数据的。
例如mod_ts_client.c默认配置的socket文件的位置是”/var/run/trafficserver/mgmtapisocket”
默认安装的ats的socket文件在”/usr/local/var/trafficserver/mgmtapisocket”
把配置文件跟模块的socket文件修改好再编译安装就可以直接使用了。
使用Tsar
1
2
3
4
5
6
7
8
9
|
tsar --ts
tsar --ts_conn
tsar --ts_cache
#指定时间间隔方式
tsar --ts -i 1
#实时输出方式
tsar --ts -l 1
#或者组合方式
tsar --ts --ts_conn --ts_cache
|
关于ats模块各项意思
直接上聊天记录了。
杭州-海洋之心 19:41:18
ts : 每秒请求数,每秒连接数,流量,每秒处理事务,每个连接处理的请求数
杭州-海洋之心 19:46:42
ts_conn: client连接数,server连接数,cache的连接数,打开的连接数,活跃的client连接数,client发送的事务数,server处理的事务烽
赵永明_阿里 20:01:13
transaction & connection,有连接,但不一定在传数据,transaction相关的是正在处理请求的统计,希望可以对大家理解有帮助
赵永明_阿里 20:02:30
t_cli = transaction in client side, t_server = transaction in server side.
2:本人再补充一部分
上面作者纸鸢提到的是默认安装,本人环境是自定义安装的;
#find / -name mgmtapisocket
然后用sed 替换那些模块的默认路径
如果还是不出数据,编辑配置文件records.config
CONFIG proxy.config.http.enable_http_stats INT 1
主要就两个点:1./etc/tsar/tsar.conf启用所有模块on;2.每个模块的源码文件的socket文件配置。
第二部分:监控nginx
1:需要nginx 在编译时候加--with-http_stub_status_module,并且在nginx.conf添加如下内容
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.2.3;#用户可以自己定义,我这是举例说明格式;
allow 192.168.8.0/24;
deny all;
}
2:修改mod_nginx.c文件,此文件在tsar安装目录下的modules目录中
static void
init_nginx_host_info(struct hostinfo *p)
{
char *port;
p->host = getenv("NGX_TSAR_HOST");
p->host = p->host ? p->host : "192.168.2.2"; #默认是172.0.0.1
port = getenv("NGX_TSAR_PORT");
p->port = port ? atoi(port) : 80; #监控的端口,如果大家有多个虚拟机主机,需要注意
p->uri = getenv("NGX_TSAR_URI");
p->uri = p->uri ? p->uri : "/nginx_status";
p->server_name = getenv("NGX_TSAR_SERVER_NAME");
p->server_name = p->server_name ? p->server_name : "main.gslb.ku6.com"; #server_name 根据nginx.conf 修改
转载于:https://blog.51cto.com/luyafei/1198387