淘宝内部大量使用的开源系统监控工具--Tsar

时间:2023-02-03 09:34:10

Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用

   它不仅可以监控CPU、IO、内存、TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态
   值得一提的是、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

  1. Time        ---cpu-- ---mem-- ---tcp-- -----traffic---- --hda---  ---load-
  2. Time          util     util   retran    pktin  pktout     util     load1
  3. 14/04-13:05   98.0     14.9      0.0      2.0     0.0     32.8      0.4
  4. 14/04-13:05   85.1     14.6      0.0      2.0     0.0     15.6      0.4
  5. 14/04-13:05    0.0     14.6      0.0     10.0     2.0      0.0      0.4
  6. 14/04-13:05    4.0     14.6      0.0      2.0     0.0      1.6      0.4
  7. 14/04-13:05    5.0     14.6      0.0      2.0     0.0      0.4      0.3
  8. 14/04-13:05    7.0     14.6      0.0      0.0     0.0      0.8      0.3
  9. 14/04-13:05    2.0     14.6      0.0      0.0     0.0      0.0      0.3
  10. 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的运行流程图如下:

淘宝内部大量使用的开源系统监控工具--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的更多相关文章

  1. 淘宝开源系统监控工具Tsar

    Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用    它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态 ...

  2. 淘宝内部分享:MySQL & MariaDB性能优化

    发表于2015-01-20 16:26| 28875次阅读| 来源mysql.taobao.org| 22 条评论| 作者淘宝数据库团队 MySQL性能优化淘宝数据库 摘要:MySQL是目前使用最多的 ...

  3. 淘宝内部分享:怎么跳出MySQL的10个大坑

    编者按:淘宝自从2010开始规模使用MySQL,替换了之前商品.交易.用户等原基于IOE方案的核心数据库,目前已部署数千台规模.同时和Oracle, Percona, Mariadb等上游厂商有良好合 ...

  4. 系统监控工具 Tsar

    Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx.swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信 ...

  5. 淘宝内部分享:MySQL & MariaDB性能优化 【转】

    MySQL· 5.7优化·Metadata Lock子系统的优化 背景 引入MDL锁的目的,最初是为了解决著名的bug#989,在MySQL 5.1及之前的版本,事务执行过程中并不维护涉及到的所有表的 ...

  6. OSGi在淘宝内部的使用

    现在基本不怎么用了,OSGi主要的价值,在实际中体现得不太明显 比如类隔离,用更简单的自定义ClassLoader也可以实现:单机多版本服务,用的场景也很少:热部署也不是很实用 但是,基于OSGi框架 ...

  7. [转载] 淘宝内部分享:怎么跳出MySQL的10个大坑(上)

    原文: http://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=209773318&idx=1&sn=e9600d3db80b ...

  8. 开源系统监控工具Nagios、Zabbix和Open-Falcon的功能特性汇总及优缺点比较

    Nagios Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强 ...

  9. 淘宝开源Key/Value结构数据存储系统Tair技术剖析

    摘要: Tair的功能 Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应. Tair除了普通Key/Value系统提 ...

随机推荐

  1. .Net Globalization and Localization

    随着互联网的发展日益壮大和活跃,网上购物交易越来越频繁,一个网站支持多种语言在所难免,所以国际化和本地化在现在的网站中的作用越来越大,一个网站的使用量和搜索量有可能受国际化的影响一点.所以在当今做一个 ...

  2. 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)

    这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...

  3. visual studio 2005 常用按键

    VS2005 实用快捷键,迅速提高代码编写效率! 代码快捷键   Ctrl+J / Ctrl+K,L   列出成员   Ctrl+Shift+空格键 / Ctrl+K,P   参数信息   Ctrl+ ...

  4. php5.3 fastcgi方式 安装以及和nginx整合

    注意:不要随便改变基础库的版本,否则会对别的软件产生编译错误 1.基础依赖包安装: cd /software/zlib- ./configure make make install cd /softw ...

  5. [vijos P1034] 家族

    寒假给自己定的第一个目标就是把并查集,Tarjan之类搞会.翻了翻笔记,发现并查集是2012年的6月30日学的…早就忘光了…今天敲题目的时候也吃了不少的亏呢… 家族这一题就是并查集的标准题,第一次提交 ...

  6. URAL 1081

    题目大意:求词典序下第K个长度为N且无相邻位置都为1的0.1序列.无解时输出-1. 例如: input:     output: 3 1        000(所有符合条件的序列有:000,001,0 ...

  7. React Native入门教程2 -- 基本组件使用及样式

    在上一篇文章中,我们学会了如何搭建React Native的环境(React Native入门教程(笔记) 1 – 开发环境搭建),不知道你们是否搭建好了呢,如果还没有,那么快动起小手,来体验RN带给 ...

  8. centos7虚拟机(vmware)通过U盘传文件

    centos7虚拟机(vmware)通过U盘传文件 centos7虚拟机安装以后,WINDOWS给CENTOS7传文件,除了在CENTOS7安装SAMBA外,其实通过U盘也是可以的. CENTOS7对 ...

  9. Python Pycharm连接Ubantu Python环境

    由于我习惯在window下开发,但是代码环境布局在Ubantu.使用Python,为了方便程序的调试,尝试在Windows下的Pycharm远程连接到Ubantu虚拟机下的Python环境. 1.准备 ...

  10. Oracle彻底卸载

    Oracle彻底卸载 卸载:oracle卸载1.删除注册表:打开注册表:regedit 打开路径: <找注册表 :开始->运行->regedit> HKEY_LOCAL_MAC ...