性能监控工具
在使用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
tsar配置介绍
前面介绍了tsar的介绍,现在大家来看看tsar的配置。
定时任务配置:/etc/cron.d/tsar
$cat /etc/cron.d/tsar
# cron tsar collect once per minute
MAILTO=""
* * * * * root /usr/bin/tsar --cron > /dev/null 2>&1
如上所示,/etc/cron.d/tsar里面负责每分钟以root用户的角色调用tsar命令来执行数据采集。
日志文件轮转 : /etc/logrotate.d/tsar
$ cat /etc/logrotate.d/tsar
/var/log/tsar.data
{
monthly
rotate 120
create
nocompress
nodateext
notifempty
prerotate
/usr/bin/chattr -a /var/log/tsar.data
endscript
postrotate
/usr/bin/chattr +a /var/log/tsar.data
endscript
}
在日志文件轮转配置中,每个月会把tsar的本地存储进行轮转,此外这里也设定了数据在/var/log/tsar.data下
配置文件:/etc/tsar/tsar.conf
[root@localhost ~]# cat /etc/tsar/tsar.conf
debug_level ERROR
mod_cpu on
mod_mem on
mod_swap on
mod_tcp on
mod_udp on
mod_traffic on
mod_io on
mod_pcsw on
mod_partition on
mod_tcpx on
mod_load on
mod_apache off
mod_lvs off
mod_haproxy off
mod_squid off
mod_nginx off
mod_swift off
mod_swift_code off
mod_swift_domain off
mod_swift_esi off
mod_swift_fwd off
mod_swift_store off
mod_swift_swapdir off
mod_swift_purge off
mod_swift_sys off
mod_swift_tcmalloc off
mod_tmd off
mod_percpu off
mod_tcprt off
mod_proc off pidname
mod_pharos off
mod_tmd4 off
mod_keyserver off
output_interface file
output_file_path /var/log/tsar.data
output_stdio_mod mod_swap,mod_partition,mod_cpu,mod_mem,mod_lvs,mod_haproxy,mod_traffic,mod_squid,mod_load,mod_tcp,mod_udp,mod_tcpx,mod_apache,mod_pcsw,mod_io,mod_percpu
include /etc/tsar/conf.d/*.conf
/etc/tsar/tsar.conf负责tsar的采集模块和输出的具体配置;在这里配置启用哪些模块,输出等内容。
tsar 模块库
[root@localhost modules]# ls -lt
total 1136
-rwxr-xr-x 1 root root 15472 Jul 3 22:06 mod_ts_err.so
-rwxr-xr-x 1 root root 14747 Jul 3 22:06 mod_ts_os.so
-rwxr-xr-x 1 root root 14772 Jul 3 22:06 mod_ts_storage.so
-rwxr-xr-x 1 root root 10606 Jul 3 22:06 mod_udp.so
-rwxr-xr-x 1 root root 15215 Jul 3 22:06 mod_ts_client.so
-rwxr-xr-x 1 root root 16195 Jul 3 22:06 mod_ts_codes.so
-rwxr-xr-x 1 root root 15241 Jul 3 22:06 mod_ts_conn.so
-rwxr-xr-x 1 root root 14633 Jul 3 22:06 mod_tcpx.so
-rwxr-xr-x 1 root root 16708 Jul 3 22:06 mod_tmd4.so
-rwxr-xr-x 1 root root 15627 Jul 3 22:06 mod_tmd.so
-rwxr-xr-x 1 root root 11658 Jul 3 22:06 mod_traffic.so
-rwxr-xr-x 1 root root 14969 Jul 3 22:06 mod_ts_cache.so
-rwxr-xr-x 1 root root 22694 Jul 3 22:06 mod_swift_swapdir.so
-rwxr-xr-x 1 root root 25332 Jul 3