tsar命令

tsar
收集服务器系统和应用信息的采集报告工具

介绍

淘宝系统活动报告(TabaoSystemActivityReporter)是一种监控工具,它可以用来收集和总结系统信息,如CPU、负载、IO和应用程序信息,如nginx、HAProxy、Squid等,结果可以存储在本地磁盘上,也可以发送到Nagios。

沙皇可以很容易地通过编写模块来扩展,这使得它成为一个强大而通用的报告工具。
总体架构

Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。
框架程序源代码主要在src目录,而模块源代码主要在modules目录中。
框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。
tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar –cron来定时采集信息,并且记录到原始日志文件。

安装

在GitHub上可以使用沙皇,您可以按以下方式克隆和安装它:

$ git clone git://github.com/kongjian/tsar.git
$ cd tsar
$ make
# make install

或者您可以下载zip文件并安装它:

$ wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
$ unzip tsar.zip
$ cd tsar
$ make
# make install

安装后,您可能会看到以下文件:

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

默认情况下,安装后没有显示输出。快跑tsar -l要查看实时监视是否有效,例如:

[kongjian@tsar]$ tsar -l -i 1
Time              ---cpu-- ---mem-- ---tcp-- -----traffic---- --xvda-- -xvda1-- -xvda2-- -xvda3-- -xvda4-- -xvda5--  ---load-
Time                util     util   retran    pktin  pktout     util     util     util     util     util     util     load1
11/04/13-14:09:10   0.20    11.57     0.00     9.00    2.00     0.00     0.00     0.00     0.00     0.00     0.00      0.00
11/04/13-14:09:11   0.20    11.57     0.00     4.00    2.00     0.00     0.00     0.00     0.00     0.00     0.00      0.00

通常,我们通过简单的编辑来配置沙皇。/etc/tsar/tsar.conf:

若要添加模块,请添加如下所示的行mod_ on
若要启用或禁用模块,请使用mod_ on/off
若要指定模块的参数,请使用mod_ on parameter
output_stdio_mod是将输出的模块设置为标准I/O。
output_file_path是设置历史数据文件,(您应该修改log旋转式脚本)。/etc/logrotate.d/tsar)
output_interface指定沙皇数据输出目的地(默认情况下是本地文件)。有关更多信息,请参见高级部分

使用

NULL:参见默认MODS历史数据,tsar
-modname:指定要显示的模块,tsar --cpu
-L/-名单:现有名单,tsar -L
-我/--现场直播:显示实时信息,tsar -l --cpu
-I/-间隔:确定报告间隔,tsar -i 1 --cpu
-s/-spec:指定模块详细信息字段,tsar --cpu -s sys,util
-D/-细节:不要将数据交予K/M/G,tsar --mem -D
-m/-合并:合并乘项为1,tsar --io -m
-I/-项目:显示规格项目数据,tsar --io -I sda
-d/-日期:指定数据,YYYYMMDD或n表示n天前
-C/--检查:显示上次收集的数据
-h/-帮助:显示帮助,tsar -h

高级部分

输出到Nagios
要打开它,只需设置输出类型output_interface file,nagios在主配置文件中。

您还应该指定Nagios的IP地址、端口和发送间隔,例如:

####The IP address or the hostname running the NSCA daemon
server_addr nagios.server.com
####The port on which the daemon is listening - by default it is 5667
server_port 8086
####The cycle (interval) of sending alerts to Nagios
cycle_time 300

由于沙皇使用Nagios的被动模式,因此您应该指定NSCA二进制文件及其配置文件,例如:

####nsca client program
send_nsca_cmd /usr/bin/send_nsca
send_nsca_conf /home/a/conf/amon/send_nsca.conf

然后指定要检查的模块和字段。有4个阈值。

####tsar mod alert config file
####threshold servicename.key;w-min;w-max;c-min;cmax;
threshold cpu.util;50;60;70;80;

输出到MySQL
若要使用此功能,只需添加输出类型output_interface file,db沙皇的配置文件。

然后指定将启用哪个模块:

output_db_mod mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udpmod_io

请注意,您应该设置tar2db侦听的IP地址(或主机名)和端口,例如:

output_db_addr console2:56677

Tsar2db接收SQL数据并将其刷新到MySQL。您可以在https://github.com/alibaba/tsar2db.

模块开发

沙皇很容易扩展。当您需要沙皇尚未收集的信息时,您可以用C或Lua.

C模块

首先,安装tsardevel工具(make tsardevel会为你这样做的):

那就跑tsardevel ,您将得到一个名为Yourmodname的目录,例如:

[kongjian@tsar]$ tsardevel test
build:make
install:make install
uninstall:make uninstall

[kongjian@tsar]$ ls test
Makefile  mod_test.c  mod_test.conf

您可以根据需要修改mod_test.c中的read_test_stats()和set_test_Record()函数。那就跑make;make install安装模块并运行tsar --yourmodname以查看输出。

Lua模块

首先,安装Tarluadevel工具(make tsarluadevel会为你这样做的):

那就跑tsarluadevel ,您将得到一个名为Yourmodname的目录,例如:

[kongjian@tsar]$ tsarluadevel test
install:make install
uninstall:make uninstall
test:tsar --list or tsar --lua_test --live -i 1

[kongjian@tsar]$ ls test
Makefile  mod_lua_test.conf  mod_lua_test.lua

您可以根据需要在mod_lua_test.lua中修改、()、read()和set()函数。那就跑make install安装模块并运行tsar --lua_yourmodname以查看输出。

参考链接
https://github.com/alibaba/tsar
https://tool.lu/software/detail/1t.html
链接:https://www.jianshu.com/p/5562854ed901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值