tsar nginx模块安装小结
tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。 收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。 tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带–live参数可以输出秒级的实时信息。
在该工具的wiki页面上,可以发现其可以很方便的进行模块扩展。同时在github页面上也发现了taobao出的tsar的一个nginx扩展模块。按其教程我进行了安装,发现nginx的各项监控指标为0,这个问题在taocode的tsar info页面里也有人提出了这样的问题。不过后来通过多次尝试,最张将问题解决,现总结如下。
1、tsar的安装
1[root@localhost ~]# wget http://code.taobao.org/p/tsar/file/1799/tsar-2.1.0.tar.gz
2[root@localhost ~]# tar zxvf tsar-2.1.0.tar.gz
3[root@localhost ~]# cd tsar-2.1.0
4[root@localhost tsar-2.1.0]# ./configure
5[root@localhost tsar-2.1.0]# make
6[root@localhost tsar-2.1.0]# make install
该工具的安装非常简单,通过上面的步骤就可以完成安装。安装完后就可以直接使用,其用法如下:
1[root@localhost tsar-2.1.0]# tsar --help
2Usage: tsar [options]
3Options:
4 --cron/-c run in cron mode, output data to file
5 --interval/-i specify intervals numbers, in minutes if with --live, it is in seconds
6 --list/-L list enabled modules
7 --live/-l running print live mode, which module will print
8 --ndays/-n show the value for the past days (default: 1)
9 --merge/-m merge multiply item to one
10 --help/-h help
11Modules Enabled:
12 --cpu CPU share (user, system, interrupt, nice, & idle)
13 --mem Physical memory share (active, inactive, cached, free, wired)
14 --swap swap usage
15 --tcp TCP traffic (v4)
16 --udp UDP traffic (v4)
17 --traffic Net traffic statistics
18 --io Linux I/O performance
19 --pcsw Process (task) creation and context switch
20 --partition Disk and partition usage
21 --tcpx TCP connection data
22 --load System Run Queue and load average
安装完成后,通过查看该工具的安装目录结构,可以发现其同其他应用程序大致相同,有以下几大部分组成:
1可执行文件
2/usr/bin/tsar /usr/bin/tsardevel
3计划执行与输出轮询
4/etc/cron.d/tsar.cron /etc/logrotate.d/tsar.logrotate (默认120个)
5配置目录及配置文件
6/etc/tsar etc/tsar/nagios.conf /etc/tsar/tsar.conf /etc/tsar/conf.d
7模块文件目录
8/usr/local/tsar/modules
9帮助文件
10/usr/local/man/man8/
2、nginx模块扩展
tsar的nginx扩展模块项目主页为:https://github.com/taobao/tsar-mod_nginx ,点击下载zip包。
创建模块示例
1[root@localhost ~]# unzip tsar-mod_nginx-master.zip
2[root@localhost ~]# tsardevel nginx
3build:make
4install:make install
5uninstall:make uninstall
6test:tsar --list or tsar --nginx --live -i 1
覆盖示例文件
1[root@localhost ~]# cp tsar-mod_nginx-master/mod_nginx.c nginx/
2cp:是否覆盖"nginx/mod_nginx.c"? y
3[root@localhost ~]# cd nginx/
4[root@localhost nginx]# ls
5Makefile mod_nginx.c mod_nginx.conf
编译安装
1[root@localhost nginx]# make && make install
2gcc -I/usr/local/tsar/devel -Wall -fPIC --shared -g mod_nginx.c -o mod_nginx.so
3cp ./mod_nginx.so /usr/local/tsar/modules/
4cp ./mod_nginx.conf /etc/tsar/conf.d/nginx.conf
3、nginx模块不能用问题的处理
此时通过使用tsar –nginx –live -i 1 命令查看,发现所有的结果值都是横线。出现该问题的原因非常简单,因为nginx没有开启status统计页面 。因为该工具统计的原理是通过获取status页面的输出结果,并对输出内容进行统计和计算得出的结果。而且其获取状态页的url默认是http://127.0.0.1/nginx_status ,所以在nginx上你必须有如下的配置:
1location /nginx_status {
2 stub_status on;
3 access_log off;
4 allow 127.0.0.1;
5 deny all;
6 }
注:以上的url并非不能更改,可以修改环境变量实现。其自带的几个环境变量如下。
1export NGX_TSAR_HOST=192.168.0.1
2export NGX_TSAR_PORT=8080
3export NGX_TSAR_SERVER_NAME=status.taobao.com
4export NGX_TSAR_URI=/nginx_status
总结:tsar另一个比较棒的用处就是可以通过nsca向nagios传送数据关展现出来,有时间的话再总结下吧。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/tsar-nginx/2308.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.