淘宝系统活动监控工具Tsar

简介: Tsar(淘宝系统活动报告器)是一个监控工具,可以用来收集和汇总系统信息,例如CPU、负载、IO,以及应用程序信息,例如nginx、HAProxy、Squid等,结果可以存储在本地磁盘或发送到 Nagios。

介绍

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

Tsar 可以通过编写模块轻松扩展,这使其成为功能强大且用途广泛的报告工具。

模块介绍:信息

安装

Tsar 在 GitHub 上可用,您可以按如下方式克隆和安装它:

$ git clone https://github.com/alibaba/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, 这是 tsar 的主要配置文件;
  • /etc/cron.d/tsar, 用于每分钟运行 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

通常,我们通过简单的编辑来配置 Tsar /etc/tsar/tsar.conf

  • 要添加模块,请添加如下一行 mod_<yourmodname> on
  • 要启用或禁用模块,请使用 mod_<yourmodname> on/off
  • 要为模块指定参数,请使用 mod_<yourmodname> on parameter
  • output_stdio_mod 是将模块输出设置为标准 I/O
  • output_file_path是设置历史数据文件,(你也应该修改logrotate脚本/etc/logrotate.d/tsar
  • output_interface指定 tsar 数据输出目的地,默认为本地文件。有关更多信息,请参阅高级部分。

用法

  • null :查看默认模组历史数据, tsar
  • --modname :指定要显示的模块, tsar --cpu
  • -L/--list : 列出可用模块, tsar -L
  • -l/--live : 显示实时信息, tsar -l --cpu
  • -i/--interval : 设置报告间隔, tsar -i 1 --cpu
  • -s/--spec :指定模块详细信息字段, tsar --cpu -s sys,util
  • -D/--detail : 不要将数据转换为 K/M/G, tsar --mem -D
  • -m/--merge : 合并乘以一, tsar --io -m
  • -I/--item :显示规格项目数据, tsar --io -I sda
  • -d/--date : 指定数据,YYYYMMDD,或者 n 表示 n 天前
  • -C/--check : 显示最后收集的数据
  • -h/--help :显示帮助, 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

由于 tsar 使用 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在 tsar 的配置文件中添加输出类型。

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

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

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

output_db_addr console2:56677

Tsar2db 接收 sql 数据并将其刷新到 MySQL。您可以在https://github.com/alibaba/tsar2db 上找到有关 tsar2db 的更多信息。

模块开发

沙皇很容易扩展。每当您想要 tsar 尚未收集的信息时,您可以使用C或编写模块Lua

C 模块

首先,安装 tsardevel 工具(make tsardevel将为您执行此操作):

然后运行tsardevel <yourmodname>,你会得到一个名为 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 模块

首先,安装 tsarluadevel 工具(make tsarluadevel将为您执行此操作):

然后运行tsarluadevel <yourmodname>,你会得到一个名为 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 中的 register()、read() 和 set() 函数。然后运行make install以安装您的模块并运行tsar --lua_yourmodname以查看输出。

更多的

主页http://tsar.taobao.org

有任何问题,请随时通过kongjian@taobao.com与我联系

相关文章
|
运维 监控 数据可视化
ELK日志监控分析系统的探索与实践(二):利用Metricbeat监控服务器系统指标
在ELK日志监控分析系统的探索与实践(一)中,我们介绍了如何利用ELK+Filebeat监控Springboot项目的日志,本篇则是重点介绍如何利用ELk+Metricbeat监控服务器系统CPU、内存、磁盘等系统指标。
ELK日志监控分析系统的探索与实践(二):利用Metricbeat监控服务器系统指标
|
存储 监控 数据库
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (下)
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (下)
166 0
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (下)
|
存储 监控 数据库
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (中)
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (中)
225 0
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (中)
|
存储 监控 数据可视化
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (上)
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (上)
355 0
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 (上)
|
监控 网络协议 Linux
linux 淘宝开源监控工具tsar
Linux系统性能监控工具:tsar 安装、配置、以及使用 介绍 tsar 是淘宝自己开发的一个监控工具,可用于收集和汇总系统信息,例如CPU,负载,IO和应用程序信息,例如nginx,HAProxy,Squid等。
2430 0
|
Web App开发 监控 Linux
|
监控 Java 应用服务中间件
Dockerfile配置APM监控实现Java容器的性能监控
通过Dockerfile可以用来构建容器镜像,我们一般也是通过这种方式来构建一个Tomcat应用服务容器,如果要实现对容器中的Tomcat服务(或是其他Java应用)进行APM(应用性能管理)监控,就需要我们在容器中放置javaagent并做相关配置,而在已生成的容器中修改配置不符合容器管理的规范,所以我们建议在发布镜像时就将javaagent植入,这样在生成容器时就可以通过环境变量参数来决定是否开启监控。
1626 0