varnish-nagios的安装使用

2013年4月27日 发表评论 阅读评论

就目前来说,最流行的cache加速,应该算是varnish了,最流行的监控当然是nagios ———— 至少我是这样认为的。为了将varnish的stat进行很好的监控。varnish官方提供了varnish-nagios功能插件。用于整合到nagios的libexec里。下面就针对该插件,具体的介绍下其安装和使用。

一、下载安装

该包即可以在varnish官网上下到,同时也在github上有托管。官网下载地址是:http://repo.varnish-cache.org/source/,github项为:https://github.com/varnish/varnish-nagios  。两都提供的源码文件略有不同,官方的提供的是varnish-nagios-1.1.tar.gz文件,长久以来没进行过更新了,可以直接通过configure进行安装;github上的项目包也长久没有更新了,其不能直接进行configure安装,其通过运行autogen.sh脚本,生成configure文件。这里以github上的为例:

./autogen.sh
+ aclocal
+ libtoolize --copy --force
./autogen.sh: line 44: libtoolize: command not found

运行autogen时,可能会报上面的错误。报错是因为缺少libtool软件包,通过yum安装libtool包重新运行即可。运行完生成configure文件后,执行下面的操作进行安装:

 ./configure --prefix=/App/nagios/
…………………………………………………………
checking for VARNISHAPI... no
configure: error: Package requirements (varnishapi) were not met:
No package 'varnishapi' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables VARNISHAPI_CFLAGS
and VARNISHAPI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

运行过程中可能又会碰到上面的错误。当然,rpm包方式安装的varnish也会报这个错误。通过yum -y install varnish-libs时,仍然会上面的错。通过yum -y install varnish-libs-devel 。再执行上面的confiure语包,问题解决。我们来看下,两个包的文件内容有什么不同:

[root@localhost ~]# rpm -ql varnish-libs
/usr/lib64/libvarnishapi.so.1
/usr/lib64/libvarnishapi.so.1.0.0
/usr/share/doc/varnish-libs-3.0.3
/usr/share/doc/varnish-libs-3.0.3/LICENSE
[root@localhost varnish-nagios-master]# rpm -ql varnish-libs-devel
/usr/include/varnish
/usr/include/varnish/varnishapi.h
/usr/include/varnish/vcli.h
/usr/include/varnish/vsc.h
/usr/include/varnish/vsc_all.h
/usr/include/varnish/vsc_fields.h
/usr/include/varnish/vsl.h
/usr/include/varnish/vsl_tags.h
/usr/include/varnish/vsm.h
/usr/lib64/libvarnishapi.so
/usr/lib64/pkgconfig/varnishapi.pc
/usr/share/doc/varnish-libs-devel-3.0.3
/usr/share/doc/varnish-libs-devel-3.0.3/LICENSE

因为varnish-nagios要同时依赖so文件的.h头文件,所以这两个包都是必须的。而如果是源码包安装的varnish,可以通过下面的方法解决:

export LD_LIBRARY_PATH=/App/varnish/lib:$LD_LIBRARY_PATH

通过以上方法,可以让varnish-nagios可以通过pkgconfig里的varnishapi.pc文件知道varnish所有文件生成的路径。这样就可以通过下面的操作成功安装varnish-nagios了:

./configure --prefix=/App/nagios/
make && make install 

注:上面的报错也可以通过改变/etc/ld.so.conf 文件并执行 /sbin/ldconfig 命令的方法解决。

二、使用

完成安装后,其只会生成一个文件check_varnish,通过上面的配置安装的话,该文件的生成路径是/App/nagios/libexec/check_varnish 。先看下其用法:

[root@back libexec]# ./check_varnish -h
usage: check_varnish [-lv] [-n varnish_name] [-p param_name [-c N] [-w N]]
-v              Increase verbosity.
-n varnish_name Specify the Varnish instance name
-p param_name   Specify the parameter to check (see below).
                The default is 'ratio'.
-c [@][lo:]hi   Set critical threshold
-w [@][lo:]hi   Set warning threshold
All items reported by varnishstat(1) are available - use the
identifier listed in the left column by 'varnishstat -l'.  In
addition, the following parameters are available:
uptime  How long the cache has been running (in seconds)
ratio   The cache hit ratio expressed as a percentage of hits to
        hits + misses.  Default thresholds are 95 and 90.
usage   Cache file usage as a percentage of the total cache space.

从上面的帮助文档上不难看出,其就是利用了varnishstat -1 (此处是一) 来获取数据并处理。但该插件功能显得很鸡肋。

其一, -c和-w对某些参数的监控不适用。这里就以默认的ration项为例好了:

[root@back libexec]# ./check_varnish  -w 80 -c 60
VARNISH CRITICAL: Cache hit ratio (89)|ratio=89

我目前的命中率是89%,我想让命中率小于80%时告警,小于60%时严重告警。而其在命令中率在89%时就已经严重告警。

其二,-p参数不支持多参数:

[root@back libexec]# ./check_varnish  -p LCK.ban.colls -w 1 -c 2 -p SMA.s0.c_req -w 5320688  -c 6320603
VARNISH WARNING: Allocator requests (5,323,425)|SMA.s0.c_req=5323425

如上,我随意取了两个参数,可以发现,其真正有效使用的只是后一个参数。估计这也是该插件长久得不到更新的原因,但其也并非一无是处。对一些参数的检测上(如:varnish内存使用情况),其还是适用的。而其不适用的参数,个人感觉使用varnishstat -1配合脚本实现应该更好。

参考页面:

http://terraltech.com/monitoring-vanish-server-with-shinken/

https://www.varnish-cache.org/utilities

http://hi.baidu.com/3444542/item/a752144400cc4595833ae193

https://zh.wikipedia.org/wiki/Pkg-config

https://www.varnish-cache.org/installation/redhat




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 平台架构 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.