更新时间:2023-09-18
操作场景
为了保证域名发布的高可用,虚拟IP池的节点在出现故障时能够自动切换到其它正常的节点上,需要让AD实时的去检查节点的健康状态,此时可以通过配置[业务健康检查]来实现此功能。
操作步骤
[全局负载/GSLB/业务健康检查]自定义配置,如下图所示。
名称:业务健康检查的名称。
描述:用来描述该业务健康检查的附加信息,选配项。
类型:主要为ICMP、ICMPv6、CONNECT(TCP)、CONNECT(UDP)、HTTP、TCP半连接、FTP、SNMP、DNS、RADIUS、HTTP被动、TCP被动、ORACLE数据库、MSSQL数据库、MYSQL数据库、复合监视器、CONNECT(SSL)、SIP、LDAP、外部应用监视器。
[ICMP] - 选择类型ICMP,设备会发送IPv4地址格式的ICMP请求包对节点进行探测,根据节点是否响应ICMP请求来判断节点的健康状态。
[ICMPv6] - 选择类型ICMPv6,设备会发送IPv6地址格式的ICMPv6包对节点进行探测,根据节点是否响应ICMPv6请求来判断节点的健康状态。
[HTTP] - 选择类型HTTP,设备会发送HTTP请求包对节点进行探测,根据节点是否按照配置的响应状态码响应HTTP请求来判断节点的健康状态。
[CONNECT(TCP)] - 选择类型CONNECT(TCP),设备会发送TCP连接请求对节点进行探测,根据节点是否正常回复SYN+ACK响应TCP请求或是否按照指定的内容来回复发送的TCP请求来判断节点的健康状态
[CONNECT(UDP)] - 选择类型CONNECT(UDP),设备会发送UDP请求对节点进行探测,根据节点是否应答或正常回复port XX unreachable的ICMP报错信息或是否按照指定的内容来回复发送的UDP请求来判断节点的健康状态。
[HTTPS] - 选择类型HTTPS,在HTTP健康检查基础上加了SSL认证,设备会发送HTTPS请求包对节点进行探测,根据节点是否按照配置的响应状态码响应HTTP请求来判断节点的健康状态。
[CONNECT-SSL] - 选择类型CONNECT-SSL,在CONNECT(TCP)健康检查基础上加了SSL认证,设备会发送SSL连接请求包对节点进行探测,根据节点是否正常建立SSL握手连接或建立SSL连接后是否按照指定的内容来回复发送的TCP请求来判断节点的健康状态。
[FTP] - 选择类型FTP,设备会发送FTP连接请求对节点进行探测,根据节点是否按照配置的路径响应FTP查询请求来判断节点的健康状态。
[SNMP] - 选择类型SNMP,设备会发送SNMP查询请求对节点进行探测,根据节点是否回复或回复的数值是否超出设定的阈值来判断节点的健康状态并调整节点的权重。
[DNS] - 选择类型DNS,设备会发送DNS查询请求对节点进行探测,根据节点是否正常响应域名查询请求或是否按照配置的匹配IP或域名响应DNS查询请求来判断节点的健康状态。
[RADIUS] - 选择类型RADIUS,设备会发送RADIUS请求对节点进行探测,根据节点是否正常响应RADIUS请求来判断节点的健康状态。
[TCP半连接] - 选择类型TCP半连接,设备会发送TCP连接请求对节点进行探测,根据节点是否正常回复SYN+ACK响应TCP请求来判断节点的健康状态。正常交互情况下为3个包,AD发送SYN包,收到服务器应答SYN+ACK,AD回复RST包。
[TCP被动] - 选择类型TCP被动,设备会被动检查每次节点响应TCP的应答并进行统计,根据在统计时间内异常事件是否达到设定监视类型的上限值判断节点的健康状态。
[HTTP被动] - 选择类型HTTP被动,设备会被动检查每次节点响应HTTP的状态码并进行统计,根据在统计时间内异常事件是否达到设定监视类型的上限值判断节点的健康状态。
[复合监视器] - 选择类型复合监视器,可以选择多个已创建的健康检查,设备会同时使用多种健康检查对节点进行监控,根据多个健康检查的结果综合判断节点的健康状态。
[外部应用监视器] - 选择类型外部应用监视器,设备会使用后台脚本对节点进行监控,根据脚本执行的结果判断节点的健康状态
[ORACLE数据库] - 选择类型ORACLE数据库,设备会发送ORACLE数据库请求包对节点进行探测,根据节点是否可以正常连接数据库或是否可以通过配置的用户名和密码登录数据库或是否按照配置的内容响应数据库查询请求来判断节点的健康状态。
[MSSQL数据库] - 选择类型MSSQL数据库,设备会发送MSSQL数据库请求包对节点进行探测,根据节点是否可以正常连接数据库或是否可以通过配置的用户名和密码登录数据库或是否按照配置的内容响应数据库查询请求来判断节点的健康状态。
[MYSQL数据库] - 选择类型MYSQL数据库,设备会发送MYSQL数据库请求包对节点进行探测,根据节点是否可以正常连接数据库或是否可以通过配置的用户名和密码登录数据库或是否按照配置的内容响应数据库查询请求来判断节点的健康状态。
[LDAP] - 选择类型LDAP,设备会发送LDAP请求包对节点进行探测,根据节点是否可以正常响应LDAP请求或是否可以通过配置的用户名和密码登录LDAP或是否按照配置的内容响应LDAP查询请求来判断节点的健康状态
间隔时间:用于确定节点监视器监视节点的频率。即相对于前一次的监视,经过多长时间再进行监视。
超时时间:节点监视器监视节点过程中的超时时间,即多长时间没有收到节点的回复则认为节点离线。
监视地址:监视器监视的节点地址,*号表示监视所有节点。
[所有地址] - 监视所有节点的地址。
[指定地址] - 指定监视地址,*号表示监视所有节点。
监视端口:CONNECT/SNMP/DNS/RADIUS监视器监视的节点端口。
开启调试日志:启用调试则会在服务日志中打印节点监视器的调试日志。
透明:功能开启时,探测包会以节点ip作为下一跳,探测<监视地址>,<监视地址>必需填写具体地址。
HTTP监视器 > 请求URL:请求的方法和请求的URL/URI。
[请求类型] - 请求的方法支持GET、PUT、POST、PATCH、DELETE、CONNECT、TRACE、HEAD、OPTIONS
[请求URL/URI] - 配置探测的URL/URI。
HTTP监视器 > Host值:填充http请求的的Host头部,可以使用${rs_ip}、${rs_port}、${rs_name}、${rs_val}来替代节点ip地址、节点端口、节点名字、节点关联变量。
HTTP监视器 > 响应状态码:应答的有效状态码。默认为200;302。
CONNECT(TCP/UDP)监视器 > 回应内容的最大长度:监视器监视节点时,期望获取到监视节点的回应内容的最大长度。
CONNECT(TCP/UDP)监视器 > 发送内容:监视器监视节点时,发送给节点的内容。
CONNECT(TCP/UDP)监视器 > 接收内容必须:监视器监视节点时,监视节点的回应内容中必须包含的字符。
[包含] - 设置监视器监视节点时,监视节点的回应内容中必须包含的字符。
[不包含] - 设置监视器监视节点时,监视节点的回应内容中必须不包含的字符。
CONNECT(TCP/UDP)监视器 > 断开之前发送的内容:监视器关闭与监视节点的连接时,发送给节点的内容,该内容根据服务的不同而不同,如FTP断开连接时需要发送bye命令。
CONNECT(TCP/UDP)监视器 > 启用十六进制模式:启用十六进制模式,则发送内容和接收内容的字符串应为十六进制。
HTTPS/CONNECT(SSL)监视器 > 客户端证书:监视器监视节点时使用的证书。
HTTPS/CONNECT(SSL)监视器 > 密钥算法列表:监视器监视节点时提供的加密算法。
FTP监视器 > 用户名:FTP服务器上配置的用户名,如果服务器允许匿名用户也可以使用anonymous匿名用户登录。
FTP监视器 > 密码:FTP服务器上设置的用户名的密码,匿名用户的密码一般为guest或者E-mail地址。
FTP监视器 > 路径:文件或目录的路径,如果是目录的路径则根据RFC文档必须以'/'结束,如果是文件则文件大小不能超过10M。
FTP监视器 > 模式:根据RFC959,FTP可工作在两种模式下,分别为PORT主动模式和PASSIVE被动模式。两者的区别是建立连接的方式不同,主动模式是客户端建立数据连接,被动模式是服务器建立连接。
SNMP监视器 > 查询密码:监视节点的SNMP服务所使用的查询密码。
SNMP监视器 > CPU告警阈值:当监视节点的CPU占用率超过配置的告警阈值时,认为该节点的CPU繁忙。
SNMP监视器 > CPU权重:判断监视节点是否繁忙时,CPU占用率所占的权重。
SNMP监视器 > 内存告警阈值:当监视节点的内存占用率超过配置的告警阈值时,认为该节点的内存繁忙。
SNMP监视器 > 内存权重:判断监视节点是否繁忙时,内存占用率所占的权重。
SNMP监视器 > 磁盘告警阈值:当监视节点的磁盘占用率超过配置的告警阈值时,认为该节点的磁盘繁忙。
SNMP监视器 > 磁盘权重:判断监视节点是否繁忙时,磁盘占用率所占的权重。
DNS监视器 > 查询域名:发送给dns服务器的查询域名。
DNS监视器 > 匹配IP或域名:判断服务器返回信息是否匹配。填入IPv4地址,监视器发送A查询;填入IPv6地址,监视器发送AAAA查询;填入域名,监视器发送CNAME查询;填入*,监视器发送ANY查询。
RADIUS监视器 > 请求类型:发送的请求包类型,认证请求发送认证请求包,计费请求发送计费开始和计费结束请求包。
RADIUS监视器 > 用户名:RADIUS请求使用的用户名。
RADIUS监视器 > 密码:RADIUS请求使用的密码,仅在认证请求时需要。
RADIUS监视器 > 认证方式:RADIUS请求使用的认证加密方式,支持PAP和CHAP,仅在认证请求时需要。
RADIUS监视器 > 密钥:RADIUS服务使用的密钥。
RADIUS监视器 > 附加属性:RADIUS服务携带的属性列表。
RADIUS监视器 > 属性ID:RADIUS服务属性的标识,可自定义属性。
RADIUS监视器 > 属性类型:RADIUS服务属性值的类型,分为数字、IP地址、字符串,所有类型均支持以十六进制字符串输入。
RADIUS监视器 > 属性值:RADIUS服务属性的值。
TCP/HTTP被动监视器 > 统计时间:统计上限值的时间。
TCP被动监视器 > 监视类型:被动监视器监视的TCP事件类型,可以选择RST关闭连接和零窗口。选择RST关闭连接将统计服务器发送关闭连接的RST包的个数,此个数包括三次握手过程中出现的RST关闭连接。选择零窗口将统计服务器接收缓冲区满后发送回来的零窗口包的个数,或者syn对应的带零窗口参数的rst包个数。
TCP被动监视器 > 上限值:统计时间内节点TCP事件触发监视器动作的阈值。
TCP被动监视器 > 动作:等TCP事件超过上限值后监视器的动作,可以选择节点离线和过载保护。选择节点离线时节点状态会被设置成被动监视器故障,节点不可用。选择过载保护时节点状态将被设置成繁忙。
TCP被动监视器 > 保护时间:过载保护动作的持续时间,即节点繁忙的持续时间。
TCP被动监视器 > 过载保护无效后节点离线::启用时如果过载保护尝试次数执行完毕后节点状态依然是繁忙状态,则监视器执行节点离线动作。禁用时执行过载保护,不执行节点离线。
TCP被动监视器 > 尝试次数:连续过载保护次数。
HTTP被动监视器 > 检查url:监视器过滤需检查的请求时匹配的url前缀。
HTTP被动监视器 > 响应状态码:应答匹配状态码成功时,监视器判断此应答失效。
HTTP被动监视器 > 响应超时时间:应答响应超过时间限制时,监视器判断此应答失效。
HTTP被动监视器 > 异常url上限:指定时间内异常url超过上限时,监视器判断节点失效。
复合监视器 > 包含监视器:从待选监视器中,最多选择10个常规监视器,添加到已选择的列表中。
复合监视器 > 复合监视器通过条件:
[同时成立] - 已选择列表中,所有监视器有效,复合监视器有效。
[任意一个通过] - 已选择列表中,任意一个监视器有效,复合监视器有效。
[自定义] - 监视器有效的表达式,支持输入:AND、OR、( )。可选择辅助生成工具,辅助生成复杂的表达式。表达式的监视器有效,则复合监视器有效。
外部应用监视器 > 执行命:配置AD后台执行脚本的命令,执行的脚本需要先通过SFTP工具上传到设备的/usr/monitor目录中。命令可包含内置变量,${rs_ip}代表节点ip,${rs_port}代表节点端口。如果节点状态正常,命令需打印monitor:success到标准输出,否则其他情况视为节点状态异常。
ORACLE/MSSQL/MYSQL数据库监视器 > 数据库名:数据库的名称。
ORACLE/MSSQL/MYSQL数据库监视器 > 用户名:访问数据库的用户名。
ORACLE/MSSQL/MYSQL数据库监视器 > 密码:访问数据库的密码。
ORACLE/MSSQL/MYSQL数据库监视器 > 发送内容:用于查询数据库的sql语句。
ORACLE/MSSQL/MYSQL数据库监视器 > 结果定位:定位到返回结果的哪一行和哪一列。
ORACLE/MSSQL/MYSQL数据库监视器 > 接收内容必须包含:判断定位后的结果是否包含设置的字符串,包含节点在线,不包含节点离线。
MYSQL数据库监视器 > 检验对象:可以选择查询结果集和同步状态。查询结果集和MSSQL/MYSQL数据库监视器功能相同,都是通过查询、比较数据库中的数据来判断节点状态。选择同步状态是通过发送"show slave status"来检查"从数据库"是否复制完成。
MYSQL数据库监视器 > 开启同步超时检查:开启后可以设置同步超时时间,超时离线。
LDAP监视器 > 用户名:指定用户名,如果所监视的目标需要验证。
LDAP监视器 > 密码:指定密码,如果被监控的目标要求身份验证。
LDAP监视器 > Base DN:指定从监视器启动健康检查的LDAP树中的位置。比如:dc=bigip-test,dc=net。
LDAP监视器 > Search Filter:监视器搜索指定的LDAP密钥,比如:objectclass=*。
LDAP监视器 > 安全加密:指定用于与目标通信的安全协议类型。
LDAP监视器 > Mandatory Attribuates:指定目标是否必须包括其响应中的属性。
LDAP监视器 > Chase Referrals:在收到LDAP引用条目后是否出现出现转换。默认是肯定的。