第五章:健康检测
监控的分类:
- 地址监控(3层)
- 服务监控(4层)
- 内容监控(7层)
- 应用监控(7层)
- 性能监控(7层)
- 路径监控(3、4、7层)
三层监控:
三层监控可以帮助bipip系统通过检查网络是否可达监视资源。比如使用icmp echo,向监控节点发送icmp_echo报文,如果接收到响应,则认为节点可用。但是三层检测有非常大的局限性,因为路由可达并不意味服务可用,同时如果中间有防火墙阻拦icmp报文,则三层监控失效。
四层监控:
四层监控可以提供比三层跟丰富一点的能力,可以监控ip和端口的状态,而不仅仅是ip,但依然无法知道服务是否可以提供正常服务,因为他只能检测到后端服务器的端口是打开的。
七层监控:
使用request/response作为检测手段,比如HTTP-type的检测手段,是通过发送一个简单的http请求报文,如果能够得特定的字符串,就认定健康检测成功,称之为内容检测。
但还有更复杂的场景,比如检测FTP应用,bigip系统支持集成自定义编码脚本的监视器,用来与应用程序交互并确定可用性。称之为应用检测。
HTTP 监控:
bigip系统提供了个比较常用的监控模板,发送字符串和接受字符串,如果接收到预期的字符串,就认为后端服务器可用。
配置http发送字符串:系统支持http0.9、http1.0、http1.1请求。只能发送一个简单的请求。
配置http接收字符串:接收一个http请求,与tcp payload(状态、响应头、负载)进行比较,你可以将目标字符串与cookie名称、cookie值、响应代码等进行比较。响应内容长度限制在5120bytes,如果超过这个长度,监控检测失败,如果要比较超过5120bytes的内容,需要使用额外的监控。
使用正则表达式:一般正则规则
设置失败字符串:当收到指定的字符串,则认定后端服务器不可用。
配置别名:
如果你想监控一些依赖资源来确定pool或者node是否可用,你可以使用alias service port来进行检测。默认情况别名使用的是*,你可以编辑成一个特定的数值来启用。当别名端口或者地址被启动,则只会检测别名端口或ip,而不会检测自身的端口或者ip。
场景:在网络购物的场景,一个服务器同时开启了443和80端口,如果443不可用,则80端口也应该被置为offline,这时你可以配置一个监控80端口,别名配置443端口
配置效果举例:
应用监控:
假设你有一个FTP应用需要监控,监控连接到指定的ftp服务器,输入账号和密码,并下载特定文件到目录才认为监控成功。这个操作是刚才提到的监控所做不到的。所以需要使用应用级监控。
内置监控提供常用的脚本,如DIAMETER、ORACLE、FTP、IMAP、RADIUS、SMTP和SIP,使用这些监控器只需要输入一些参数。内置监控器的目录在/config/Monitor/builtins。
自定义脚本监控:
脚本监控使用的是Expect脚本语言,此语言支持与应用的双向对话。使用关键字send和expect,以询问应用程序来判断器是否健康。
举个例子:测试一个SMTP邮件服务器的简单预期脚本。
expect 220
send "HELO main.f5trn.com\r\n"
expect "250"
send "quit\r\n"
expect "221"
需要将expect脚本加载到/config/eal/目录中,并通过监控器配置的文件名引用他。
你可以使用shell脚本,也可以使用perl、curl或者其他语言,自定义脚本只是完成内置监控完不成的任务,bipip系统在接收到脚本的标准输出的时候会认为健康,不论你输出的是UP还是DOWN,系统都认为是健康的,如果不输出任何的信息,才能认为是不健康。
bigip提供了两个外部监控脚本示例,在/config/monitors/文件夹中,arg_example和sample_monitor。
界面中使用system->File Management :External Monitor Program File list 。点击Import按钮。
手动恢复:
当监控测试失败时,后端服务器标记为不可用,且不向其转发流量。
如果监控检测后端成功,后端服务器会立马被标记为健康。
假设你需要重启一台后端服务器,当服务器关闭时,监控判定后端服务器不健康,则不会转发流量到这台服务器上,但是重启后,监控器立马检测到index.php,判定为健康,流量会立马转发到这台服务器,但是也许这台服务器还没完全准备好,因为完全启动服务需要时间。
你可以将手工恢复设置成yes,这样即使健康检测成功,流量也不会转发到这台服务器上,必须管理员点击激活才会有流量转发过来。
实验:
配置和测试监视器
1、清除http_pool和https_pool的monitor,使其状态成为unknown。
标签:脚本,知识点,F5,检测,端口,监控,字符串,服务器,LTM From: https://blog.51cto.com/u_9346709/6895967