Linux:系统性能监控工具-tsar安装和使用

简介: Linux:系统性能监控工具-tsar安装和使用

前言

做性能验证往往需要去监控系统的各项性能指标,Linux系统监控工具有很多,但对于命令行操作,安装便捷,监控项较全面等方面,个人比较推荐tsar

tsar

介绍

TSAR(Taobao System Activity Reporter))是淘宝自己开发的采集工具。

主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。Tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带–live参数可以输出秒级的实时信息。Tsar能够比较方便的增加模块,只需要按照tsar的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到Tsar中。

总体架构

Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。

  • 框架程序源代码主要在src目录,而模块源代码主要在modules目录中。
  • 框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。

Tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar --cron来定时采集信息,并且记录到原始日志文件。

安装tasr

有两种安装方式

  1. clone代码
git clone git://github.com/alibaba/tsar.git
cd tsar
make
make install
  1. 下载源码-我是采用的这个方法
#依次执行以下命令即可
1.wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate
2.unzip tsar.zip
3.cd tsar-master
4.make
5.make install

执行命令

wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate

d2c78a3268374c5c98b49ea55b033012.png


解压:unzip tsar.zip


3a69141073bb4bfb9516537c499cb846.png


执行命令:

cd tsar-master

make


362157653ed248429a6ba4587234d0e5.png

执行命令:make install

7d933b463cd74ab79a0ac59591abffb2.png


tsar配置介绍

安装完tsar后会生成如下的文件


Tsar配置文件路径:/etc/tsar/tsar.conf,tsar的采集模块和输出的具体配置;

定时任务配置:/etc/cron.d/tsar,负责每分钟调用tsar执行采集任务;

日志文件轮转配置:/etc/logrotate.d/tsar,每个月会把tsar的本地存储进行轮转;

模块路径:/usr/local/tsar/modules,各个模块的动态库so文件;


配置文件

负责tsar的采集模块和输出的具体配置;在这里配置启用哪些模块,输出等内容。

cd /etc/tsar/tsar.conf



937403dd0cf34f79953d46893392355c.png

常用参数说明

可结合下文参数,来对应查看/etc/tsar/tsar.conf文件

debug_level 指定tsar的运行级别,主要用来调试使用

mod_xxx on/off 开启指定模块

out_interface 设置输出类型,支持file,nagios,db

out_stdio_mod 设置用户终端默认显示的模块

output_db_mod设置哪些模块输出到数据库

output_db_addr 数据库的ip和端口

output_nagios_mod设置哪些模块输出到nagios

include 支持include配置,主要用来加载用户的自定义模块

cycle_time指定上报的间隔时间,由于tsar每一分钟采集一次,上报时会判断是否符合时间间隔,如设置300的话,则在0,5等整点分钟会上报nagios

threshold 设置某个要报警项的阀值,前面是模块和要监控的具体名称,后面的四个数据代表报警的范围,warn和critical的范围

定时任务配置

每分钟以root用户的角色调用tsar命令来执行数据采集。

cat  /etc/cron.d/tsar


1939b408028a4d66ad5a2f0afb41d2f7.png


日志文件

每个月会把tsar的本地存储进行轮转,此外这里也设定了数据在/var/log/tsar.data下

cd /etc/logrotate.d/tsar

6fc2490332f444cc999ca963d052abb2.png


tsar使用

在Tsar的使用中,如下是可以参考的帮助信息,但实际使用可可能不会涉及如此多,可以直接参考下一个实际使用

b04309ad0f114d7db702e81be44a4cff.png

Usage: tsar [options]
Options:
    -check         查看最后一次的采集数据
    --check/-C     查看最后一次tsar的提醒信息,如:tsar --check / tsar --check --cpu --io
    --watch/-w     显示最后多少分钟的记录. 如:tsar --watch 30 / tsar --watch 30 --cpu --io
    --cron/-c      使用crond模式来进行tsar监控
    --interval/-i  指明tsar的间隔时间,默认单位分钟,默认显示间隔5分钟;带上--live参数则单位是秒,默认是5秒。 
    --list/-L      列出启用的模块
    --live/-l      启用实时模式,类似iostat等,可以配合-i参数和模块参数使用。
    --file/-f      指定输入文件
    --ndays/-n     控制显示多长时间的历史数据,默认1天
    --date/-d      指定日期,YYYYMMDD或者n代表n天前
    --merge/-m     对有多个数据的展示,进行汇总,如机器上跑了3个squid,可以用 tsar –squid -m的放式进行展示汇总。
    --detail/-D    能够指定查看主要字段还是模块的所有字段
    --spec/-s      指定字段,tsar –cpu -s sys,util
    --item/-I      显示指定项目数据, 如:tsar --io -I sda
    -–help/-h      显示提示信息和模块信息
Modules Enabled:
    --cpu          列出cpu相关的监控计数
    --mem          物理内存的使用情况
    --swap         虚拟内存的使用情况
    --tcp          TCP协议IPV4的使用情况
    --udp          UDP协议IPV4的使用情况
    --traffic      网络传出的使用情况
    --io           Linux IO的情况
    --pcsw         进程和上下文切换
    --partition    磁盘使用情况
    --tcpx         TCP连接相关的数据参数
    --load         系统负载情况

tsar实际使用参考

查看可用的监控模块列表

tsar -L

可在配置文件中调整:/etc/tsar/tsar.conf

4a882b66a5824e1f96ed8a5a6d5073d8.png

查看CPU情况

tsar --cpu

user表示用户空间cpu使用情况

sys表示内核空间cpu使用情况

wait表示IO对应的cpu使用情况

hirq,sirq分别是硬件中断,软件中断的使用情况

util是系统使用cpu的总计情况


b6626809b1594c4ab8295f03e2522708.png


依次类推:

可针对的查看下面具体某项或某几项的情况

cpu
mem
swap
tcp
udp
traffic
io
pcsw
partition
tcpx
load

tsar常用命令

显示1天内的历史汇总(summury)信息,以默认5分钟为间隔

tsar

查看所有监控项实时数据

tsar -l   

查看所有监控项,历史或实时数据,以每次1秒钟作为采集显示

tsar -d 1 --cpu --load --mem -i 1
#-d 1: 查看一天前的数据;去掉-d 1则表示查询截止目前24小时内的数据
#-i 1 : 表示以每次1分钟作为采集显示;

查看所有监控项历史或实时数据,以每次1秒钟作为采集显示

tsar -i 1 -l
#-l: 实时数据;不加-l就是所有历史数据了

查出指定监控项实时数据,以每次1秒钟作为采集显示

tsar --cpu --load --mem -i 1 -l

查出指定监控项实时数据,以每次5秒钟作为采集显示

tsar --cpu --load --mem -l 5

追溯历史日期的数据

tsar --load --cpu -d "20230111" -f /var/log/tsar.data
tsar --load --cpu -d "20230111"
#-d : 指定历史日期;
#-f : 指定tsar的数据文件;
目录
相关文章
|
5天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
24 3
|
5天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
18 2
|
15天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
38 5
linux系统服务二!
|
15天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
37 3
linux系统服务!!!
|
5天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
24 3
|
8天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
26 6
|
8天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
35 6
|
9天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
40 5
|
9天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
28 3
|
9天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####