贝隆

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Tsar是阿里巴巴开源的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、haproxy等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报警。Tsar能够比较方便的增加模块,只需要按照tsar的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到tsar中

安装

Tsar目前托管在github上,下载编译安装步骤:

$git clone git://github.com/alibaba/tsar.git    
$cd tsar    
$make

安装后的重要文件和目录有:

  • 定时任务配置:`/etc/cron.d/tsar`,负责每分钟调用tsar执行采集任务;
  • 日志文件轮转配置:`/etc/logrotate.d/tsar`,每个月会把tsar的本地存储进行轮转;
  • Tsar配置文件路径:`/etc/tsar/tsar.conf`,tsar的采集模块和输出的具体配置;
  • 模块路径:`/usr/local/tsar/modules`,各个模块的动态库so文件;

配置

Tsar刚安装完,还没有历史数据,想要check是否正常,执行tsar -l,查看是否有实时信息输出:

# tsar -l -i 1 --cpu
Time              -----------------------cpu----------------------
Time                user     sys    wait    hirq    sirq    util
03/04/19-12:23:13   2.44    1.31    0.00    0.00    0.00    4.00
03/04/19-12:23:14   1.16    0.59    0.00    0.00    0.00    1.94
03/04/19-12:23:15   0.53    0.56    0.00    0.00    0.00    1.09
03/04/19-12:23:16   3.88    2.12    0.00    0.00    0.00    6.00

1、主配置文件,/etc/tsar/tsar.conf,包含模块的启停情况,存储位置等

  • 增加一个模块,添加 "mod_<yourmodname> on" 到配置文件中
  • 打开或者关闭一个模块,修改 "mod_<yourmodname> on/off"
  • ”output_stdio_mod“ 能够配置执行tsar时的输出模块
  • ”output_file_path“ 采集到的数据默认保存到的文件(如果修改的话需要对应修改轮转的配置“/etc/logrotate.d/tsar”)

2、采集结果,/var/log/tsar.data,可以在主配置文件里面修改

3、定时任务调用,/etc/cron.d/tsar,让系统每分钟调用tsar

4、文件轮转配置,/etc/logrotate.d/tsar,默认存储10年,保留120份

Tsar常用命令

Options:
    -check         display last record for alert
    --check/-C     display last record for alert.example:tsar --check / tsar --check --cpu --io
    --watch/-w     display last records in N mimutes. example:tsar --watch 30 / tsar --watch 30 --cpu --io
    --cron/-c      run in cron mode, output data to file
    --interval/-i  specify intervals numbers, in minutes if with --live, it is in seconds
    --list/-L      list enabled modules
    --live/-l      running print live mode, which module will print
    --file/-f      specify a filepath as input
    --ndays/-n     show the value for the past days (default: 1)
    --date/-d      show the value for the specify day(n or YYYYMMDD)
    --merge/-m     merge multiply item to one
    --detail/-D    do not conver data to K/M/G
    --spec/-s      show spec field data, tsar --cpu -s sys,util
    --item/-I      show spec item data, tsar --io -I sda
    --help/-h      help
  • tsar,输出最近一天的主要模块数据, 默认5分钟间隔,查看一分钟需要指定-i 1
$tsar|more
Time           ---cpu-- ---mem-- ---tcp-- -----traffic---- --sda---  ---load-
Time             util     util   retran    bytin  bytout     util     load1
22/07/18-12:10   9.13     9.26     0.06     9.5M    6.5M     0.73     0.40
22/07/18-12:15   9.30     9.28     0.07     9.5M    6.4M     0.73     1.00
22/07/18-12:20   8.79     9.23     0.06     8.7M    6.5M     0.72     0.63
……
MAX             12.68    37.70     0.60    10.9M    7.6M     0.97     3.30
MEAN             9.18    14.68     0.14     8.5M    5.8M     0.67     0.86
MIN              5.76     7.69     0.06     5.1M    3.2M     0.46     0.28
  • tsar -l -i 1 --cpu,每隔1s采集一次cpu的信息并输出到终端
