我想设置Nagios(在我的Debian上)来验证SharePoint服务器是否已启动。我已经尝试使用cURL
,但它不适用于某些我不知道的问题,所以我决定改变我验证该服务的方式。
理论上很简单,我只需要制作一个脚本来发送请求(http或https,无关紧要)并检查响应,如果成功为200或者如果不是则为40x(此时可以)。
因此我必须使用telnet
或任何ftp服务来执行此操作,或者我可以使用其他功能/工具。
使用telnet我遇到了400错误的问题。当服务器启动或关闭时,SharePoint会返回此错误,因此我不能为我工作。
任何想法??
答案 0 :(得分:1)
您可以使用Nagios的check_http插件。例如:
check_http -H SharepointHostname/IP -p port
您可以使用-S标志进行安全的http连接
您可以使用-u标志转到特定网址
您可以使用-s标志来搜索从使用-u标志指定的URL返回的HTML页面中的特定字符串。
所以基本上你可以请求一个特定的页面,扫描一个已知的字符串,如果成功找到,你确定这个页面已启动(这意味着服务器已启动等)。
示例:
check_http -H my.sharepoint.com -u /start/page/sharepoint.aspx -s "test string"
通常这是在登录页面等上完成的。如果它包含任何字符(例如?和&),请不要忘记在URL中转义特殊字符。
还有perl script可用于检查共享点服务器。
答案 1 :(得分:1)
这不符合您的要求:
最有可能的是,你需要一个登录/密码才能监控Sharepoint,以便监控比基本的IIS /网站工作更多的内容。
答案 2 :(得分:0)
我以自己的方式检查SharePoint是UP还是DOWN。请注意,此脚本只检查服务状态,不再像用户权限或其他任何内容。
Perl脚本:
#!/usr/bin/env perl
use strict;
use warnings;
use LWP::UserAgent;
use Getopt::Long qw(:config no_ignore_case_always auto_version);
GetOptions ('h=s' => \my $h);
my $ua = LWP::UserAgent->new;
$ua->agent('Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)');
my $req = $ua->get('http://' . $h);
my $retorno = '';
if ($req->is_success)
{
$retorno = $req->content;
}
else
{
$retorno = $req->status_line;
}
if ($retorno eq "401 Unauthorized")
{
print "OK: SharePoint service at " . $h . " server is UP.";
exit 0;
}
else
{
print "CRITICAL: SharePoint service at " . $h . " server is DOWN.";
exit 2;
}
如果您在运行脚本时遇到此异常:
无法在@INC
中找到LWP / UserAgent.pm
这篇文章可以帮助你,因为它帮助了我:
http://help.directadmin.com/item.php?id=274
因此,在Nagios commands.cfg
文件中,您将以这种方式声明命令:
command_line /usr/local/nagios/libexec/check_sharepoint.pl -h $HOSTADDRESS$
其中$HOSTADDRESS
是Nagios范围内的主机IP变量。
请记住文件中的chmod +x
。我知道你会...