博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
F5的HTTP monitor机制
阅读量:7137 次
发布时间:2019-06-28

本文共 1584 字,大约阅读时间需要 5 分钟。

最近在需求的驱动下,认真研究了一下F5的http monitor的处理机制。从F5的技术白皮书上初略理解到:http monitor可以通过检测某个服务目录,从而从得到的结果中匹配相关的字符串。
比如下面的monitor: 
b monitor http_mo1 list 
monitor http_mo1 { 
   defaults from http 
   recv "nameof" 
   send "GET /services/message/message.html” 
F5去GET /services/message/message.html这个页面,然后用"nameof"去匹配这个页面的内容,如果能查到就说明检测成功;否则失败。
而后续配置多个不同的系统的http monitor时,进行同样的配置(仅仅修改服务目录和recv的字串)下,发现有些monitor竟然匹配不到字符串,从而导致健康检查失败。但是直接使用浏览器浏览该页面时是能查找到相关的字符串的。monitor配置如下: 
monitor http_mo2 { 
   defaults from http 
   recv "targetName" 
   send "GET /services/conf/message/message.html” 
而后使用在F5的CLI上使用如下命令进行检测:echo -e "GET /services/message/message.html HTTP/1.1\r\nConnection: Close\r\nHost: \r\n\r\n" | nc 1.1.1.1 80;其中1.1.1.1 80是需要监控的地址和服务端口。echo出来的内容如下: 
echo -e "GET /services/conf/message/message.html HTTP/1.1\r\nConnection: Close\r\nHost: \r\n\r\n" | nc 1.1.1.1 80 | less 
HTTP/1.1 200 OK 
Content-Type: text/xml; charset=iso-8859-1 
Connection: close 
Server: Jetty(6.1.5)
<?xml version="1.0" encoding="UTF-8"?> 
&lt;wsdl:definitions targetNamespace=
可以看出targetName从应该能匹配到的。后来看了一些文档说有可能是HTTP的版本问题,因为F5默认是使用HTTP/1.0去GET的,但是目前基本上都是使用HTTP/1.1的。所以在GET中加入了HTTP的版本。即如下: 
monitor http_mo2 { 
   defaults from http 
   recv "targetName" 
   send "GET /services/conf/message/message.html HTTP/1.1\r\n” 
但是这样的GET还不够严谨,我后续测试也是有检测不到的现象。后来直接将上面echo命令中的HTTP/1.1\r\nConnection: Close\r\nHost: \r\n\r\n全部加进去就检测ok了。不能不加Host: \r\n\r\n,否则也有检测不到关键字的情况。
总结:做F5的http的monitor时需要关注GET的格式,即服务目录后面要添加”HTTP/1.1\r\nConnection: Close\r\nHost: \r\n\r\n“。否则有可能监控失败,具体为什么必须添加这些目前不清楚。
注意:
本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/221652,如需转载请自行联系原作者
你可能感兴趣的文章
SQL中创建用户的方法
查看>>
PHP168 6.0及以下版本login.php代码执行
查看>>
Java代理(jdk静态代理、动态代理和cglib动态代理)
查看>>
WPF生命周期
查看>>
各大Oj平台介绍
查看>>
hdu1059 dp(多重背包二进制优化)
查看>>
四象限分析法分析你是否适合做管理
查看>>
Create a database in mysql for mac
查看>>
史上最全、JavaScript基础篇
查看>>
Selenium Web 自动化 - Selenium常用API
查看>>
第13天:页面布局实例-博雅主页
查看>>
javascript基础
查看>>
jquery获取、改变元素属性值
查看>>
关闭VirtualBox虚拟机的时钟同步
查看>>
剪贴板(进程通信)
查看>>
删除链表中重复的结点
查看>>
查看你的电脑上.Net Framework版本的方法
查看>>
java编程目录
查看>>
Java读取xml
查看>>
swagger
查看>>