Nagios验证Sharepoint

时间:2012-06-04 13:31:24

标签: linux sharepoint nagios

我想设置Nagios(在我的Debian上)来验证SharePoint服务器是否已启动。我已经尝试使用cURL,但它不适用于某些我不知道的问题,所以我决定改变我验证该服务的方式。

理论上很简单,我只需要制作一个脚本来发送请求(http或https,无关紧要)并检查响应,如果成功为200或者如果不是则为40x(此时可以)。

因此我必须使用telnet或任何ftp服务来执行此操作,或者我可以使用其他功能/工具。

使用telnet我遇到了400错误的问题。当服务器启动或关闭时,SharePoint会返回此错误,因此我不能为我工作。

任何想法??

3 个答案:

答案 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)

这不符合您的要求:

http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/Microsoft-Sharepoint/check_sharepoint-2Epl/details

最有可能的是,你需要一个登录/密码才能监控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。我知道你会...