我只是在/etc/keepalived/keepalived.conf设置通知脚本
/etc/keepalived/keepalived.conf
global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id DEFAULT_ROUT_ID } vrrp_script notification { script "" interval weight } vrrp_instance VI_1 { interface eth0 virtual_router_id 10 nopreempt state backup priority 110 advert_int 1 virtual_ipaddress { 22.22.22.22 } track_script { notification } notify_master "/etc/keepalived/master.sh" notify_backup "/etc/keepalived/backup.sh" }
每当国家发生变化,就会出现
它似乎工作,但这些shellcripts不执行。
你有什么build议吗?
我也有同样的问题,我的通知脚本没有被执行,在一天结束的时候,我意识到SELinux阻止了脚本的运行,我通过input:
[root@server ~]# journalctl
所以通过输出,它会给你一个关于SELinux命令的提示,这样你的通知脚本就可以运行了。 另外,我没有使用通知,但
notify_master "/path/to/script" notify_backup "/path/to/script"
来自SELinux的结果:如果您认为keepalived默认应该具有dac_overridefunction。 那么你应该报告这个错误。 您可以生成本地策略模块以允许此访问。 现在通过执行这些命令来允许这个访问:
ausearch -c 'keepalived' --raw | audit2allow -M my-keepalived semodule -i my-keepalived.pp
一旦你运行这些命令,重新启动keepalived:
service keepalived restart