详情
默认情况下, Zevenet 对后端或真实服务器运行简单的运行状况检查,但有时这种检查不足以确定后端是否正常工作。 出于这个原因,Zevenet实现了一个服务,该服务通过使用调用的插件的守护进程执行和管理高级运行状况检查 农场卫报.
Farm Guardian的主要任务是作为应用程序的高级监视工作,为此,Farm Guardian读取服务器场配置并获取后端列表,并通过插件检查后端运行状况,Farm Guardian更新后端状态给定服务器允许或不允许Zen Load Balancer在此类后端发送连接。
Farm Guardian使用的插件可以在目录下找到 / usr / local / zevenet / app / libexec / .
农场卫报配置
健康检查后端。 选中此框将为后端启用更高级的监视状态,并使用您自己的脚本完全编程。 当Farm Guardian检测到错误行为时,它会自动禁用真实服务器并将其标记为 FGdown。 这是一项独立服务,因此您无需重新启动服务器场服务。
检查之间的时间。 这是Farm Guardian等待执行运行状况检查的秒数。
要检查的命令。 要对配置的后端执行的命令。 使用常量或标记以提供动态配置。
农场卫报日志。 此复选框将使Farm Guardian日志能够调试某些行为,尽管它可能会占用大量存储空间。
插件
Farm Guardian使用插件来配置高级运行状况检查,以使用自定义选项检测某个真实服务器是否按预期工作。 对于各种协议,服务或应用程序,都有很多运行状况检查。 最重要的插件如下所述。
check_ftp:此插件测试与指定主机的FTP连接。
check_fping:此插件将使用fping命令ping指定的主机以进行快速检查。
check_http:此插件测试指定主机上的HTTP服务。 它可以测试普通(HTTP)和安全(HTTPS)协议,遵循重定向,搜索字符串和正则表达式,检查连接时间,报告证书过期时间,HTTP返回码等。
check_imap:此插件测试与指定主机的IMAP连接。
check_ldap:此插件测试LDAP服务。 它可以使用给定的搜索进行测试。
check_ldaps:此插件测试LDAPS服务。 它可以使用给定的搜索进行测试。
check_mysql:此插件测试与MySQL服务器的连接。
check_mysql_query:此插件根据阈值级别检查查询结果。
check_pgsql:测试PostgreSQL数据库是否接受连接。
check_pop:此插件测试与指定主机的POP连接。
check_radius:测试RADIUS服务器是否正在接受连接。
check_simap:此插件测试与指定主机的安全IMAP连接
check_smtp:此插件将尝试与主机打开SMTP连接。
check_snmp:检查远程机器的状态并通过SNMP获取系统信息。
check_spop:此插件测试与指定主机的安全POP连接。
check_ssh:尝试连接到指定服务器和端口的SSH服务器。
check_ssmtp:此插件测试与指定主机的SSMTP连接。
check_tcp:此插件测试与指定主机的TCP连接。
有关详细信息,请在插件路径下执行以下命令:
plugin_name --help
Farm Guardian将使用此插件检查后端的运行状况,并将管理已执行插件的执行错误输出,以确定后端状态,如下所示:
如果错误 输出== 0 那么后端就可以了> $? = 0
如果错误 输出<> 0 那么后端就不好了> $? <> 0
自定义插件
这些插件可由sysadmins配置和完全编程,以适应任何协议或应用程序。
此示例显示了一个自定义插件 check_load.sh.
#!/bin/bash ### ###comments: ###snmp utils should be installed ###snmpd should be installed and configured in the backends ### MAXVALUE=4 COMMUNITY="public" EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//` echo "SNMP CPU load check for $1 is $EXECUTE" # If the result is true, exit with 1; error; else exit = 0; OK if (( $EXECUTE >= $MAXVALUE )); then #error output; the server is overloaded and the load balancer isn’t going to send more connections exit 1 else #not error; the server can accept more connections exit 0 fi
常量
当Farm Guardian执行插件时,它可以使用一些常量或标记作为参数,例如:
- HOST:Farm Guardian将负责通过真实服务器IP地址修改此常量。
- PORT:Farm Guardian将负责通过真实服务器端口修改此常量。
这些常量可以用于每个插件,Farm Guardian将使用它们来运行具有实际参数的健康检查。
可以启用Farm Guardian日志,尽管它可能需要大量磁盘空间,并将日志保存在路径中 在/ var / log / syslog的.