linux性能监控命令—tsar命令

1、简介

tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。

tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带--live参数可以输出秒级的实时信息。tsar可以通过编写模块轻松扩展,这使得它成为一个功能强大且多功能的报告工具。

官方网址:http://tsar.taobao.org

github地址:https://github.com/alibaba/tsar

2、架构流程图

1.总体架构

tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。

框架程序源代码主要在src目录,而模块源代码主要在modules目录中。

框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出, 模块提供接口给框架调用。

tsar依赖于cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar --cron来定时采集信息,并且记录到原始日志文件。

2.tsar的运行流程图

主要执行流程有:

1.解析输入:根据用户的输入,初始化一些全局信息,如间隔时间,是否merge,是否指定模块,运行模式

2.读取配置文件信息:主要解析tsar的配置文件,如果include生效,则会解析include的配置文件,配置文件用来获得tsar需要加载的模块,输出方式,每一类输出方式包含的模块,和此输出方式的接收信息,如mod_cpu on代表采集cpu的信息,output_interface file,nagios表示向文件和nagios服务器发送采集信息和报警信息

3.加载相应模块:根据配置文件的模块开启关闭情况,将模块的动态库load到系统

4.tsar的三种运行模式:

    print模式,仅仅输出指定的模块信息,默认显示最近一天的

    live模式,是输出当前信息,可以精确到秒级

    cron模式,此一般是crontab定时执行,每一分钟采集一次所有配置的模块信息,并将数据写入原始文件,在cron运行的时候 会判断是否配置输出到db或者nagios,如果配置则将相应格式的数据输出到对应接口

5.释放资源:程序最后,释放动态库,程序结束

3、安装

1.使用git下载源码包
 [root@RedHat_test ~]# git clone git://github.com/kongjian/tsar.git
 [root@RedHat_test ~]# cd tsar/
 [root@RedHat_test tsar]# make
 [root@RedHat_test tsar]# make install
2.下载zip文件并安装
 [root@RedHat_test opt]# wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
 [root@RedHat_test opt]# unzip tsar.zip
 [root@RedHat_test opt]# cd tsar-master/
 [root@RedHat_test tsar-master]# make
 [root@RedHat_test tsar-master]# make install

4、目录文件说明

 /etc/tsar/tsar.conf,这是tsar的主要配置文件;
 /etc/cron.d/tsar,用于每分钟运行tsar收集信息;
 /etc/logrotate.d/tsar 将每个月轮询tsar的日志文件;
 /usr/local/tsar/modules 是所有模块库(* .so)所在的目录;
 /usr/local/man/man8/ 帮助文件

5、查看使用帮助

 [root@RedHat_test ~]# tsar -h
 Usage: tsar [options]
 Options:
    -check        查看最后一次的采集数据
    --check/-C     查看最后一次tsar的提醒信息,如:tsar --check/ tsar --check--cpu--io
    --cron/-c     使用crond模式来进行tsar监控
    --interval/-i 指明tsar的间隔时间,默认单位分钟,带上--live参数则单位是秒 
    --list/-L     列出启用的模块
    --live/-l     查看实时数据
    --file/-f     指定输入文件
    --ndays/-n     指定过去的数据天数,默认1天
    --date/-d     指定日期,YYYYMMDD或者n代表n天前
    --detail/-D   能够指定查看主要字段还是模块的所有字段
    --spec/-s     指定字段,tsar –cpu -ssys,util
 
 Modules Enabled:
    --cpu              列出cpu相关的监控计数
    --mem              物理内存的使用情况
    --swap            虚拟内存的使用情况
    --tcp              TCP 协议 IPV4的使用情况
    --udp              UDP 协议 IPV4的使用情况
    --traffic          网络传出的使用情况
    --io              Linux IO的情况
    --pcsw            进程和上下文切换
    --partition        磁盘使用情况
    --tcpx            TCP 连接相关的数据参数
    --load            系统负载情况

6、监控系统的cpu

 [root@RedHat_test ~]# tsar --cpu
 Time           -----------------------cpu----------------------
 Time             user     sys   wait   hirq   sirq   util   
 08/02/20-16:50   0.02    0.02    0.00    0.00    0.00    0.04   
 08/02/20-16:55   0.28    0.13    0.01    0.00    0.00    0.40   
 08/02/20-17:00   0.01    0.02    0.00    0.00    0.00    0.04   
 08/02/20-17:05   0.02    0.03    0.01    0.00    0.00    0.05   
 08/02/20-17:10   0.03    0.07    0.01    0.00    0.00    0.11   
 08/02/20-17:15   0.02    0.06    0.01    0.00    0.00    0.09   
 
 MAX              0.28    0.13    0.00    0.00    0.00    0.40   
 MEAN             0.07    0.06    0.01    0.00    0.00    0.14   
 MIN              0.02    0.02    0.00    0.00    0.00    0.04 
 ----------------------------------------------------------------------------------------
 user : 表示用户空间cpu
 sys : 内核空间cpu使用情况
 wait : 是IO对应的cpu使用情况
 hirq,sirq : 分别是硬件中断,软件中断的使用情况
 util : 是系统使用cpu的总计情况