$tsar -l -i 1 --cpu
Time              -----------------------cpu----------------------
Time                user     sys    wait    hirq    sirq    util
31/05/18-10:35:30   0.50    0.16    0.00    0.00    0.00    0.66
31/05/18-10:35:31   0.25    0.03    0.00    0.00    0.00    0.28
  • tsar --check --cpu,查看cpu最近一分钟的监控数据
$tsar --check --cpu
cdn-logging1.et2  tsar  cpu:user=1.2 cpu:sys=0.1 cpu:wait=0.0 cpu:hirq=0.0 cpu:sirq=0.0 cpu:util=1.3
  • tsar -D --traffic,查看详细的数据,不做KMG转化
$tsar --traffic -D|more
Time           ---------------------traffic--------------------
Time            bytin  bytout   pktin  pktout  pkterr  pktdrp
30/05/18-10:40 8490769.00  6131262.00  7026.00  5328.00    0.00    0.00
30/05/18-10:45 8743606.00  5856453.00  7147.00  5174.00    0.00    0.00
30/05/18-10:50 7334951.00  5812603.00  6135.00  5002.00    0.00    0.00
30/05/18-10:55 8329520.00  6063059.00  6907.00  5277.00    0.00    0.00
  • tsar -n 1,查看1天前的数据
  • tsar -d 20180528,查看具体日期的数据
  • tsar --cpu -s util,查看cpu模块的util字段数据
$tsar --cpu -s util|more
Time           ---cpu--
Time             util
30/05/18-10:45   7.91
30/05/18-10:50   6.96
30/05/18-10:55   7.68
30/05/18-11:00   7.67
  • tsar -w 10,查看过去10分钟的tsar数据
$ tsar -w 10
Time           ---cpu-- ---mem-- ---tcp-- -----traffic---- --sda---  ---load-
Time             util     util   retran    bytin  bytout     util     load1
23/07/18-11:55   9.76     8.97     0.05     9.8M    6.8M     0.92     1.09
23/07/18-12:00   8.42     8.70     0.06     8.6M    6.0M     0.66     0.60

MAX              9.76     8.97     0.05     9.8M    6.8M     0.92     1.09
MEAN             8.42     8.70     0.06     8.6M    6.0M     0.66     0.60
MIN              8.42     8.70     0.05     8.6M    6.0M     0.66     0.60

问题排查顺序

1、检测tsar是否安装

#rpm -qi tsar
Name        : tsar
Version     : 2.1.1
Release     : 1.67f573c.alios7
Architecture: x86_64
Install Date: Fri 14 Apr 2017 11:51:20 PM CST
……

2、检测定时任务是否ok,cron进程是否存在

#ps aux|grep cron
root       4199  0.0  0.0 126368  1780 ?        Ss    2018   0:30 /usr/sbin/crond -n -m/dev/null

确认cron是否能够正常触发tsar运行(也可以去/var/log/tsar.data中查看是否有那一分钟具体的采集数据)

$sudo cat /var/log/cron|grep tsar|more
Jan 14 03:07:06 aserver-heyi-cdyd-2.cn2416 CROND[92723]: (root) CMD (/usr/bin/tsar --cron > /dev/null 2>&1)
Jan 14 03:08:01 aserver-heyi-cdyd-2.cn2416 CROND[93103]: (root) CMD (/usr/bin/tsar --cron > /dev/null 2>&1)

3、检查配置文件是否正常,如cpu模块是否开启

$cat /etc/tsar/tsar.conf|grep cpu
mod_cpu on
……

4、检查采集数据是否更新,确认文件更新时间是否为最新确认cron是否能够正常触发tsar运行

$ls -lrt /var/log/tsar.data
-rw-r--r-- 1 root root 21998511 Jan 16 13:44 /var/log/tsar.data

5、检查实时采集是否OK

[kongjian@host /home/kongjian]
$tsar --cpu -l -i 1
Time              -----------------------cpu----------------------
Time                user     sys    wait    hirq    sirq    util
16/01/19-18:28:51   1.13    0.25    0.00    0.00    0.00    1.38
16/01/19-18:28:52   1.21    0.21    0.00    0.00    0.00    1.42

 

tsar主页

Github库

alibaba/tsar​github.com

 

posted on 2020-03-01 10:17  贝隆  阅读(611)  评论(0编辑  收藏  举报