首页 > 其他分享 >F5 LTM 知识点和实验 5-健康检测

F5 LTM 知识点和实验 5-健康检测

时间:2023-07-29 22:31:42浏览次数:36  
标签:脚本 知识点 F5 检测 端口 监控 字符串 服务器 LTM

第五章:健康检测

监控的分类:

  • 地址监控(3层)
  • 服务监控(4层)
  • 内容监控(7层)
  • 应用监控(7层)
  • 性能监控(7层)
  • 路径监控(3、4、7层)

image-20230305134500908

三层监控:

三层监控可以帮助bipip系统通过检查网络是否可达监视资源。比如使用icmp echo,向监控节点发送icmp_echo报文,如果接收到响应,则认为节点可用。但是三层检测有非常大的局限性,因为路由可达并不意味服务可用,同时如果中间有防火墙阻拦icmp报文,则三层监控失效。

四层监控:

四层监控可以提供比三层跟丰富一点的能力,可以监控ip和端口的状态,而不仅仅是ip,但依然无法知道服务是否可以提供正常服务,因为他只能检测到后端服务器的端口是打开的。

七层监控:

使用request/response作为检测手段,比如HTTP-type的检测手段,是通过发送一个简单的http请求报文,如果能够得特定的字符串,就认定健康检测成功,称之为内容检测。

但还有更复杂的场景,比如检测FTP应用,bigip系统支持集成自定义编码脚本的监视器,用来与应用程序交互并确定可用性。称之为应用检测。

HTTP 监控:

bigip系统提供了个比较常用的监控模板,发送字符串和接受字符串,如果接收到预期的字符串,就认为后端服务器可用。

image-20230308000255353

配置http发送字符串:系统支持http0.9、http1.0、http1.1请求。只能发送一个简单的请求。

配置http接收字符串:接收一个http请求,与tcp payload(状态、响应头、负载)进行比较,你可以将目标字符串与cookie名称、cookie值、响应代码等进行比较。响应内容长度限制在5120bytes,如果超过这个长度,监控检测失败,如果要比较超过5120bytes的内容,需要使用额外的监控。

使用正则表达式:一般正则规则

设置失败字符串:当收到指定的字符串,则认定后端服务器不可用。

配置别名:

如果你想监控一些依赖资源来确定pool或者node是否可用,你可以使用alias service port来进行检测。默认情况别名使用的是*,你可以编辑成一个特定的数值来启用。当别名端口或者地址被启动,则只会检测别名端口或ip,而不会检测自身的端口或者ip。

image-20230308230345953

场景:在网络购物的场景,一个服务器同时开启了443和80端口,如果443不可用,则80端口也应该被置为offline,这时你可以配置一个监控80端口,别名配置443端口

image-20230308231116569

配置效果举例:

image-20230308231233223

应用监控:

假设你有一个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/目录中,并通过监控器配置的文件名引用他。

image-20230308234523674

你可以使用shell脚本,也可以使用perl、curl或者其他语言,自定义脚本只是完成内置监控完不成的任务,bipip系统在接收到脚本的标准输出的时候会认为健康,不论你输出的是UP还是DOWN,系统都认为是健康的,如果不输出任何的信息,才能认为是不健康。

bigip提供了两个外部监控脚本示例,在/config/monitors/文件夹中,arg_example和sample_monitor。

界面中使用system->File Management :External Monitor Program File list 。点击Import按钮。

image-20230309232504303

手动恢复:

当监控测试失败时,后端服务器标记为不可用,且不向其转发流量。

image-20230309233738376

如果监控检测后端成功,后端服务器会立马被标记为健康。

image-20230309233859803

假设你需要重启一台后端服务器,当服务器关闭时,监控判定后端服务器不健康,则不会转发流量到这台服务器上,但是重启后,监控器立马检测到index.php,判定为健康,流量会立马转发到这台服务器,但是也许这台服务器还没完全准备好,因为完全启动服务需要时间。

你可以将手工恢复设置成yes,这样即使健康检测成功,流量也不会转发到这台服务器上,必须管理员点击激活才会有流量转发过来。

image-20230309234603090

image-20230309234611025

