FreeSWITCH折腾笔记8——使用OpenSIPS进行负载均衡(未完待续)

通过OpenSIPS对FreeSWITCH进行负载均衡网络上的文章很多,但都是基于老版本的OpenSIPS,目前最新的OpenSIPS LTS版是2.4,如果使用老版本配置文件,OpenSIPS是运行不起来(当然通过一番修改后还是可以运行起来的)。笔者经过一番折腾,成功实现了OpenSIPS 2.4版本对FreeSWITCH的负载均衡,这里将折腾的注意项及最终的配置记下来,以免下次真的要用时又重新折腾。可能有些地方有遗漏,欢迎指正。


一、环境介绍:

OpenSIPS OS:debian 8

OpenSIPS Version:2.4 LTS

OpenSIPS IP:172.16.100.30/31

OpenSIPS HA:keepalived

OpenSIPS VIP:172.16.100.32

FreeSWITCH OS:debian 8

FreeSWITCH Version:1.81

FreeSWITCH IP:172.16.100.10/11

DB:Mysql 5.7

注:OpenSIPS的高可用,采用keepalived进行VIP切换实现,目前未添加OpenSIPS的可用性检测脚本,仅作VIP切换。


二、组网介绍:

本次试验采用以下组网结构,两个节点OpenSIPS采用keepalived进行VIP切换,两个节点FreeSWITCH实现负荷分担,OpenSIPS和FreeSWITCH均连接到MySQL(注:FreeSWITCH连接MySQL数据库,需提取channels建表SQL并将字段长度改小,然后手工创建channels表)。在路由器(笔者使用的路由器有Dnsmasq功能)上将域名sofia.superpipi.cn解析到OpenSIPS的VIP172.16.100.32,SIP分机注册时服务器域名使用sofia.superpipi.cn进行注册。


image.png


三、安装及基础配置:


3.1、安装和配置keepalived


3.1.1、安装keepalived

keepalived安装直接通过apt安装即可

apt-get install keepalived


3.1.2、修改keepalived配置:

编辑/etc/keepalived/keepalived.conf,将两个节点分别按以下配置修改。


  • 01节点keepalived配置:

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen
   }
   notification_email_from [email protected]
   smtp_server 172.16.100.251
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    garp_master_delay 10
    smtp_alert
    virtual_router_id 53
    priority 200
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 915119
    }
    virtual_ipaddress {
        172.16.100.32/24
        172.16.100.32/24 label eth0:1
    }
}


  • 02节点keepalived配置:

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen
   }
   notification_email_from [email protected]
   smtp_server 172.16.100.251
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    garp_master_delay 10
    smtp_alert
    virtual_router_id 53
    priority 100
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 915119
    }
    virtual_ipaddress {
        172.16.100.32/24
        172.16.100.32/24 label eth0:1
    }
}


3.2、安装和配置OpenSIPS


3.2.1、安装OpenSIPS

笔者安装OpenSIPS是通过官方deb包直接安装的,执行步骤如下:

  • 添加源:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 049AD65B
echo "deb http://apt.opensips.org jessie 2.4-releases" >/etc/apt/sources.list.d/opensips.list
  • 更新源和安装OpenSIPS

apt-get update && apt-get install opensips

3.2.2、配置OpenSIPS

  • 创建数据库

编辑/etc/opensips/opensipsctlrc将以下项去注释并按实际情况修改,或直接通过echo追加到/etc/opensips/opensipsctlrc


echo "SIP_DOMAIN=sofia.superpipi.cn" >> /etc/opensips/opensipsctlrc
echo "DBENGINE=MYSQL" >> /etc/opensips/opensipsctlrc
echo "DBPORT=3306" >> /etc/opensips/opensipsctlrc
echo "DBHOST=172.16.100.15" >> /etc/opensips/opensipsctlrc
echo "DBNAME=opensips" >> /etc/opensips/opensipsctlrc
echo "DBRWUSER=opensips" >> /etc/opensips/opensipsctlrc
echo "DBRWPW="ligen119"" >> /etc/opensips/opensipsctlrc

执行创建数据库工具(注:如数据库不在本机,需授权root用户远程访问权限

/usr/sbin/opensipsdbctl create

运行以上命令后会提示输入root密码,输入root密码后提示输入数据库字符集(吐槽一下不能选utf8),这里输入gbk(后续可能需要存储中文),其后按向导进行数据库创建。

  • 配置启动参数

启动参数编辑不是必须,如果生产应用建议还是将内存参数做相应的扩大。

编辑/etc/default/opensips将以下项去注释并按实际情况修改,或直接通过echo追加到/etc/default/opensips 

echo "RUN_OPENSIPS=yes" >>/etc/default/opensips
echo "USER=opensips" >>/etc/default/opensips 
echo "GROUP=opensips" >>/etc/default/opensips 
echo "S_MEMORY=512" >>/etc/default/opensips 
echo "P_MEMORY=32" >>/etc/default/opensips 
echo "DUMP_CORE=yes" >>/etc/default/opensips


猜你喜欢

转载自blog.51cto.com/908405/2235934