ADC

为 DataStream 配置监视器

要实时跟踪每个负载平衡数据库服务器的状态,需要将监视器绑定到每个服务。监视器配置为通过定期向服务发送探测器来测试服务,有时也称为执行运行状况检查。如果监视器收到对其探测的及时响应,则会将服务标记为 UP。如果它没有收到对指定数量的探测器的及时响应,则会将该服务标记为 DOWN。

对于 DataStream,您需要使用内置监视器:MYSQL-ECV 和 MSSQL-ECV。使用此监视器,您可以发送 SQL 请求并解析响应中的字符串。

在为 DataStream 配置监视器之前,必须向 NetScaler 设备添加数据库用户凭据。有关配置监视器的信息,请参阅 在负载平衡设置中配置监视器

创建监视器时,将与数据库服务器建立 TCP 连接,并使用创建监视器时提供的用户名对连接进行身份验证。然后,您可以对数据库服务器运行 SQL 查询并评估服务器响应,以检查其是否与配置的规则匹配。

以下示例适用于 MYSQL 服务器。

示例

在以下示例中,对错误消息的值进行评估以确定服务器的状态。

add lb monitor lb_mon1 MYSQL-ECV -sqlQuery "select * from
table2;" -evalrule "mysql.res.error.message.contains("Invalid
User")"-database "NS" -userName "user1"
<!--NeedCopy-->

在以下示例中,计算响应中的行数以确定服务器的状态。

add lb monitor lb_mon4 MYSQL-ECV -sqlQuery "select * from
table4;" -evalrule "mysql.res.atleast_rows_count(7)" -database "NS" -userName "user2"
<!--NeedCopy-->

在以下示例中,评估特定列的值以确定服务器的状态。

add lb monitor lb_mon3 MYSQL-ECV
-sqlQuery "select * from ABC;" -evalrule "mysql.res.row(1).double_elem(2) == 345.12"
-database "NS" -userName "user3"
<!--NeedCopy-->

以下示例适用于 MSSQL 服务器。

示例

在以下示例中,对错误消息的值进行评估以确定服务器的状态。

add lb monitor lb_mon1 MSSQL-ECV -sqlQuery "select * from
table2;" -evalrule "mssql.res.error.message.contains("Invalid
User")"-database "NS" -userName "user1"
<!--NeedCopy-->

在以下示例中,计算响应中的行数以确定服务器的状态。

add lb monitor lb_mon4 MSSQL-ECV -sqlQuery "select * from
table4;" -evalrule "mssql.res.atleast_rows_count(7)" -database "NS" -userName "user2"
<!--NeedCopy-->

在以下示例中,评估特定列的值以确定服务器的状态。

add lb monitor lb_mon3 MSSQL-ECV
-sqlQuery "select * from ABC;" -evalrule "mssql.res.row(1).double_elem(2) == 345.12"
-database "NS" -userName "user3"
<!--NeedCopy-->
为 DataStream 配置监视器