当设置了负载均衡后,监测真正的服务器和在其上运行的应用程序的健康状况是很有帮助的。例如,在Web服务器中,你可以设置一个特定的页面,你可以用它来监控状态,或者使用ADC的其他监控系统之一。
库>真实服务器监控页面允许你添加、查看和编辑自定义监控。这些是第7层的服务器 "健康检查",从你定义的虚拟服务的基本选项卡内的服务器监控领域选择它们。
真实服务器监控器页面分为三个部分。
· 详细内容
· 上传
· 定制显示器
详细内容
细节部分是用来添加新的监视器和删除任何你不需要的监视器。你也可以通过双击现有的显示器来编辑它。
命名
你为你的显示器选择的名称。
描述
本监测器的文字描述,我们建议最好是尽可能的描述性。
监测方法
从下拉列表中选择监测方法。可用的选择是。
监测方法
|
描述
|
例子
|
HTTP 200 OK
|
一个TCP连接被建立到真实服务器上。连接建立后,向真实服务器发送一个简短的HTTP请求。等待来自服务器的HTTP响应,然后检查是否有 "200 OK "响应代码。如果收到 "200 OK "响应代码,则认为真实服务器已经启动并运行。如果由于任何原因,没有收到 "200 OK "响应代码,包括超时或连接失败,那么Real服务器就被视为停机和不可用。这种监控方法只能真正用于HTTP和加速的HTTP服务类型。然而,如果HTTP服务器使用的是第4层服务类型,那么如果SSL没有在Real Server上使用,或由 "内容SSL "设施适当处理,它仍然可以被使用。
|
名称。200OK
描述。检查生产网站
监测方法。HTTP 200 OK
页面位置。/main/index.html 或 HTTP://www.edgenexus.io/main/index.html 需要的内容。不适用
|
HTTP响应
|
与Real服务器建立连接和HTTP请求/响应,并按照前一个例子的解释进行检查。但不是检查 "200 OK "的响应代码,而是检查HTTP响应的标头是否有自定义文本内容。该文本可以是一个完整的头,头的一部分,页面的一部分的一行,或者只是一个词。如果发现该文本,则认为Real服务器已经启动并运行。这种监控方法只能真正用于HTTP和加速的HTTP服务类型。但是,如果HTTP服务器使用的是第4层服务类型,如果SSL没有在Real Server上使用,或由 "内容SSL "设施适当处理,它仍然可以使用。
|
名称。服务器启动
描述。检查页面的内容,查看 "服务器启动。"
监测方法。HTTP响应
页面位置。/main/index.html 或 HTTP://www.edgenexus.io/main/index.html 要求的内容。服务器启动
|
DICOM
|
我们使用所需内容栏中的 "源调用 "AE标题值来发送DICOM回声。你也可以在每台服务器的备注栏中设置 "目的地呼叫 "AE标题值。你可以在IP服务-中找到注释栏。
-虚拟服务--服务器页面。
|
名称。DICOM
描述。为DICOM服务进行L7健康检查
监测方法。DICOM
页面位置。不适用
必要的内容。AET价值
|
频带外的TCP
|
TCP Out of Band方法与TCP连接一样,只是你可以在所需内容栏中指定你想监控的端口。这个端口通常与流量端口不一样,当你想把服务绑在一起时使用
|
名称。乐队外的TCP
描述。监测带外/流量端口
页面位置。不适用
必要的内容。555
|
多端口TCP监控器
|
这个方法和上面的一样,只是你可以有几个不同的端口。只有在所需内容部分指定的所有端口都正确响应的情况下,监控才被视为成功。
|
名称。多端口显示器
描述。监控多个端口的成功
页面位置。不适用
要求的内容。135,59534,59535
|
|
|
|
页面位置
URL 一个HTTP监视器的页面位置。这个值可以是一个相对链接,如/folder1/folder2/page1.html。你也可以使用一个绝对链接,其中网站被绑定到主机名。
必要的内容
这个值包含监控器需要检测和利用的任何内容。这里所代表的值将根据所选择的监测方法而改变。
适用于VS
这个字段会自动填入监控器所应用的虚拟服务的IP/端口。你将不能删除任何已经与虚拟服务一起使用的监控器。
用户
一些自定义监视器可以使用这个值和密码字段一起登录到Real服务器。
密码
一些自定义监视器可以使用这个值和用户字段一起登录到Real服务器。
阈值
阈值字段是一个一般的整数,用于需要阈值(如CPU水平)的自定义监控。
注意:请确保从应用服务器返回的响应不是一个 "分块 "响应。
真实服务器监控实例
上传监控
在很多情况下,用户希望创建他们自己的自定义监视器,这一部分允许他们将其上传到ADC。
自定义监视器是用PERL脚本编写的,文件扩展名为.pl。
· 给你的监视器一个名字,以便你能在监测方法列表中识别它。
· 浏览.pl文件
· 点击上传新显示器
· 你的文件将被上传到正确的位置,并将作为一个新的监测方法可见。
定制显示器
在这个部分,你可以查看上传的自定义监视器,如果不再需要,可以将其删除。
· 点击下拉框
· 选择自定义显示器的名称
· 点击删除
· 你的自定义监控器将不再在监控方法列表中可见。
创建一个自定义监控器的Perl脚本
注意:本节是为具有使用和编写Perl语言经验的人准备的。
本节向你展示了你可以在Perl脚本中使用的命令。
#Monitor-Name: 命令是存储在ADC上的Perl脚本的名称。如果你不包括这一行,那么你的脚本将不会被发现
以下是强制性的。
· #Monitor-Name
· 严格使用。
· 使用警告。
Perl脚本是在CHROOTED环境下运行的。它们经常调用另一个应用程序,如WGET或CURL。有时,这些程序需要针对特定的功能进行更新,如SNI。
动态价值
· my $host = $_[0]; - 这使用了IP Services--Real Server部分的 "地址"。
· my $port = $_[1]; - 这是使用IP服务--真实服务器部分的 "端口"。
· my $content = $_[2]; - 这使用了Library--Real Server Monitoring部分的 "Required Content "值。
· my $notes = $_[3]; - 这使用了IP服务中真实服务器部分的 "注释 "栏。
· my $page = $_[4]; - 这使用了Library--Real Server Monitor部分的 "页面位置 "值。
· my $user = $_[5]; - 这使用了Library--Real Server Monitor部分的 "User "值。
· my $password = $_[6]; - 这使用了Library--Real Server Monitor部分的 "密码 "值。
定制健康检查有两个结果
· 成功
返回值 1
向Syslog打印一条成功信息,
标记真实服务器在线(提供IN COUNT匹配)。
· 不成功
返回值 2
向Syslog打印一条 "不成功 "的消息,
标记真实服务器离线(如果OUT计数匹配)。
自定义健康监测器的例子
#Monitor-Name HTTPS_SNI
严格使用。
使用警告。
# 在可用健康检查的下拉菜单中显示上述监视器名称
# 有6个值传递给这个脚本(见下文)。
# 脚本将返回以下值
# 1是测试成功
# 2 如果测试不成功,子监控器
{
my Shost = $_[O]; ###主机IP或名称
my Sport = $_[1]; ### 主机端口
my Scontent = $_[2]; ### 要寻找的内容(在网页和HTTP头文件中)。
my Snotes = $_[3]; ### 虚拟主机名
my Spage = $_[4]; ### 主机地址之后的URL部分
my Suser = $_[5]:### 域名/用户名(可选)
my Spassword = $_[6]; ###密码(可选)。
我的$resolve。
我的$auth =;
如果 ($port)
{
$resolve = "$notes:$port:$host":
}
否则 {
$resolve = "$notes:$host";
}
如果($user && $password) {
$auth = "-u $user:$password :
}
my @lines = 'curl -s -i -retry 1 -max-time 1 -k -H "Host:$notes --resolve $resolve $auth HTTPs://${notes}${page}2>&1'; if(join(""@lines)=~/$content/)
{
print "HTTPs://$notes}${page} looking for - $content - Health check successful./n";
返回(1)。
}
否则
{
print "HTTPs://${notes}${page} looking for - $content - Health check failed.\n";
返回(2)
}
}
监控(@ARGV)。
注意:自定义监控--使用全局变量是不可能的。只能使用局部变量--在函数内部定义的变量