Linux系统性能监控工具介绍之-tsar

性能监控工具
在使用Linux过程中,比较头疼的就是系统提供了很多Linux系统监控工具,如何充分合理的使用这些工具,找出系统运行的性能瓶颈,包括CPU,内存,磁盘,网络瓶颈。类似的网上有很多管理员不得不学的20个基本工具。这里就不一一 介绍。这里额外补充几个使用且所见即所得的监控工具,帮助大家能更快的发现问题所在。

系统资源细分
谈到系统性能监控和分析工具,就不得不提Brendan Gregg的系统分析,他的图非常系统化的展示了应用程序,系统调用,内核,协议栈,硬件等各块之间的交互。有兴趣的朋友可以根据这张图里的命令进行组合进行系统问题的监控,分析,定位。 

监控工具:tsar
简介 
tsar是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带–live参数可以输出秒级的实时信息。

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

tsar 环境安装指南:

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

报错问题1:如图提示未找到命令,直接使用yum安装一个unzip即可。

报错问题2:make编译报错,是因为gcc没有安装,通过yum安装gcc编译程序后,再执行以下make。

部署下时定时任务,后期可以直接使用

]# crontab -e * * * * * root /usr/bin/tsar --cron > /dev/null 2>&1

tsar配置介绍

前面介绍了tsar的介绍,现在大家来看看tsar的配置。

定时任务配置:/etc/cron.d/tsar

cat  /etc/cron.d/tsar

如上所示,/etc/cron.d/tsar里面负责每分钟以root用户的角色调用tsar命令来执行数据采集。

日志文件轮转 : /etc/logrotate.d/tsar

cat /etc/logrotate.d/tsar 

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

配置文件:/etc/tsar/tsar.conf

cat /etc/tsar/tsar.conf

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

tsar 模块库

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

tsar使用介绍

在tsar的使用中,可以参考下面的帮助信息,完成对应的监控。

tsar -h

Usage: tsar [options]
Options:
    -check         查看最后一次的采集数据
    --check/-C     查看最后一次tsar的提醒信息,如:tsar --check / tsar --check --cpu --io
    --cron/-c      使用crond模式来进行tsar监控
    --interval/-i  指明tsar的间隔时间,默认单位分钟,带上--live参数则单位是秒 
    --list/-L      列出启用的模块
    --live/-l      查看实时数据
    --file/-f      指定输入文件
    --ndays/-n     指定过去的数据天数,默认1天
    --date/-d      指定日期,YYYYMMDD或者n代表n天前
    --detail/-D    能够指定查看主要字段还是模块的所有字段
    --spec/-s      指定字段,tsar –cpu -s sys,util

Modules Enabled:
    --cpu               列出cpu相关的监控计数
    --mem               物理内存的使用情况
    --swap              虚拟内存的使用情况
    --tcp               TCP 协议 IPV4的使用情况
    --udp               UDP 协议 IPV4的使用情况
    --traffic           网络传出的使用情况
    --io                Linux IO的情况
    --pcsw              进程和上下文切换
    --partition         磁盘使用情况
    --tcpx              TCP 连接相关的数据参数
    --load              系统负载情况

tsar cpu监控:

如下所示,使用参数–cpu可以监控系统的cpu,参数user表示用户空间cpu, sys内核空间cpu使用情况,wait是IO对应的cpu使用情况,hirq,sirq分别是硬件中断,软件中断的使用情况,util是系统使用cpu的总计情况。下表的数据可以看出,当前系统已使用大约30%的cpu。

tsar监控虚存和load情况

下图列出了对应的系统swap使用,load的使用情况。

tsar 内存使用情况

下图列出了系统内存的使用情况

tsar io使用情况

下图列出了使用tsar来监控系统IO情况

tsar 网络监控统计

tsar 检查告警信息

查看最后一次tsar的提醒信息,这里包括了系统的cpu,io的告警情况。

 

tsar 历史数据回溯

通过参数-d 2 可以查出两天前到现在的数据,-i 1 表示以每次1分钟作为采集显示。

猜你喜欢

转载自blog.csdn.net/weixin_45942735/article/details/114121731