利用Linux Cron 实现F5 monitor定时启停
2020-12-06 23:07:52
自由自在飞✨
1. 需求
某分行的服务器每天凌晨01:00定时停机重启,停机20分钟(即到01:20)。该组服务器发布了90+的服务,即与之有关联的F5的pool和VS各为90+,pool member则更多。每个pool上都关联了默认的tcp monitor,停机重启阶段F5有大量的健康检查失败,并产生大量的相关日志。用户希望在此阶段停止对这组服务器的健康检查,并且自动化实现改功能。
根据需求来看,可以有两种解决方案:一种是在syslog server上过滤掉这个时间段产生的这些相关日志,此方法我们不做讨论研究,仅提供另外一种解决的思路;另一种是通过F5来实现定时关闭和开启该组服务器相关的pool上的健康检查,即定时删除和添加相关pool上的tcp monitor。
2. 定时删除和添加monitor
考虑用户需求,可以采用cron方式在停机重启时定时执行删除monitor的脚本;在停机重启结束后,定时执行添加monitor的脚本。
每天凌晨1:00定时删除tcp monitor的脚本实例:
chmod +x /var/tmp/delmonitor.sh
#!/bin/sh
. /etc/profile
. ~/.bash_profile
#delete monitor in pool
tmsh modify ltm pool pool-1 monitor none
以上脚本中的“pool-1”为pool name,“none”代表不关联任何monitor,即删除原有的monitor
备注:请根据实际相关的pool name,对以上脚本进行调整,本次需求中相关的pool有90+,那么tmsh的脚本条目也相应的要与相关pool的条目数相同。
每天凌晨1:20定时添加tcp monitor的脚本实例:
chmod +x /var/tmp/add monitor.sh
#!/bin/sh
. /etc/profile
. ~/.bash_profile
#add monitor in pool
tmsh modify ltm pool pool-1 monitor tcp
以上脚本中的“pool-1”为pool name,“tcp”为monitor name
备注:请根据实际相关的pool和monitor的name,对以上脚本进行调整,本次需求中相关的pool有90+,那么tmsh的脚本条目也相应的要与相关pool的条目数相同。
定时执行脚本:
定时脚本的执行是通过cron来实现的,我们可以通过crontab -e来将以上我们定义的脚本添加到cron中定时执行。
具体的操作如下:
[root@test:Active:Standalone] config # crontab -e
# cron tab for root
1-59/10 * * * * /usr/bin/diskmonitor
MAILTO=""
52 * * * * /usr/bin/copy_rrd save
#Everday 01:00 exec delmonitor.sh
0 1 * * * /var/tmp/delmonitor.sh
#Everday 01:20 exec addmonitor.sh
20 1 * * * /var/tmp/addmonitor.sh
添加完成后,退出保持即可。
定时删除和添加monitor的实现脚本,主要是基于cron定时执行工具来实现,不是F5官方提供的功能,不能随F5系统版本升级,即F5系统版本升级后需要重新添加配置。
发布评论 加入社群
相关文章
网络安全必备常识:Web应用防火墙是什么?
妙林
2023-10-18 17:05:09 142
博文精选 | 高效软件开发团队的 4 个好习惯
F5小安
2022-01-23 17:22:35 158
通过 ALB 和 BIG-IP 在 Azure 中运行 FTP 服务
尚路遥
2020-04-16 09:47:48 1321
回复评论
发布评论