淘宝开源系统监控工具Tsar
Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用
值得一提的是、Tsar 支持将数据存储到 MySQL 中,也可以将数据发送到 Nagios 报警服务器
㈠ 部署
① tsar由于定时采集数据,需要crond服务正常。不依赖额外的库
② 获得tsar源代码:(svn checkout http://code.taobao.org/svn/tsar/trunk/ tsar)
③ 编译安装tsar
进入tsar的根文件夹
运行 ./configure,注意tsar并不支持prefix
运行 make 进行编译
运行 make install 进行安装
㈡ 常用例子
比如、以1秒钟为间隔,实时打印tsar的概述数据
[root@localhost tsar-2.1.0]# tsar -i 1 -l
- Time ---cpu-- ---mem-- ---tcp-- -----traffic---- --hda--- ---load-
- Time util util retran pktin pktout util load1
- 14/04-13:05 98.0 14.9 0.0 2.0 0.0 32.8 0.4
- 14/04-13:05 85.1 14.6 0.0 2.0 0.0 15.6 0.4
- 14/04-13:05 0.0 14.6 0.0 10.0 2.0 0.0 0.4
- 14/04-13:05 4.0 14.6 0.0 2.0 0.0 1.6 0.4
- 14/04-13:05 5.0 14.6 0.0 2.0 0.0 0.4 0.3
- 14/04-13:05 7.0 14.6 0.0 0.0 0.0 0.8 0.3
- 14/04-13:05 2.0 14.6 0.0 0.0 0.0 0.0 0.3
- 14/04-13:05 1.0 14.6 0.0 0.0 2.0 0.0 0.3
再比如:
tsar 显示1天内的历史汇总(summury)信息,以默认5分钟为间隔
tsar --cpu -i 1 显示一天内cpu的历史信息,以1分钟为间隔
tsar --live --mem -i 2 以2秒钟为间隔,实时打印mem的数据。
tsar --cpu --mem -i 1 显示一天内的cpu和内存历史数据,以1分钟为间隔
更多用法、请咨询 http://code.taobao.org/p/tsar/wiki/index/
简介
tsar是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。
收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。
tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带--live参数可以输出秒级的实时信息。
总体架构
Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。
框架程序源代码主要在src目录,而模块源代码主要在modules目录中。
框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。
tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar --cron来定时采集信息,并且记录到原始日志文件。
tsar的运行流程图如下:

主要执行流程有:
1.解析输入
根据用户的输入,初始化一些全局信息,如间隔时间,是否merge,是否指定模块,运行模式
2.读取配置文件信息
主要解析tsar的配置文件,如果include生效,则会解析include的配置文件
配置文件用来获得tsar需要加载的模块,输出方式,每一类输出方式包含的模块,和此输出方式的接收信息
如mod_cpu on代表采集cpu的信息
output_interface file,nagios表示向文件和nagios服务器发送采集信息和报警信息
3.加载相应模块
根据配置文件的模块开启关闭情况,将模块的动态库load到系统
4.tsar的三种运行模式
tsar在运行的时候有三种模式:
print模式仅仅输出指定的模块信息,默认显示最近一天的;
live模式是输出当前信息,可以精确到秒级
cron模式,此一般是crontab定时执行,每一分钟采集一次所有配置的模块信息,并将数据写入原始文件,在cron运行的时候 会判断是否配置输出到db或者nagios,如果配置则将相应格式的数据输出到对应接口。
5.释放资源
程序最后,释放动态库,程序结束
下载:https://github.com/alibaba/tsar
如何安装
从github上检出代码:
$git clone git://github.com/kongjian/tsar.git
$cd tsar
$make
$make install
或者直接从github上下载源码
$wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip
$unzip tsar.zip
$cd tsar
$make
$make install
如何配置tsar
1.配置文件/etc/tsar/tsar.conf
#debug_level(INFO DEBUG WARN ERROR FATAL)
debug_level FATAL
#[module] on/off to enable mod
mod_cpu on
mod_mem on
mod_swap on
mod_tcp on
mod_udp on
mod_traffic on
mod_io on
mod_pcsw on
mod_partition on
mod_tcpx on
mod_load on #output type:file,nagios,db
output_interface file #[output_file] original data to store
output_file_path /var/log/tsar.data #[output_stdio] these mod will be show as using tsar
output_stdio_mod mod_swap,mod_partition,mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udp,mod_tcpx,mod_pcsw,mod_io #[output_nagios] the alert will be report to nagios server
#output_nagios_mod #mod_swap,mod_partition,mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udp,mod_tcpx,mod_pcsw,mod_io #[output_db]
#output_db_mod #mod_swap,mod_partition,mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udp,mod_tcpx,mod_pcsw,mod_io
#output_db_addr console2:56677 #support include other mod conf
include /etc/tsar/conf.d/*.conf
debug_level 指定tsar的运行级别,主要用来调试使用
mod_xxx on/off 开启指定模块
out_interface 设置输出类型,支持file,nagios,db
out_stdio_mod 设置用户终端默认显示的模块
output_db_mod 设置哪些模块输出到数据库
output_db_addr 数据库的ip和端口
output_nagios_mod 设置哪些模块输出到nagios
include 支持include配置,主要用来加载用户的自定义模块
2.配置文件/etc/tsar/nagios.conf
#The IP address of the host running the NSCA daemon
server_addr mmdev4.corp.alimama.com
#The port on which the daemon is running - default is 5667
server_port 8086
#The cycle of send alert to nagios
cycle_time 300
#nsca client program
send_nsca_cmd /usr/bin/send_nsca
send_nsca_conf /home/a/conf/amon/send_nsca.conf #tsar mod alert config file
#threshold [hostname.]servicename.key;w-min;w-max;c-min;cmax;
threshold cpu.util;N;N;N;N;
threshold mem.util;N;N;N;N;
threshold load.load1;N;N;N;N;
threshold load.load5;N;N;N;N;
threshold load.load15;N;N;N;N;
threshold traffic.bytin;N;N;N;N;
threshold traffic.bytout;N;N;N;N;
threshold tcp.retran;N;N;N;N;
这个文件主要是nagios服务器的配置
cycle_time 指定上报的间隔时间,由于tsar每一分钟采集一次,上报时会判断是否符合时间间隔,如设置300的话,则在0,5等整点分钟会上报nagios
threshold 设置某个要报警项的阀值,前面是模块和要监控的具体名称,后面的四个数据代表报警的范围,warn和critical的范围
3./etc/tsar/conf.d/*
这个目录下是用户的自定义模块配置文件
配置基本在用户开发自定义模块时确定,主要包含模块的开启,输出类型和报警范围
淘宝开源系统监控工具Tsar的更多相关文章
- 淘宝内部大量使用的开源系统监控工具--Tsar
Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用 它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态 ...
- 淘宝开源项目之Tsar
软件介绍: Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用,它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务 ...
- 淘宝开源Key/Value结构数据存储系统Tair技术剖析
摘要: Tair的功能 Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应. Tair除了普通Key/Value系统提 ...
- 淘宝开源编辑器Kissy Editor和简易留言编辑器【转】
原来也写过一篇关于百度Ueditor编辑器的介绍:百度Ueditor编辑器的使用,ASP.NET也可上传图片 最开始是使用CuteEditor控件,需要好几mb的空间,因为刚开始学习ASP.NET的时 ...
- 系统监控工具 Tsar
Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx.swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信 ...
- 基于淘宝开源Tair分布式KV存储引擎的整合部署
一.前言 Tair支撑了淘宝几乎所有系统的缓存信息(Tair = Taobao Pair,Pair即Key-Value键值对),内置了三个存储引擎:mdb(默认,类似于Memcache).rdb(类似 ...
- 淘宝开源Web服务器Tengine安装教程
简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...
- facebook海量图片存储系统与淘宝TFS系统比较
本篇论文的原文可谓通俗易懂.行云流水.结构清晰.图文并茂……正如作者所说的——"替换Facebook的图片存储系统就像高速公路上给汽车换轮子,我们无法去追求完美的设计……我们花费了很多的注意 ...
- 淘宝开源Web服务器Tengine基本安装步骤
Tengine 是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量 网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...
随机推荐
- nginx 知识点
全部指令目录(淘宝翻译):http://tengine.taobao.org/nginx_docs/cn/docs/dirindex.html nginx 命令语法: nginx -s [signal ...
- vue 知识点
Vue 中的 slot: 概念:槽/slot是组件在模板中为调用者预留的位置,使用<slot>元素声明一个 槽.在最终的视图中,调用者模板中被调用组件的内容,将填充<slot> ...
- Jupyter和IPython
Jupyter内核就是IPython(Interactive Python):你看到的按tab键能够自动提示/补齐都是IPython实现的. IPython其实不只限于IPython,其实你看到的ID ...
- import和export语法报错
“最近在学习ES6”,但是在chrome中新建了js通过ES6语法(import,export)无法引入外部JS,报错: Uncaught SyntaxError:Unexpected token { ...
- bzoj2048 书堆
Description Input 第一行正整数 N M Output 一行(有换行符),L,表示水平延伸最远的整数距离 (不大于答案的最大整数) 贪心地把最高的书尽量向右放可以得到最优解,因而最高的 ...
- C#调用Excel宏
using System; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication1 { /// ...
- Hadoop2.0构成之YARN
YARN产生背景 Hadoop1.x中的MapReduce构成图如下: 在Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个Ta ...
- webpack(3)--Output
Output output配置如何输出最终想要的代码,output是一个object里面包含一系列配置. 1. filename output.filename配置输出文件的名称,为string类型, ...
- 使用for...of 优点,代替for...in,forEach和for循环
来自阮一峰ES6标准: http://es6.ruanyifeng.com/#docs/iterator
- Node.js 介绍及安装
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.本文详细介绍了No ...