性能监控工具
在使用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分钟作为采集显示。