1.什么是高可用,为什么要设计高可用?
两台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将称之为高可用。
2.系统可用率算法例:
网络可用性
恢复能力
高可用方式
主备:两个角色主机处理同一个业务,使用一套主备配置参数
双主:两个角色主机处理不同的业务,互为主备,简单理解为两个反方向的主备叠加场景。(使用两套主备配置参数)
集群:多个备用结点、多种业务。当主故障后,被动节点通过内部的选举机制,选取临时的主节点来接管vip
关键技术
为了实现高可用的效果,后端的高可用结点需要如下几种技术来保证:
时间同步
心跳检测
官方网站:http://www.keepalived.org/
github地址:https://github.com/acassen/keepalived
文档:https://www.keepalived.org/pdf/UserGuide.pdf
关键点:
Keepalived软件是有c语言编写的一个开源软件项目,其本质是一个路由软件。
Keepalived基于IPVS功能进行二次整合实现负载均衡功能。
Keepalived基于VRRP协议进行二次整合实现高可用性功能。
Keepalived借助于大量的功能脚本实现高质量的状态检查功能。
Keepalived框架可以单独使用,也可以和其他软件进行整合使用。
核心模块:
这两个内核模块却是keepalived实现负载均衡和高可用性功能的核心模块,其中NETLINK主要用于提供高可用性的路由及网络功能,IPVS主要实现虚拟主机的负载均衡功能。
功能组件:
Keepalived的大部分功能模块位于用户空间,主要有这么几个比较核心的功能组件:
WatchDog、Checkers、VRRP Stack、IEVS wrapper、Netlink Reflector
工作流程
负载均衡层
位于集群服务的最前端,有一台或多态负载调度器(Director Server)组成,LVS软件就部署在这层的主机上,我们结合内核空间的IPVS模块,使用用户空间的ipvsadm定义各种ipvs规则,来管理后端所有的应用服务主机。
这一层是LVS集群架构中最核心的一层。
应用服务层
位于集群服务的中间层,由一大堆运行应用服务的主机组成,Real Server可以是web服务、mysql服务、DNS服务等服务器中的一个或多个组合,他们通过基础网络被前段的Director Server进行管理。
数据共享层
位于集群服务的最末端,为所有Real Server提供共享存储空间和内容一致性的存储区域,根据业务场景的不同,可以基于NFS或者是分布式文件系统软件来实现。
核心功能【记住】
借助VRRP可以有效避免单一链路发生故障后网络中断的现象。
虚拟路由冗余协议(Virtua1 Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点故障现象的路由协议,其本质上是一种路由容错协议。
VRRP将局域网内的一组路由器虚拟为单个路由器。我们称该路由器组为VRRP备份组,它根据优先级选择一个Master主路由器,承担网关功能,其他路由器称为Backup从路由器。基于VRRP虚拟出来是路由我们称之为虚拟路由,该虚拟路由有独立的IP地址(VIP)。
整个过程,后端真实主机看到的仅仅是虚拟路由,无论真实路由如何变幻,整个网络不受任何影响。
序号 | 主机ip | 主机名 | 安装软件 | 系统版本 | 虚拟网络模型 |
---|---|---|---|---|---|
1 | 192.168.8.14 | kpmaster | keepalived nginx | Centos7.5 | NAT |
2 | 192.168.8.15 | kpslave | keepalived nginx | Centos7.5 | NAT |
软件包安装
yum -y install keepalived
yum -y install nginx
keepalived -v
软件结构
默认安装的keepalived软件结构如下:
rpm -ql keepalived
/etc/keepalived # 默认工作目录
/etc/keepalived/keepalived.conf # 默认配置文件
/etc/sysconfig/keepalived # 服务配置文件
/usr/lib/systemd/system/keepalived.service # 服务配置文件
/usr/sbin/keepalived # 软件命令
...
/usr/share/doc/keepalived-1.3.5/samples # 模板文件目录
配置结构
keepalived默认配置文件主要有三部分组成:global_defs、vrrp_instance、virtual_server
其中最重要的配置内容是vrrp_instance,在这个配置段中,设置了我们keepalived对外提供的统一入口。
对于keepalived软件的默认配置文件来说,它主要有这么几块组成:
cat /etc/keepalived/keepalived.conf
# 全局配置段
global_defs {
...
router_id LVS_DEVEL
...
}
# VRRP配置段
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
}
}
# 虚拟主机配置段
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
一个virtual_server就是一个LVS的VIP的效果
例如:
**lb01配置**:
cat /etc/keepalived/keepalived.conf
global_defs {
router_id lb01 #标识信息
}
vrrp_instance VI_1 {
state MASTER
priority 150 #优先级
interface eth0 #绑定的网卡
virtual_router_id 50 #同一个虚拟的路由
advert_int 1 #心跳的间隔时间
authentication {
auth_type PASS #两个主机之间的密语
auth_pass 1111 #心跳密码
}
virtual_ipaddress {
10.0.0.3 #虚拟IP地址(可以绑定多个虚拟IP地址)
}
}
**lb02配置**:
#lb02配置如下
global_defs {
router_id lb02
}
vrrp_instance VI_1 {
state BACKUP
priority 100
interface eth0
virtual_router_id 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3 #虚拟IP地址
}
}
配置简介
作为快速入门阶段来说,此时它的配置信息没有那么的复杂,我们这里只需要修改两台keepalived主机的global_defs和vrrp_instance部分的属性内容,就可以让keepalived正常启动了。在这里我们来简单的看一下这里面的基础重要的属性配置:
global_defs
在这部分的配置段中,我们暂时只需要关心router id即可
router_id 设定当前eepalived提供的路由标识,它在keepalived集群中必须唯一
vrrp_instance
在这部分的配置段中,我们选优关心以下几处的配置信息:
必备:
state 描述keepalived主机间的角色定位的,一般只有两个值VASTER、BACKUP
interface 指定在哪个网卡上绑定VIP
virtual_router_id 指定VIP的唯一标识,在keepalived集群中,此配器必须一致。
priority 被VRRP协议来判断那个router_id作为主路由,值越大,优先级越高
authentication 多个路由之间通信的认证
virtual_ipaddress 指定VIP的地址,可以是多个。
全局配置段的router_id是唯一标识
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
根据配置文件的属性值,VIP设定到了kpmaster主机上了。
默认情况下,keepalived的日志都打印到message,我们也可以使用 tail -f /var/log/messages的命令来查看服务状态。
因为默认在global_defs配置文件中有vrrp_strict,自动在主机上产生一个keepalived拒绝所有的防火墙。这样就没法基于VRRP访问应用。所以想访问192.168.8.100,需要关闭这个属性 或者防火墙上。
vim /etc/keepalived/keepalived.conf 删掉vrrp_strict 后重启
nginx测试访问效果:
for i in {1..10};do curl 192.168.8.100;done
主机故障(自动切换)
模拟master主机故障
1、关停kpmaster主机上的keepalived服务
2、查看kpmaster主机日志效果:可以看到该节点移除了VIP内容
3、kpslave结点检查,ip addr,查看日志。 VIP就被kpslave主机接管了
4、master主机恢复,kpmaster又恢复到master状态,VIP被kmaster重新接管
后端服务实现负载均衡的效果。 Keepalived基于IPVS功能进行二次整合实现负载均衡功能。没有ipvsadm也可以。
DR模型,全在同一个网段,要配置相应的VIP和地址冲突的信息。
操作实践
2.1 基础软件
安装软件
yum install nginx -y
配置首页
# lvs-RS1 主机
echo "nginx-RS1" > /usr/share/nginx/html/index.html
# lvs-RS2 主机
echo "nginx-RS2" > /usr/share/nginx/html/index.html
启动两台主机nginx服务
systemctl restart nginx
检查服务效果
curl 192.168.8.16
curl 192.168.8.17
2.2 配置LVS的DR模式(顺便测试,保证后端主机能实现lvs负载均衡效果)
后端主机配置arp抑制(RS1、RS2)
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
启动后端主机VIP(RS1、RS2)
ifconfig lo 192.168.8.100/32 up
LVS主机配置虚拟ip(以kpmaster主机为例)
ifconfig eth0:0 192.168.8.100/32 up
ip addr add 192.168.8.100 dev eth0:0
配置ipvs规则(以kpmaster主机为例)
yum install ipvsadm -y
ipvsadm -A -t 192.168.8.100:80 -s rr
ipvsadm -a -t 192.168.8.100:80 -r 192.168.8.16
ipvsadm -a -t 192.168.8.100:80 -r 192.168.8.17
ipvsadm -Ln
检查效果
curl 192.168.8.100
为不影响后续keepalived的操作,需要ipvsadm情况规则清空 (这一部分只是随便测试下)
ipvsadm -C
2.3 配置keepalived(高可用+负载均衡)
属性简介:
虚拟主机配置格式:virtual_server
delay_loop 用于服务轮询的延迟计时器
lb_algo 设定访问后端服务的调度策略
lb_kind 设定数据转发的模型
protocol 设定数据通信的协议
real_server 设定后端主机的信息
后端主机配置格式:real_server
注意:以上5项是必须设置的。
real_server 后面的 “{ }” 中即使没有属性,也不能写成"{ }",必须使用Enter换行格式隔开
配置样例
virtual_server 192.168.8.100 80 {
delay_loop 2
lb_algo rr
lb_kind NAT
protocol TCP
real_server 192.168.8.14 80 {
}
real_server 192.168.8.15 80 {
}
}
这一块配置就像
ipvsadm -a -t 192.168.8.100:80 -r 192.168.8.14 -m
注意:这里采用的后端主机负载均衡模式是DR模型
real_server后面的"{ }" 必须换行写,否则的话会报错
对于LVS主机不能进行访问,因为他是转发的效果。只能去没有192.168.8.100的主机上进行测试。
用客户端进行访问测试
curl 192.168.8.100 可以看到轮询效果
模拟keepalived故障、服务故障
记住全局配置的核心属性
记住VRRP配置的核心属性
应用VRRP状态检测功能
应用虚拟主机核心属性
应用http&tcp服务监控检测
应用keepalived日志定制
全局配置段
默认配置
以下内容是keepalived.conf中的全局配置内容样例:
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
配置详解: man keepalived.conf
在默认的全局配置信息中,主要包含两部分的内容:
邮件信息(在真实环境有相应的监控平台,更好的实现告警,没必要采取这种)
在这部分中,主要涉及到以下四种属性配置:
notification_email 用于设定邮件的接收人员列表
notification_email_from 用于设定邮件的发送人员信息
smtp_server 邮件服务器地址
smtp_connect_timeout 设定邮件连接超时时间
VRRP全局配置
router_id 设定主机的唯一标识,默认是本地主机名,生产中不推荐
vrrp_skip_check_adv_addr 设定是否跳过检查VRRP所有的通知信息
vrrp_strict 强制执行VRRP协议
vrrp_grap_interval 设定接口发送arp协议信息间的延迟时间,单位ms
vrrp_gna_interval 设定接口上发送的未经请求的NA消息之间的延迟时间
配置示例:
一般情况下,我们只设置一下本机的邮件配置,然后设置一个router_id就可以了。
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id master # 唯一的路由标识,不推荐使用主机名,默认的值:主机名 要保证主机名不会改变
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
默认配置
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
}
}
配置详解
vrrp_instance
注意:VRRP实例名称是唯一的,我们可以在一个配置文件中配置多个VRRP实例,只要名称不一致就可以了。
常见属性
state:用于设定集群主机的初始化状态
该状态值有两个:MASTER和BACKUP,不过在集群中一旦加入新的主机,keepa1ived会自动比较并选择一个最优的主机定位MASTER角色,所以该配置可以忽略,基于keepalived自动管理,如果我们做好规划的话,最好设置。
interface:用于设定VRRP实例绑定的物理网卡
该接口必须在宿主机上存在,否则的话会报错。
virtual_router_1d:用于设定VRRP实例的唯一标识
一台主机可能设置多个VRRP实例,我们可以基于0~255数字,用于区分同一个网卡上的多个VRRP实例
priority:用于主机间进行MASTER角色选举用的优先级
如果我们要设置某主机为MASTER角色的话,尽量比其他BACKUP角色主机的值大50
advert_int:VRRP协议用于发送通知信息的时间间隔,单位是s,一般采用默认值
authentication 高可用集群间通信的认证,PASS AH
注意:可用可不用。官方已经没用了
负载均衡的访问地址:单网卡效果下,直接用ip即可。 多网卡推荐增加dev和label
virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
}
需求分析
1.编写检查脚本文件
2.keepalived配置文件使用脚本
VRRP script配置
根据man keepalived.conf方式来查看VRRP script的配置信息显示,vrrp_script配置是专门用于设定监控VRRP实例用的配置,格式效果如下:
vrrp_script <SCRIPT_NAME> {
重要 script <STRING>|<QUOTED-STRING> # 设定执行脚本的路径,也可以是命令行的检测命令
重要 interval <INTEGER> # 设定脚本执行的间隔时间,默认1s
timeout <INTEGER> # 设定脚本失败的超时时间
weight <INTEGER:-254..254> # 设定脚本的权重,默认是0
rise <INTEGER> # 执行多少次,表示成功OK
fail <INTEGER> # 执行多少次,表示失败KO
user USERNAME [GROUPNAME] # 设定脚本的用户/组属性信息
init_fail # 假设脚本最初处于失败状态
}
注意:一般使用前两条。
检测命令的
script属性要求尽量使用脚本格式,不包含特殊字符和白到时的简单命令也可以,如果命令里包含特殊字符就不能执行。比如 “[[ ]]”
配置示例
定义检测脚本
vrrp_script <SCRIPT_NAME> {
script xxx
}
使用检测脚本
track_script {
<SCRIPT_NAME>
}
★操作实践
❤关键点
权重值:weight
工作目的:自动的切换MASTER和BACKUP
工作原理:有priority 和 weight的差值来确定高可用集群主机间的最终优先级。
一般是将weight设置为负值,达到降低优先级的效果
模拟:touch /tmp/keepalived.fail
一个keepalive.conf可以允许出现多个Virtual_server配置信息
多个lvs集群
组成:虚拟主机组 + 虚拟主机
默认配置
IP+端口
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
常见属性
7种调度算法、3种调度模式、3种数据转发协议
delay_1oop 用于服务轮询的延迟计时器
1b_algo 设定访问后端服务的调度策略
在当前的keepalived版本下,它支持7种调度算法 rr wrr lc wlc lblc sh dh
1b_kind 设定数据转发的模型
因为是基于IPVS进行负载均衡的,所以数据转发的模型与LVS一致 NAT、DR、TUN
persistence_timeout 设定数据持久性的超时时间,黑默认为6分钟
protocol 设定数据通信的协议,默认支持三种 TCP UDP SCTP
这一项是必备的,因为我们使用ipvsadm创建集群的时候,必须指定通信协议
sorry_server 备用真实主机,当所有RS失效后,开始启用该后备主机。
real_server 设定后端真实主机的信息
真实主机属性
六中状态检测
weight 设定真实主机的权重,黑默认是1
HTTE_GET 以HTTP方式来检查后端主机 ❤
TCP_CHECK 以TCP方式来检查后端主机 ❤
SMTP_CHECK 以SMTP方式来检查后端主机
DNS_CHECK 以DNS方式来检查后端主机
MISC_CHECK 以MISC方式来检查后端主机
测试内容:日志效果、ipvsadm规则效果、curl访问效果
测试内容:日志效果、ipvsadm规则效果、curl访问效果
注意:如果后端RS主机设置了NAT模式,端口映射,那么就需要自己定制,保证TCP检测的端口和ip地址必须准确。
TCP检测属性:
connect ip
connect port
场景需求:当keepalived的所有RS主机出现故障后,提供一个友好页面
1、要准备维护页面,维护web配置
2、配置失效跳转属性,virtual_server配置sorry_server
配置样例
如果不是NAT模式的话,端口必须要一致。
virtual_server 192.168.8.100 80 {
sorry_server 192.168.8.17 80
}
注意:要保证失败的主机端口和VIP的端口一致。
keepalived默认记录到/var/log/meesages文件中了,在该文件中不仅仅输出了keepalived日志,还输出了其他无关的日志。
需求:将keepalived日志从message中剥离开,单独存放
环境变量文件
rpm -ql keepalived
cat /usr/lib/systemd/system/keepalived.service
cat /etc/sysconfig/keepalived
得知 和日志相关的属性: -D,-S
日志参数详解:根据注释信息系提示,日志的高级配置参数是“”–log-facility“”,该参数的作用其实是借用syslog的0-7用户自定义功能来定制keepalived服务的日志信息。我们可以基于该参数来定制我们的keepalived日志。
syslog用户自定义格式如下:
grep -A 2 'boot' /etc/rsyslog.conf
local7.* /var/log/boot.log # 打开该文件 默认有这个
rsyslog中的local0~7其实指的是8个自定义的接口设备,可以存放定制的日志信息,然后进行转储。
❤日志定制实践
设定的keepalived的启动 命令参数,使用用户自定义日志功能,我们这里使用0级别
vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -S 0"
定制rsyslog的用户自定义日志功能
vim /etc/rsyslog.conf
# Save boot message also to boot.log
local0.* /var/log/keepalived.log
注意:localn 的值应该与keepalived文件中的-S指定的值一样。
重启服务,顺序很重要
systemctl restart rsyslog
systemctl restart keepalived
查看日志效果
ls /var/log/
cat /var/log/keepalived.log
记住keepalived的状态检测原理
记住keepalived虚拟服务原理
记住keepalived路由方式及特点
内核空间:ipvs、netlink
核心模块:watchdog、vrrp stack、checker、ipvs wrapper、netlink reflecter
状态检测原理
watchdog —— 监控
vrrp stack —— vrrp相关的功能
checker —— 状态检测、健康检测
ipvs wrapper —— ipvsadm的封装和加强
netlink reflecter —— 网络相关:负载均衡网络、虚拟路由网络
虚拟服务原理
转发简介:
NAT方式:
进入:客户端 —— 外部VIP —— 转换DNAT —— RS
出去:RS —— 内部VIP —— 转换SNAT —— 客户端
配置:需要同时再keepalived.conf当中设置两个vrrp_instance
inside_network 和 outside_network
特点:进入和退出都需要经过keepalived集群,所以在大规模场景下,有可能会成为瓶颈,但是在小场景下,使用范围广
DR方式
进入:外部VIP —— RS
出去:RS —— 互联网 —— 客户端
特点:在各种场景下,效率高,不适用端口映射场景
双主方式
需求案例:
业务场景
在实际的工作中,我们的网站服务一般都是以域名的方式对外提供服务,对于这种情况下一般有这么两种现象:
需求分析
1.准备基本网络环境(DR模型)
2.定制keepalived配置(双VIP实例)
3.测试
操作实践
1.准备基本网络环境
网络设备和网卡信息与之前效果一致,我们无需变动
2.定制keepalived配置
后端主机配置多vip
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 192.168.8.100/32 up
ifconfig lo:1 192.168.8.200/32 up
keepalived配置
配置多个vrrp示例
vim /etc/keepalived/keepalived.conf
3.查看效果
结果现实:
当kpslave节点keepalived服务未启动时候,两个vrrp实例都在kpmaster主机上
当kpslave节点keepalived服务启动时候,VI_2的实例优先级较kpmaster主机高,所以将8.200的VIP抢过来了
当RS服务停止的时候,会进行移除,ipvsadm -Ln查看
当两个RS服务都停止的时候,会转为sorry_server
总结:
(1)默认配置为抢占式:
master挂掉,backup上台,master重新启动则将IP抢占过去。
(2)非抢占式配置:
两台均为backup,在优先级上做区分,如master挂掉,backup上台,则backup变成master,master变为backup。
a.两个节点的state均为backup(官方建议)
b.两个节点都在vrrp_instance中添加nopreempt
c.其中一个节点的优先级要高于另外一个节点
两台服务器角色都启用了nopreempt后,必须修改角色状态统一为backup,唯一的区别就是优先级不同。
#Master
vrrp_instance VI_1 {
state BACKUP
priority 150
nopreempt
}
#Backup
vrrp_instance VI_1 {
state BACKUP
priority 100
nopreempt
}
keepalive高可用故障脑裂
由于某些原因,导致两台keepalive高可用服务器在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。
a.服务器网线松动等网络故障
b.服务器硬件故障发生损坏现象而奔溃
c.主备服务器都开启了firewalld防火墙
解决方法:
# 脚本如下
[root@lb01 ~]# cat /server/scripts/check_www.sh
#!/bin/sh
nginxpid=$(ps -C nginx --no-header|wc -l) # -C是cmd
#1.判断Nginx是否存活,如果不存活则尝试启动Nginx
if [ $nginxpid -eq 0 ];then
systemctl start nginx
sleep 3
#2.等待3秒后再次获取一次Nginx状态
nginxpid=$(ps -C nginx --no-header|wc -l)
#3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本
if [ $nginxpid -eq 0 ];then
systemctl stop keepalived
fi
fi
[root@lb01 ~]# chmod +x /server/scripts/check_www.sh
配置keepalived使用
[root@lb01 ~]# cat /etc/keepalived/keepalived.conf
global_defs {
router_id lb01
}
#定义脚本所在的位置,以及执行时间
vrrp_script check_www {
script "/server/scripts/check_www.sh"
interval 5
}
vrrp_instance VI_1 {
state BACKUP
priority 150
nopreempt
interface eth0
virtual_router_id 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
#调用脚本
track_script {
check_www
}
}