7、监控虚存和load情况

 [root@RedHat_test ~]# tsar --swap --load
 Time           ---------------swap--------------------------------load-----------------
 Time           swpin swpout   total   util   load1   load5 load15   runq   plit   
 08/02/20-16:50   0.00    0.00    2.0G    0.00     0.00    0.01    0.05    0.00  128.00   
 08/02/20-16:55   0.00    0.00    2.0G    0.00     0.06    0.04    0.05    0.00  126.00   
 08/02/20-17:00   0.00    0.00    2.0G    0.00     0.01    0.03    0.05    1.00  129.00   
 08/02/20-17:05   0.00    0.00    2.0G    0.00     0.00    0.01    0.05    0.00  127.00   
 08/02/20-17:10   0.00    0.00    2.0G    0.00     0.00    0.01    0.05    5.00  130.00   
 08/02/20-17:15   0.00    0.00    2.0G    0.00     0.00    0.01    0.05    0.00  130.00   
 08/02/20-17:20   0.00    0.00    2.0G    0.00     0.00    0.01    0.05    0.00  130.00   
 
 MAX              0.00    0.00    2.0G    0.00     0.00    0.01    0.05    5.00  130.00   
 MEAN             0.00    0.00    2.0G    0.00     0.01    0.02    0.05    1.00  128.67   
 MIN              0.00    0.00    2.0G    0.00     0.00    0.01    0.05    0.00  126.00

8、监控内存使用情况

 [root@RedHat_test ~]# tsar --mem
 Time           -----------------------mem----------------------
 Time             free   used   buff   cach   total   util   
 08/02/20-16:50  15.0G  258.8M    2.1M  268.6M   15.5G    1.63   
 08/02/20-16:55  15.0G  257.8M    2.1M  269.5M   15.5G    1.62   
 08/02/20-17:00  15.0G  260.6M    2.1M  269.6M   15.5G    1.64   
 08/02/20-17:05  15.0G  257.6M    2.1M  269.5M   15.5G    1.62   
 08/02/20-17:10  15.0G  259.3M    2.1M  269.6M   15.5G    1.63   
 08/02/20-17:15  15.0G  262.0M    2.1M  269.6M   15.5G    1.65   
 08/02/20-17:20  15.0G  262.2M    2.1M  269.6M   15.5G    1.65   
 
 MAX             15.0G  262.2M    2.1M  269.6M   15.5G    1.63   
 MEAN            15.0G  259.9M    2.1M  269.6M   15.5G    1.64   
 MIN             15.0G  257.6M    2.1M  268.6M   15.5G    1.63 

9、监控系统IO情况

 [root@RedHat_test ~]# tsar --io
 Time           ------------------------------------------sda------------------------------------------- 
 Time           rrqms   wrqms     rs     ws   rsecs   wsecs rqsize qusize   await   svctm   util    
 08/02/20-21:25   0.28    3.4K  184.40  389.25    4.9K   15.0K   35.47    3.00    6.35    0.29   16.44   
 08/02/20-21:30   0.00    3.2K  109.71  382.74    2.5K   14.5K   35.27    3.00    7.33    0.30   14.68   
 08/02/20-21:35   0.15    3.1K  156.91  342.16    3.8K   13.8K   36.15    3.00    6.60    0.29   14.37   
 08/02/20-21:40   0.86    3.3K  234.00  371.43    6.9K   14.6K   36.43    3.00    5.93    0.28   16.83   
 08/02/20-21:45   0.72    3.4K  376.80  357.13   11.7K   14.8K   37.03    3.00    4.84    0.25   18.50   

10、监控网络统计

 [root@RedHat_test ~]# tsar --traffic
 Time           ---------------------traffic--------------------
 Time           bytin bytout   pktin pktout pkterr pktdrp   
 08/02/20-16:50  50.00   93.00    0.00    0.00    0.00    0.00   
 08/02/20-16:55  67.00   77.00    0.00    0.00    0.00    0.00   
 08/02/20-17:00   9.00    3.00    0.00    0.00    0.00    0.00   
 08/02/20-17:05  11.00    7.00    0.00    0.00    0.00    0.00   
 08/02/20-17:10 341.00   41.00    0.00    0.00    0.00    0.00   
 08/02/20-17:15  36.00   35.00    0.00    0.00    0.00    0.00   
 08/02/20-17:20  12.00    9.00    0.00    0.00    0.00    0.00   
 
 MAX            341.00   93.00    0.00    0.00    0.00    0.00   
 MEAN            79.33   28.67    0.00    0.00    0.00    0.00   
 MIN              9.00    3.00    0.00    0.00    0.00    0.00 
 [root@RedHat_test ~]# tsar --tcp --udp -d 1
 Time           -------------------------------tcp---------------------------------------------udp--------------
 Time           active pasive   iseg outseg EstRes AtmpFa CurrEs retran     idgm   odgm noport idmerr   
 08/02/20-00:05   0.79    1.52    1.6K    2.1K    0.00    0.03    3.4K    0.02     0.00    2.00    0.00    0.00   
 08/02/20-00:10   0.73    1.40  884.25  921.56    0.00    0.03    3.4K    0.01     0.00    3.00    0.00    0.00   
 08/02/20-00:15   0.77    1.46  959.62    1.0K    0.00    0.03    3.4K    0.01     0.00    3.00    0.00    0.00   
 08/02/20-00:20   0.69    1.43    1.0K    1.0K    0.00    0.03    3.4K    0.01     0.00    3.00    0.00    0.00   
 08/02/20-00:25   0.72    1.42    1.2K    1.1K    0.00    0.03    3.4K    0.00     0.00    3.00    0.00    0.00

