check_mssql_health监控sql server项目过程记录。

具体看:http://labs.consol.de/nagios/check_mssql_health/

1、安装check_mssql_health,

tar xvzf check_mssql_health-1.5.8.2.tar.gz

cd check_mssql_health-1.5.8.2

./configure --with-nagios-user=nagios --with-nagios-group=nagcmd

make

make install

2、安装freetds0.82

tar xvzf freetds-0.82.tar.gz

cd freetds-0.82

./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib

make && make install

export SYBASE=/usr/local/freetds

source /etc/profile          #刷新环境变量,使其生效。

echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf

/sbin/ldconfig

3、安装DBI和DBD-Sybase

#安装DBI-1.616.tar.gz

tar xvzf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL
make
#make test
make install

#安装DBD-Sybase-1.11.tar.gz

tar xvzf DBD-Sybase-1.11.tar.gz

cd DBD-Sybase-1.11

perl Makefile.PL

注意点:此处会出现错误,不用理会,因为freetds只是sybase的简单的库,有很多库文件不存在,所以才出现错误。

make

make test

注意点:
Failed 11/13 test scripts, 15.38% okay. 216/241 subtests failed, 10.37% okay.
make: *** [test_dynamic] Error 9
此处测试有错误,不用理会。继续安装就行。

make install

4、测试连接:

check_mssql_health --hostname=ip地址 --username=用户名 --password=密码 --port=端口 --mode=cpu-busy

返回值为:即表示正常。
CRITICAL - CPU busy 111.00% | cpu_busy=111.00;80;90

5、添加模板:

# 'check_mssql_health ' command definition
define command{
        command_name    check_mssql_health
        command_line    $USER1$/check_mssql_health --hostname $HOSTADDRESS$ --username=$ARG1$ --password=$ARG2$ --port=$ARG3$ --mode=$ARG4$ --warning=$ARG5$ --critical=$ARG6$
        }

6、在主机中添加服务

check_command命令后输入:

check_command                 check_mssql_health!用户名!密码!端口!cpu-busy!100!200

至此就可以正常监控sql server了。

注意点:监控sql server 2000是正常的,而监控2008发现权限被拒绝,经过查找原因为2008的sp_monitor存储过程中,必须调用sysadmin权限,而2000则可以以普通用户运行,这里就牵扯到一个安全问题,如果给账户sysadmin权限,会导致服务器风险增大,新建存储过程,去掉权限限制那段,发现还是略有问题,继续跟进研究中,如果有好的解决办法,再另行发布。