淘宝系统活动监控工具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(插件) 文件导出与导入
1203 0
|
5月前
|
Web App开发 移动开发 前端开发
H5页面在折叠屏上适配
H5页面在折叠屏上适配
240 1
|
2月前
|
运维 Java Serverless
Serverless 架构模式深度解析
Serverless并非“无服务器”,而是开发者无需管理服务器,专注业务逻辑。具备按需付费、弹性伸缩、事件驱动等优势,适用于突发流量、定时任务等场景,结合FaaS与BaaS可构建高效应用,是云原生发展的重要方向。
370 1
|
6月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
基于YOLOv8的粉尘污染检测识别|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
随着工业化的快速发展,粉尘污染成为了环境监测和工业安全中必须关注的问题。传统的粉尘检测方法往往依赖人工采样和实验室分析,周期长、成本高。基于计算机视觉的自动化粉尘检测系统能够实时、准确地监控环境,从而极大提高安全和管理效率。本项目基于最新的YOLOv8算法,实现了粉尘污染检测与识别,并提供完整源码、数据集和可视化界面,实现开箱即用。
基于YOLOv8的粉尘污染检测识别|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
5月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
408 1
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
716 1
KVM虚拟机的热迁移
|
弹性计算 运维 搜索推荐
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考
随着数字化转型的浪潮不断推进,越来越多的企业和公司开始将业务迁移到云端,而搭建一个专业、高效的企业官网成为了上云的第一步。企业官网不仅是展示公司形象、产品和服务的重要窗口,更是与客户沟通、传递价值的关键渠道。随着阿里云服务器和建站产品的知名度越来越高,越来越多的用户选择阿里云的产品来搭建自己的官网。本文将深入探讨在阿里云平台上,如何选择最适合自己的建站方案:云服务器建站、云·速成美站还是云·企业官网。
731 14
阿里云建站方案参考:云服务器、速成美站、企业官网区别及选择参考