淘宝系统活动监控工具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与我联系

相关文章
|
Web App开发 开发者
Mac Chrome crx(插件) 文件导出与导入
Mac Chrome crx(插件) 文件导出与导入
724 0
|
运维 Kubernetes 安全
云原生安全 — seccomp应用最佳实践
近期针对Linux内核的CVE漏洞频出,CVE-2022-0185、CVE-2022-0185、CVE-2022-0847是威胁评分较高且热度较高的几个典型漏洞,相关的POC/EXP利用代码也已经在互联网上公开披露。对于容器场景来说,攻击者的攻击路径也比较相似,都是利用unshare等高危系统调用在新的usernamespace拿到CAP_SYS_ADMIN等高权限capabilities后利用漏
2875 0
云原生安全 — seccomp应用最佳实践
|
弹性计算 运维 搜索推荐
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考
随着数字化转型的浪潮不断推进,越来越多的企业和公司开始将业务迁移到云端,而搭建一个专业、高效的企业官网成为了上云的第一步。企业官网不仅是展示公司形象、产品和服务的重要窗口,更是与客户沟通、传递价值的关键渠道。随着阿里云服务器和建站产品的知名度越来越高,越来越多的用户选择阿里云的产品来搭建自己的官网。本文将深入探讨在阿里云平台上,如何选择最适合自己的建站方案:云服务器建站、云·速成美站还是云·企业官网。
482 14
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考
|
弹性计算 小程序 Android开发
使用无影云电脑玩《黑神话·悟空》游戏教程,无需下载,开机即玩!
本教程详细介绍如何利用阿里云无影云电脑轻松畅玩《黑神话·悟空》游戏,无需下载游戏客户端,开机即可体验。首先需下载无影客户端并购买个人铂金款云电脑(14.9元首月)。购买后,通过输入WeGame版或Steam版镜像分享码并选择电竞模式来配置云电脑。最后,在云电脑中启动WeGame客户端并登录账户,手动添加游戏路径后即可游玩。注意游戏需单独购买,并记得游玩后关闭云电脑以避免额外计费。更多详情与步骤请参阅阿里云官方指南。
|
SQL 存储 关系型数据库
MySQL主从同步延迟原因与解决方法
MySQL主从同步延迟原因与解决方法
1335 0
|
XML 数据可视化 程序员
Qt 中的项目文件解析和命名规范
Qt 中的项目文件解析和命名规范
|
弹性计算 运维 数据处理
资源编排ROS之模块:实现模板代码复用(进阶篇)
资源编排ROS模块能够实现模板代码复用。支持输入输出、公共模块、版本管理、共享模块等功能。在使用场景上,除了对基础设施模块化外,还可作为配置、数据处理工具或资源包装器。
|
存储 监控 网络协议
Linux:系统性能监控工具-tsar安装和使用
Linux:系统性能监控工具-tsar安装和使用
2924 0
Linux:系统性能监控工具-tsar安装和使用
|
存储 SQL 缓存
|
机器学习/深度学习 人工智能 编解码
双芯片四芯粒互联,寒武纪发布AI训练卡MLU370-X8:性能超越RTX
双芯片四芯粒互联,寒武纪发布AI训练卡MLU370-X8:性能超越RTX
1171 0
双芯片四芯粒互联,寒武纪发布AI训练卡MLU370-X8:性能超越RTX