负载均衡的健康检查脚本应用.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
负载均衡的健康检查脚本应用 2012-02-23 17:51:08 标签: 负载均衡 健康检测 脚本 A10 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 /3027116/788001 健康监测是负载均衡不可缺少的一个重要环节,所有负载均衡流量分配的不同方式实现都是基于稳定可靠的健康监测基础之上的;针对一个无法提供应用的端口,负载均衡设备应该较快发现并将其从可用应用端口中剔除,在该端口恢复后再重新加入。 A10网络的AX系列产品,本身已经提供了丰富的健康检测方式,如下图,包含了多个不同协议,甚至可以使用多个不同健康监测的联动(例如或,与的关系)。基本上可以满足绝大多数应用的健康监测需求。 但是有一次在银行客户碰到有些特殊的健康监测需求,总结如下: 客户是在Linux上基于java自行开发的应用,该应用根据用户请求数目增加会建立新进程,由于开发需求,该程序需要进行复杂的数据调用和处理,导致可以正常工作的并发进程数目有限。在该应用并发进程达到一定数值时,即使Linux服务器本身CPU, 内存正常,也无法再继续对外提供服务。 客户要求: 能根据每台服务器上具体的应用进程数设定端口可用状态; 最好可以提前预警通知,可以通知超过警戒线,以及回复后告知。 解决思路 1)在客户端Linux服务器中,解决进程统计的问题,并增加定制化SNMP功能 2)A10负载均衡功设备负责通过SNMP获取该进程统计数,判定端口可用性;同时负责发送预警,告警和恢复邮件通知(告警功能其实服务器上可以做,但是由于负载均衡是决定该端口是否可用的最终决策者,交给负载均衡处理最合理。) 具体配置 在Linux服务器上 1)新增脚本,统计进程并发并发数,例如命名为HttpdThreadCheck的脚本 #!/bin/sh #例如监测进程名称为b的所有统计 conn=`ps -aef | grep -i b |wc -l` #warn, down, send分别代表告警状态,端口状态,以及通知状态 #告警,预警,恢复的邮件通知均只发送一次,避免批量持续发送 warn=0 down=0 send=0 if [ $conn -gt 55 ]; then warn=1 down=1 if [ ! -f /tmp/a10down ]; then echo /tmp/a10down send=1 fi if [ ! -f /tmp/a10warn ]; then echo /tmp/a10warn fi elif [ $conn -gt 49 ]; then warn=1 down=0 if [ -f /tmp/a10down ]; then send=1 rm -rf /tmp/a10down fi if [ ! -f /tmp/a10warn ]; then send=1 echo /tmp/a10warn fi echo /tmp/a10warn else warn=0 down=0 if [ -f /tmp/a10down ]; then send=1 rm -rf /tmp/a10down fi if [ -f /tmp/a10warn ]; then send=1 rm -rf /tmp/a10warn fi fi echo $down:$warn:$conn:$send 2)修改SNMP参数,新增自定义OID 通常位于/etc/snmp/snmp.conf A: 修改SNMP community “public”的属性 注销缺省配置 com2sec notConfigUser default public B: 增加public属性并配置SNMP返回参数以及脚本位置 rocommunity public exec ..4.1.2021.18 HttpdThreadCheck /etc/httpthreadcheck.sh 其中 ..4.1.2021.18为SNMP对应OID值,HttpdThreadCheck为名称(可使用任何有效名);/etc/httpthreadcheck.sh为执行脚本; 该配置的优势在于,只有在外部查询该OID时,才会执行触发对应的脚本并返回结果 C:重启SNMP服务, 例如 service snmpd restart D:如果必要,需要取消selinux功能 通常在/etc/selinux/config文件中,使用 SELINUX=disabled 如果马上有效,执

文档评论(0)

___________ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档