大佬们救救萌新吧:keepalived+freeswitch高可用性

空腹可以吃烤山药吗 2020-03-17 05:20:34
大佬们救救萌新吧,freeswitch用keepalived做的高可用性,keepalived运行的时候日志里内容都是重复的,不知道是哪里出了问题
192.168.0.152是vip 不启用脚本的时候主备可以正常切换 三个脚本都在下面了


keepalived.conf

! Configuration File for keepalived

global_defs {
router_id LVS_DEVEL
}
vrrp_script check_fs {
script "/etc/keepalived/script/check_fs.sh"
interval 5
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
garp_master_delay 10
smtp_alert
virtual_router_id 51
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_fs
}
virtual_ipaddress {
192.168.0.152/24
192.168.0.152/24 scope global noprefixroute ens33
}
notify_master "/etc/keepalived/script/fs_recover.sh"
}





check_fs.sh
#!/bin/sh
FS_CLI_PROG='/usr/bin/fs_cli'
FS_CLI_HOST='127.0.0.1'
FS_CLI_PORT='8021'
FS_CLI_PASS='ClueCon'
PROFILES='192.168.0.152'
VIP='192.168.0.152'

fs_cli() {
$FS_CLI_PROG -H $FS_CLI_HOST -P $FS_CLI_PORT -p $FS_CLI_PASS -x "$1"
}

sofia_profile_started() {
fs_cli "sofia xmlstatus" | grep "<name>$1</name>" | wc -l
}

save_log(){
count=1
str_tmp="`date +%Y-%m-%d_%H:%M:%S` "
while [ $# -ge 1 ];do
str_tmp="$str_tmp $1"
count=count+1
shift
done
echo $str_tmp >>/var/log/check_fs_`date +%Y-%m-%d`.log
}

check_vrrp(){
ip a|grep $VIP|wc -l
}

check_fs_service(){
ps -ef |grep freeswitch.service|grep -v 'grep'|wc -l
}

# fs_cli "sofia recover"
for p in $PROFILES; do
if [ `sofia_profile_started "$p"` -eq 0 ]; then
# echo "$p DOWN"
log_str="$p DOWN"
save_log $log_str
if [ `check_vrrp` -eq 1 ];then
save_log "本机已经绑定VRRP,即将重启keepalived和FreeSWITCH。"
service keepalived restart
save_log "vrrp切换完成!"
if [ `check_fs_service` -eq 1 ];then
save_log "freeswitch服务正在操作中。"
else
service freeswitch restart
save_log "freeswitch重启成功!"
fi
else
if [ `check_fs_service` -eq 1 ];then
save_log "freeswitch服务正在操作中。 "
else
save_log "本机没有绑定VRRP,重启FreeSWITCH。"
service freeswitch restart
save_log "freeswitch重启成功!"
fi
fi
exit 1
fi
done
save_log "freeswitch状态检测:OK!"
#echo "OK"
exit 0




fs_recover.sh

#!/bin/sh
FS_CLI_PROG='/usr/bin/fs_cli'
FS_CLI_HOST='127.0.0.1'
FS_CLI_PORT='8021'
FS_CLI_PASS='ClueCon'
PROFILES='192.168.0.152'
VIP='192.168.0.152'

fs_cli() {
$FS_CLI_PROG -H $FS_CLI_HOST -P $FS_CLI_PORT -p $FS_CLI_PASS -x "$1"
}

save_log(){
counti=1
str_tmp="`date +%Y-%m-%d_%H:%M:%S` "
while [ $# -ge 1 ];do
str_tmp="$str_tmp $1"
count=count+1
shift
done
echo $str_tmp >>/var/log/check_fs_`date +%Y-%m-%d`.log
}
save_log "本节点切换为主用状态,开始接管切换前的通话。"
fs_cli "sofia recover"
fs_cli "raloadxml"
exit 0



...全文
679 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 Johnblx的回复:
不明白你说的问题是啥, float ip飘不走,还是飘走了, 备用服务没有启动 还是?
单独启用主服务器,ip addr 出现ip192.168.0.152和192.168.0.150,程序启动了keepalived,没有启用freeswitch
  • 打赏
  • 举报
回复
单独启用主服务器,ip addr 出现ip192.168.0.152和192.168.0.150,程序启动了keepalived,没有启用freeswitch
Johnblx 2020-03-17
  • 打赏
  • 举报
回复
不明白你说的问题是啥, float ip飘不走,还是飘走了, 备用服务没有启动 还是?

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