0

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

理论上很简单,我只需要编写一个脚本来发送请求(http 或 https,没关系)并检查响应,如果成功则为 200,否则为 40x(此时可以)。

所以我必须使用telnet或任何 ftp 服务来做到这一点,或者我可以为此使用另一个功能/工具。

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

有任何想法吗??

4

3 回答 3

1

您可以使用 Nagios 的check_http插件。例如:

check_http -H SharepointHostname/IP -p port
  • 您可以使用 -S 标志进行安全的 http 连接

  • 您可以使用 -u 标志转到特定 URL

  • 您可以使用 -s 标志在从 -u 标志指定的 url 返回的 HTML 页面中搜索特定字符串。

所以基本上你可以请求一个特定的页面,扫描一个已知的字符串,如果成功找到,你确定这个页面已经启动(这意味着服务器已经启动等)

例子:

check_http -H my.sharepoint.com -u /start/page/sharepoint.aspx -s "test string"

通常这是在登录页面等上完成的。不要忘记在您的 URL 中转义特殊字符,如果它包含任何字符(如?和 &)。

还有一个perl 脚本可用于检查共享点服务器。

于 2012-06-04T13:40:36.770 回答
1

这不符合您的要求吗:

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

您很可能需要 Sharepoint 的登录名/密码才能监控比基本 IIS / 网站工作更多的内容。

于 2012-08-03T12:54:59.227 回答
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

因此,在 Nagioscommands.cfg文件中,您将以这种方式声明命令:

command_line /usr/local/nagios/libexec/check_sharepoint.pl -h $HOSTADDRESS$

$HOSTADDRESSNagios 范围内的主机 IP 变量在哪里。

记得chmod +x在文件上。我知道你会的...

于 2012-06-06T14:31:43.757 回答