我正在尝试从我的红帽6.4连接到MSSQL 2012服务器以监控一些参数。
长话短说: 我在Red Hat上配置了Icinga 1.9.4,我正在监控大量的主机/服务。 还使用labs.consol.de中的check_mssql_health(和freetds)成功监控MSSQL 2000,2005,2008,2008 R2
尝试监视MSSQL 2012时出现问题,插件无法连接到它。 要求我的MSSQL管理员仔细检查一切都配置好了,他确认,他还成功连接到另一个正在运行的MSSQL 2008的MSSQL 2012。 所以,我想,我至少应该从任何东西(perl,isql,tsql)建立一个连接,看看是否真的有效,我可以从该服务器获取一些数据,但没有任何东西可以连接。
Perl / isql / tsql也无法连接到正在运行的MSSQL服务器(我用Icinga / check_mssql_health成功监控的服务器)所以我猜这个问题是我的linux设置。
我可以(绝望地)使用你的帮助来找出问题所在。
我不知道check_mssql_health是否与MSSQL 2012服务器兼容,但是,如果我能够成功地从Perl连接到MSSQL 2012,我应该能够在Perl的帮助下得到我需要的东西。
我的设置的一些细节:
perl -MDBI -e 'DBI->installed_versions;'
Perl : 5.010001 (x86_64-linux-thread-multi)
OS : linux (2.6.18-398.el5)
DBI : 1.633
DBD::mysql : 4.013
DBD::Sybase : 1.15
DBD::Sponge : 12.010003
DBD::Proxy : 0.2004
DBD::Oracle : 1.74
DBD::ODBC : 1.50
DBD::Gofer : 0.015327
DBD::File : 0.44
DBD::ExampleP : 12.014311
DBD::DBM : 0.08
cat /etc/odbc.ini
[SASSQL26DEV]
Driver = FreeTDS
Description = MSSQL database pt serverul meu
Trace = Yes
TraceFile = /usr/local/src/traceFile.log
# Servername corresponds to the section in freetds.conf
Servername = SASSQL26DEV
Database = tempdb
#port = 1433
cat /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbc.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/lib64/libtdsodbc.so
cat /usr/local/freetds/etc/freetds.conf
[SASSQL26DEV]
host = 10.101.1.39
#port = 1433
tds version = 8.0
instance = CRMDEV
以下Nagios用户是域用户
isql -v SASSQL26DEV DOMAIN\nagios 'password'
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[ISQL]ERROR: Could not SQLConnect
以下testnagios用户是MSSQL用户
isql -v SASSQL26DEV testnagios 'ZAQ!2wsx'
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[ISQL]ERROR: Could not SQLConnect
cat 11sql2012_test.pl
#!/usr/bin/perl
use DBI;
my $user = "nagios";
my $passwd = "password";
my $server = "SASSQL26DEV";
my $dbh = DBI->connect("DBI:Sybase:server=$server", $user, $passwd, {PrintError => 0});
my $sth;
unless ($dbh) {
die "ERROR: Failed to connect to server ($server).\nERROR MESSAGE: $DBI::errstr";
} else {
print "\n";
print "Successful Connection.";
print "\n\n";
}
./11sql2012_test.pl
ERROR: Failed to connect to server (SASSQL26DEV).
ERROR MESSAGE: at ./11sql2012_test.pl line 13.
由于