我已经在 2 台 Ubuntu 22.04 机器上配置了 keepalived,并且一切似乎都正常运行。
但是在状态(systemctl status keepalived.service)中,我看到了一些令我担心的行。
2 月 28 日 09:36:28 主机 pidof[2442791]: 无法从 2442790/stat 读取
我不知道这是从哪里来的,也不知道该怎么办。
在 keepalived 配置中,我们通过脚本进行检查,此脚本中有两项检查。1 是 ping 网关以检查我们是否有网络连接。第二项检查是查看进程是否正在运行(使用 pidof)。每 2 秒进行一次检查。
配置keepalived:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
enable_traps
notification_email_from [email protected]
smtp_server x.x.x.x
smtp_connect_timeout 30
vrrp_skip_check_adv_addr
enable_script_security
max_auto_priority 1
disable_local_igmp
vrrp_rt_priority 50
}
vrrp_script vlan303_check {
script "/etc/keepalived/scripts/vlan303/checkscript.sh"
interval 2 # check every 2 seconds
fall 2
rise 2
}
vrrp_script vlan333_check {
script "/etc/keepalived/scripts/vlan333/checkscript.sh"
interval 2 # check every 2 seconds
fall 2
rise 2
}
vrrp_instance VLAN303 {
state MASTER
interface ens192
virtual_router_id 151
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass xxxx
}
virtual_ipaddress {
xx.xx.xx.xx
}
track_script {
vlan303_check
}
notify /etc/keepalived/scripts/notify.sh
notify_stop /etc/keepalived/scripts/notify.sh
}
vrrp_instance VLAN333 {
state BACKUP
interface ens224
virtual_router_id 171
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass xxxxx
}
virtual_ipaddress {
xx.xx.xx.xx
}
track_script {
vlan333_check
}
notify /etc/keepalived/scripts/notify.sh
notify_stop /etc/keepalived/scripts/notify.sh
}
脚本作为 keepalived_script 执行(用户添加到系统中时无需 bash(/sbin/nologin)
我已检查该脚本是否正确执行。(并且确实如此)
那么,检查脚本有时是否无法获取进程的 pid,因此出现此错误?
或者这可能是由于用户 keepalived_script 没有 shell 造成的?