1. 简介
Nagios是一款开源的、灵活的、可扩展的IT基础设施监控工具,广泛用于大中型企业和组织中。本文将介绍如何使用Nagios对MSSQL服务进行监控。
2. Nagios基础知识
2.1 Nagios的安装
Nagios的安装过程可以参考官方文档,本文不再赘述。需要注意的是,安装完成后需要根据实际情况配置Nagios的相关文件。主要包括:
定义主机和服务
定义监控插件
定义告警方式
2.2 Nagios监控插件
Nagios的监控插件是Nagios监控系统的核心组成部分,它们实现了实际的监控功能。常用的监控插件有ping、check_http、check_disk等。在本文中,我们需要使用插件check_mssql_health对MSSQL服务进行监控。
3. 监控MSSQL服务
3.1 安装check_mssql_health插件
check_mssql_health是一个用于监测MSSQL数据库服务器的开源插件。要安装该插件,需要首先安装PerfParse。
yum install gd-devel
wget http://www.linux4u.org/Whitepapers/wp-content/uploads/2014/02/perfparse-0.106.tar.gz
tar xvzf perfparse-0.106.tar.gz
cd perfparse-0.106/
./configure --with-postgresql=/usr/include/postgresql
make && make install
ldconfig
安装完成PerfParse后,就可以安装check_mssql_health插件了。
yum install nagios-plugins-mssql
wget https://labs.consol.de/assets/downloads/nagios/check_mssql_health-2.1.2.3.tar.gz
tar xvzf check_mssql_health-2.1.2.3.tar.gz
cd check_mssql_health-2.1.2.3/
./configure
make && make install
3.2 监控MSSQL连接
通过检查MSSQL的连接来确定数据库服务器是否可用。可以使用check_mssql_health的mssql-connect选项来检查MSSQL服务器是否可以连接。
/usr/local/nagios/libexec/check_mssql_health --hostname=mssqlserver --username=sa --password=secret --mode=mssql-connect
其中,mssqlserver是MSSQL服务器的IP地址或主机名,sa是MSSQL服务器的sa账户,secret是sa账户的密码。输出信息如下:
OK - MSSQL Server connection time: 0.013 sec
3.3 监控MSSQL日志文件大小
MSSQL的错误日志文件(ErrorLog)和接口日志文件(SQLAgent.out)可能会过度增长并耗尽服务器上的磁盘空间。因此,我们需要监控日志文件的大小。
/usr/local/nagios/libexec/check_mssql_health --hostname=mssqlserver --username=sa --password=secret --mode=db-logfile-size --logfile-type=ERRORLOG
其中,ERRORLOG表示检查MSSQL的错误日志文件。输出信息如下:
OK - ERRORLOG Log is 3008K, max is 204800K
3.4 监控MSSQL缓存
MSSQL会缓存数据表(Table)、查询计划(Query Plans)和缓存缓存存储过程的结果。缓存通常会提高查询的性能,但过多缓存可能会导致MSSQL服务器崩溃。
/usr/local/nagios/libexec/check_mssql_health --hostname=mssqlserver --username=sa --password=secret --mode=db-cache-usage --warning-table=95 --critical-table=99
其中,warning-table表示警告级别,如果表缓存使用量大于95%,则触发警告;critical-table表示严重级别,如果表缓存使用量大于99%,则触发严重警告。输出信息如下:
OK - 3.03% table cache hit rate (15 of 494,32 reads)
3.5 监控MSSQL的CPU利用率
MSSQL在处理大量查询和数据库备份等任务时,可能会导致CPU利用率不断增加。如果CPU利用率过高,可能会导致操作系统无响应。
/usr/local/nagios/libexec/check_mssql_health --hostname=mssqlserver --username=sa --password=secret --mode=cpu-usage --warning=90 --critical=95
其中,warning表示警告级别,如果CPU利用率大于90%,则触发警告;critical表示严重级别,如果CPU利用率大于95%,则触发严重警告。输出信息如下:
OK - CPU Usage: 2.08%
3.6 监控MSSQL的内存利用率
MSSQL在处理大量查询和数据库备份等任务时,可能会导致内存使用率不断增加。如果内存使用率过高,可能会导致操作系统无响应。
/usr/local/nagios/libexec/check_mssql_health --hostname=mssqlserver --username=sa --password=secret --mode=mem-usage --warning=90 --critical=95
其中,warning表示警告级别,如果内存使用率大于90%,则触发警告;critical表示严重级别,如果内存使用率大于95%,则触发严重警告。输出信息如下:
OK - MEM Usage: 8.91%
4. 总结
本文介绍了如何使用Nagios对MSSQL服务进行监控,主要包括安装check_mssql_health插件以及监控MSSQL连接、日志文件大小、缓存、CPU利用率以及内存利用率等信息。如果您的企业或组织使用MSSQL服务,请务必对其进行监控,以便及时发现并解决问题。