可以为互为主从的 Keepalived 配置添加多个脚本检测。为了实现这一点,您需要在 VRRP 实例配置块中为每个脚本检测定义一个 vrrp_script 块,并将其添加到 track_script 块中。
以下是一个示例配置,其中有两个互为主从的节点,每个节点都有两个脚本检测:
vrrp_script chk_http_port {
script "/usr/local/bin/check_http_port.sh"
interval 2
weight 2}
vrrp_script chk_disk_space {
script "/usr/local/bin/check_disk_space.sh"
interval 5
weight 3}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 1
priority 100
virtual_ipaddress {
192.168.1.100/24 dev eth0 label eth0:1
}
authentication {
auth_type PASS
auth_pass MySecretPassword
}
track_script {
chk_http_port
chk_disk_space
}
}
vrrp_instance VI_2 {
interface eth0
state BACKUP
virtual_router_id 2
priority 99
virtual_ipaddress {
192.168.1.101/24 dev eth0 label eth0:2
}
authentication {
auth_type PASS
auth_pass MySecretPassword
}
track_script {
chk_http_port
chk_disk_space
}
}在此示例中,我们为每个脚本检测定义了一个 vrrp_script 块,并将它们分别命名为 chk_http_port 和 chk_disk_space。我们还定义了两个 VRRP 实例(VI_1 和 VI_2),每个实例都有一个 VIP 地址。我们还添加了一个认证块,用于设置账号密码验证。最后,我们将 chk_http_port 和 chk_disk_space 脚本添加到 track_script 块中,以便 Keepalived 可以检测到这两个脚本是否成功运行,如果脚本失败,则将 VRRP 实例切换到备份节点。