实验:

配置和测试监视器

1、清除http_pool和https_pool的monitor,使其状态成为unknown。

image-20230617232832226

image-20230617232851562

标签:脚本,知识点,F5,检测,端口,监控,字符串,服务器,LTM
From: https://blog.51cto.com/u_9346709/6895967

相关文章

  • CF547D Mike and Fish 小丑做法--zhengjun
    写到一半发现标签有二分图就不对劲了,题解区里都是欧拉回路。然而我是随机化+模拟网络流!自豪首先可以先建模,观察同一种颜色,发现每一行或每一列的限制即为\(\lfloor\frac{t}{2}\rfloor\lex\le\lceil\frac{t}{2}\rceil\)。然后套路地把横坐标和纵坐标分开来建个二分图,建立源点......
  • Bland-Altman
    一、案例介绍某医生使用方法A和方法B对20名患者进行血脂测量,现在想要知道这两种血脂测量方法的测量结果是否具有一致性,收集部分数据如下:二、问题分析医学研究中进行一致性检验时,通常有以下4种方法,对比说明如下表:本案例数据为定量数据,可以使用ICC组内相关系数或者Bland-Altma......
  • 图片知识点规划小结
    面向对象面向对象是一种程序设计思想,它的核心概念是“对象”。“对象”是指具有特定属性和行为的实体,能够接收消息、处理消息并返回结果。在面向对象的编程语言中,所有的程序都是由多个对象组成的。常用的dos命令Java语言的三个版本java关键字八大数据类型三种变量和常量......
  • MT4期货软件App靠谱吗?投资者需要了解哪些知识点?
    很多投资者在选择期货交易平台的时候,都会接触到MT4期货软件App,事实上MT4期货软件App的用户人数也是非常多的。但是不熟悉MT4期货软件App的投资者会对此有些怀疑,选择它真的靠谱吗?当然,投资者可以在选择之前反复考虑这些问题,确认靠谱之后再开始下一步的操作。MT4的优点想必做期货交易......
  • 优化trycatch所需的前置知识点(Promise对象讲解)
    优化trycatch所需的前置知识点(Promise对象讲解):https://blog.csdn.net/weixin_45371730/article/details/122029631?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-122029631-blog-119996003.235%5E......
  • CF506E Mr. Kitayuta's Gift 思考--zhengjun
    妙妙题。首先可以有一个\(O(kn^2)\)的dp,但是显然不行。但是,发现其中的大多数转移都浪费在自环上了,所以考虑不要这个东西。这个dp一共有三种转移:左右端点一起向内移动一格;左端点或右端点单独移动;左右端点都不动。所以考虑加一维\(k\)表示走了\(k\)次转移1......
  • 爬虫 | Python爬虫应该学习什么知识点?
    什么是爬虫如果说把互联网比喻成蜘蛛网,那么爬虫就是在这张网上的蜘蛛,它可以在上面爬来爬去。在互联网中,爬虫就是机器人,你应该对百度和Google很熟悉吧,为什么我们可以很快的从它们的搜索引擎中获取到资料呢?原因就是它们都有自己的爬虫,在整个互联网上,24小时不间断的爬取那些愿意......
  • C#中的重写与多态知识点整理(刘铁锰老师课堂笔记)
    在C#中,重写(Override)和多态(Polymorphism)是面向对象编程中的重要概念。通过重写和多态,我们可以更好地组织和管理代码,提高代码的可维护性和可扩展性。重写(Override)重写是指在派生类中重新实现基类中已经定义的方法。通过重写一个方法,我们可以为派生类中的该方法提供新的实现,同时让......
  • JavaScript复习知识点
    原型在JavaScript中,每个对象都有一个原型(prototype)。原型是一个对象,其他对象可以通过它来继承属性和方法。简单来说,对象通过其原型来共享和访问属性和方法。原型以原型链的形式连接在一起,形成了一个对象和原型之间的关系。当我们访问对象的属性或方法时,JavaScript引擎首先在......
  • Python使用Flask开发Web服务 - 裴 - flask的路由route的知识点演示
     默认是支持GET:  修改后,只支持post: 也可以getpost都支持 ......