11、监控告警信息

 # 查看最后一次tsar的提醒信息,这里包括了系统的cpu,io的告警情况
 [root@RedHat_test ~]# tsar --check --cpu --io
 RedHat_test       tsar   cpu:user=25.0 cpu:sys=2.1 cpu:wait=0.1 cpu:hirq=0.0 cpu:sirq=0.2 cpu:util=27.4 io:sda:rrqms=0.0 io:sda:wrqms=4172.4 io:sda:rs=80.3 io:sda:ws=493.0 io:sda:rsecs=1664.0 io:sda:wsecs=18661.7 io:sda:rqsize=35.5 io:sda:qusize=4.0 io:sda:await=7.7 io:sda:svctm=0.3 io:sda:util=18.5 

12、指定日期

 [root@RedHat_test ~]# tsar --load -d 20200208
 Time           -------------------load-----------------
 Time           load1   load5 load15   runq   plit   
 08/02/20-16:50   0.00    0.01    0.05    0.00  128.00   
 08/02/20-16:55   0.06    0.04    0.05    0.00  126.00   
 08/02/20-17:00   0.01    0.03    0.05    1.00  129.00   
 08/02/20-17:05   0.00    0.01    0.05    0.00  127.00   
 08/02/20-17:10   0.00    0.01    0.05    5.00  130.00   
 08/02/20-17:15   0.00    0.01    0.05    0.00  130.00   
 08/02/20-17:20   0.00    0.01    0.05    0.00  130.00   
 08/02/20-17:25   0.00    0.01    0.05    0.00  129.00   
 08/02/20-17:30   0.00    0.01    0.05    0.00  128.00   
 08/02/20-17:35   0.00    0.01    0.05    0.00  125.00   
 
 MAX              0.00    0.01    0.05    5.00  130.00   
 MEAN             0.01    0.02    0.05    0.67  128.22   
 MIN              0.00    0.01    0.05    0.00  125.00 

13、历史数据回溯

 # 通过参数-d 2 可以查出两天前到现在的数据,-i 1 表示以每次1分钟作为采集显示
 [root@RedHat_test ~]# tsar -d 2 -i 1
 Time           ---cpu-----mem-----tcp-------traffic------sda--- ---load-
 Time             util     util   retran   bytin bytout     util     load1   
 08/02/20-00:02 ------   71.40     0.03   754.2K  421.4K    14.38     1.59   
 08/02/20-00:03  34.55    71.41     0.01   773.7K  400.9K    13.39     1.42   
 08/02/20-00:04  31.80    71.41     0.03   708.6K  391.9K    12.88     1.54   
 08/02/20-00:05  28.70    71.40     0.00   544.5K  305.9K    11.32     1.68   
 08/02/20-00:06  25.83    71.41     0.02   521.1K  280.4K    13.32     1.48   
 08/02/20-00:07  25.68    71.42     0.00   495.0K  265.2K    12.08     1.21   
 08/02/20-00:08  30.89    71.41     0.01   811.0K  280.1K    14.92     0.92   
 08/02/20-00:09  23.83    71.41     0.03   636.7K  349.4K    11.81     1.47 

14、查看fstab指定挂载的系统目录的使用情况 ,-I 指定查看某个目录

 [root@RedHat_test ~]# tsar --partition -I /u01
 Time           --------------/u01-------------- 
 Time           bfree   bused   btotl   util 
 08/02/20-15:20   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:25   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:30   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:35   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:40   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:45   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:50   1.9T    1.7T    3.8T   47.29 
 08/02/20-15:55   1.9T    1.7T    3.8T   47.29 
 08/02/20-16:00   1.9T    1.7T    3.8T   47.29 
 08/02/20-16:05   1.9T    1.7T    3.8T   47.29 

如果文章有任何错误欢迎不吝赐教,其次大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。群主还经营一家猫小铺饰品店,喜欢的小伙伴欢迎????前来下单。

扫描二维码

获取更多精彩

运维猫公众号

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

扫描二维码

添加私人微信

运维猫博主

扫码加微信

最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。

点击阅读原文  查看更多精彩内容!!!

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值